CREATE OR REPLACE FUNCTION text_codigo (nombre VARCHAR2,tipo VARCHAR2) RETURN VARCHAR2 AS
TYPE codigo_table_type IS TABLE OF user_source.TEXT%TYPE
INDEX BY PLS_INTEGER;
codigo_table codigo_table_type;
maxi NUMBER(3);
linea_cod VARCHAR(2000);
BEGIN
SELECT count(*) INTO maxi
FROM user_source
WHERE NAME = nombre AND TYPE = tipo;
--dbms_output.put_line(maxi);
FOR i IN 1..maxi
LOOP
SELECT user_source.TEXT INTO codigo_table(i)
FROM user_source
WHERE NAME = nombre and TYPE = tipo AND LINE = i;
END LOOP;
FOR i IN 1..maxi
LOOP
linea_cod := linea_cod || (codigo_table(i));
END LOOP;
RETURN linea_cod;
END text_codigo;
------------------------------------------------------------------------------
DECLARE
nombre1 VARCHAR2(30) := '&nom';
tipo1 VARCHAR(30) := '&tip';
linea VARCHAR(2000);
BEGIN
linea := text_codigo(UPPER(nombre1),UPPER(tipo1));
DBMS_OUTPUT.PUT_LINE(linea);
END;