Ich weiß, diese Frage zurück wurde inWie mehrere Wert in Oracle Database 12c
Oracle: Return multiple values in a function
oder
fragteReturning multiple values from an Oracle 12c function
ich ihnen gefolgt, aber es Fehler verursacht, kann ich nicht kompilieren Sie es. Mir fehlt etwas, also brauche ich bitte Hilfe.
mein Code
create or replace type child_type AS OBJECT
(
child_id_number varchar2(2000),
child_name varchar2(2000),
other_id varchar2(2000)
);
CREATE or replace function children_b
(
i_id_number IN VARCHAR2
)
RETURN child_type
AS
child_record child_type;
BEGIN
SELECT LISTAGG(ch.child_id_number, ', ')WITHIN GROUP (ORDER BY ch.child_id_number),
LISTAGG(e.mail_name, ', ')WITHIN GROUP (ORDER BY e.mail_name),
LISTAGG(ib.other_id,', ')WITHIN GROUP (ORDER BY ib.other_id)
INTO child_type.child_id_number,child_type.child_name,child_type.other_id
FROM entity e
JOIN children ch ON ch.child_id_number = e.id_number
JOIN ids_base ib ON ib.id_number = ch.child_id_number
WHERE ib.ids_type_code = 'BAN'
AND ch.id_number IN (i_id_number)
GROUP BY ch.id_number;
return(child_record);
End children_b;
Die Fehlermeldung ist Compilation Fehler für FUNCTION TU_ADIS.TU_CHILDREN_B
Fehler: PLS-00330: ungültige Verwendung von Typnamen oder Subtyp Name Line: 23 Text: INTO child_type.child_id_number, child_type.child_name, child_type.other_id
Fehler: PL/SQL: ORA-00904: ungültige Kennung Line: 24 Text: FROM bio_entity e
Fehler: PL/SQL: SQL-Anweisung ignoriert Line: 20 Text: SELECT LISTAGG (ch.child_id_number, '') innerhalb der Gruppe (ORDER BY ch.child_id_number),
ICH DANKE DIR SEHR.
Ihre INTO-Klausel verweist auf die Variable nach ihrem Typ und nicht nach ihrem Namen 'child_record'. – APC
Danke !!!!!!!!! Es funktioniert gerade jetzt !!! –