Hallo i erstellen möchten eine Funktion, die mehrere Werte in nur eine Zeile zurück:Oracle PLSQL Rückkehr einer Reihe Typ
create or replace TYPE foo_type AS OBJECT (
col1 NUMBER ,
col2 VARCHAR2(150 BYTE)
);
CREATE FUNCTION foo_function() RETURN foo_type
as
row_type foo_type;
select
b1, -- NUMBER TYPE
b2 -- VARCHAR2(150 BYTE) TYPE
into
row_type
from
table_xxx
where
rownum=1; --Only one row!
return row_type;
END foo_function;
Wenn ich kompilieren i erhalten: ORA-00947 nicht genug Werte
ich habe versucht:
select
b1, -- NUMBER TYPE
b2 -- VARCHAR2(150 BYTE) TYPE
into
row_type.col1,
row_type.col2
from
table_xxx
where
rownum=1; --Only one row!
und die Funktion kompiliert aber wenn id Lauf:
select foo_function() from dual;
Oracle Rückkehr: ORA-06530 Bezug auf nicht initialisierten Verbund
Antwort ist in Ordnung, aber ich kann mit Ihnen nicht einverstanden über 'Sie es als Objekt auf Datenbankebene definiert, so hat dieses Objekt initialisiert werden.Selbst eine auf Unterprogramm-Ebene definierte Typvariable muss initialisiert werden. – Seyran