Verwenden von Typen

Monarch

Benutzer
Beiträge
17
Hallo Experten,

ich habe eine Frage zur Verwendung von Typen. Also ich habe folgendes Package was auch sauber funktioniert.

Package:
TYPE test_row IS RECORD ( MatchCode varchar2(40 Char),
Anrede varchar2(20 Char),
name1 varchar2(40 Char),
name2 varchar2(40 Char),
Strasse varchar2(80 Char),
PLZ varchar2(16 Char),
ORT varchar2(80 Char));
TYPE test_tab IS TABLE OF test_row;
function PersData_GETx return test_tab pipelined;

Body:

function PersData_GETx return test_tab pipelined AS
cCur sys_refcursor;
l_row test_row;
BEGIN
open CCur for Select * from table(PORTAL_STANDARD.PERSDATA_GET());
LOOP
FETCH CCur INTO l_row;
EXIT WHEN CCur%NOTFOUND;
PIPE ROW (l_row);
END LOOP;
RETURN;
END PersData_GETx;

Wie gesagt funzt … jetzt habe ich folgend Typ erstellt:

create or replace TYPE STA_PERSDATA_RS AS OBJECT
(MatchCode varchar2(40 Char),
Anrede varchar2(20 Char),
name1 varchar2(40 Char),
name2 varchar2(40 Char),
Strasse varchar2(80 Char),
PLZ varchar2(16 Char),
ORT varchar2(80 Char)
) ;

Jetzt meine Frage … Im Package habe ich den Type Test_Row definiert, wie kann ich das durch den Type "STA_PERSDATA_RS" ersetzten oder auf den "STA_PERSDATA_RS" verweisen.

Vielen Danke im voraus für Eure Mühe
Michael
 
Werbung:
Ungetestet:
Versuch eine Variable des Object Typs zu erzeugen.
"DECLARE" ist im Package nicht notwendig, es deutet nur den Sinn an.
Dann kommt nach dem Fetch ein Objekt Cast in die neue Ergebnis Variable.

Code:
create or replace TYPE STA_PERSDATA_RS AS OBJECT
( MatchCode varchar2(40 Char),
  Anrede varchar2(20 Char),
  name1 varchar2(40 Char),
  name2 varchar2(40 Char),
  Strasse varchar2(80 Char),
  PLZ varchar2(16 Char),
  ORT varchar2(80 Char)
);

[declare] obj_STA_PERSDATA_RS STA_PERSDATA_RS ;
Begin
  ..
  fetch CCur ..
  Select STA_PERSDATA_RS(
   <l_row.MatchCode,
    ..
    l_row.ORT>) into <BULK COLLECT>
    obj_STA_PERSDATA_RS from dual;
    Pipe Row (obj_STA_PERSDATA_RS)
    ...
end;
Hier gibt es z.B. eine Gegenüberstellung verschiedener Verfahren.
Pipelined Table Functions
 
Zurück
Oben