SQL
CREATE OR REPLACE FUNCTION "DESC_PARTIDA" (partida in NUMBER)
RETURN NVARCHAR2
AS
descripcio NVARCHAR2(100);
BEGIN
/*
Donat un numero de partida, tornar la descripció complerta
*/
SELECT "c_artic".AR_DESCE
|| nvl2("c_color".CO_DESCE, ' ' || "c_color".CO_DESCE, '')
|| nvl2("c_acaba".AC_DESCE, ' ' || "c_acaba".AC_DESCE, '')
|| nvl2("c_gruix".GR_DESCE, ' ' || "c_gruix".GR_DESCE, '')
|| nvl2("c_clasif".CL_DESCE, ' ' || "c_clasif".CL_DESCE, '')
as dades into descripcio
FROM "c_partid"
LEFT JOIN "c_artic" on "c_artic".AR_ARTIC="c_partid".PA_ARTI_D
LEFT JOIN "c_gruix" on "c_gruix".GR_CODI="c_partid".PA_GRUIX_D
LEFT JOIN "c_acaba" on "c_acaba".AC_CODI="c_partid".PA_ACABA_D
LEFT JOIN "c_color" on "c_color".CO_CODI="c_partid".PA_COLOR_D
LEFT JOIN "c_clasif" on "c_clasif".CL_CLAS="c_partid".PA_CLASE_D
WHERE PA_NUMER=partida;
RETURN descripcio;
END;