Oralce FUNCTION
mrowka-79@o2.pl - 12-07-2006 02:06
Oralce FUNCTION
Mam taką deklaracje
CREATE OR REPLACE PACKAGE Test AS TYPE MyTab IS TABLE OF NUMBER INDEX BY BINARY_INTEGER; ...... FUNCTION aa(aa IN NUMBER) RETURN MyTab END Test;
i teraz chce aby funkcja zwracała zmienna tego typu
FUNCTION aa(aa IN NUMBER) RETURN MyTab IS Qwe MyTab; BEGIN Qwe:= /* cos tam przypisuje*/ RETURN qwe; -- no i zonk END aa;
W jaki sposób mam to wykonac? co robie źle?
Szczepan Marchewka - 12-07-2006 02:06
> W jaki sposób mam to wykonac? co robie źle?
Wywolac mozesz to mozesz np w SQL+ w ten sposob:
declare a Test.MyTab; begin a := Test.aa(15); end; /
Szczepan@Marchewka.info.pl ----- In the beginner's mind there are many possibilities, but in the expert's mind there are few. (Shunryu Suzuki 1905-1971)
mrowka-79@o2.pl - 12-07-2006 02:06
Wypociłem coś takiego
CREATE OR REPLACE PACKAGE Test AS TYPE MyTab IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
FUNCTION aa(id_grupy IN NUMBER) RETURN MyTab; END Test; /
CREATE OR REPLACE PACKAGE BODY Test AS
FUNCTION aa(id_grupy IN NUMBER) RETURN MyTab IS a MyTab; BEGIN
a(0):=11; a(1):=22; a(2):=33;
RETURN a; END aa;
END Test; /
Niby ładnie sie kompiluje, ale w sql+ pisze tak: select Test.aa(200) from dual; w efekcie mam BŁĄD w linii 1: ORA-00902: niepoprawny typ danych nie łapie tego, chyba ten upał mi zaszkodził
wk - 12-07-2006 02:06
Użytkownik <mrowka-79@o2.pl> napisał w wiadomości news:1152614231.541771.14820@b28g2000cwb.googlegro ups.com... >> Wypociłem coś takiego >> Niby ładnie sie kompiluje, ale w sql+ pisze tak: >> select Test.aa(200) from dual; >> w efekcie mam >> BŁĄD w linii 1: >> ORA-00902: niepoprawny typ danych >> nie łapie tego, chyba ten upał mi zaszkodził To nie tak musi wyglądać... Typ musi być obiektem zewnetrznym, do tego funkcja musi być funkcją potokową (z opcją PIPELINED)
i wtedy możesz używać tego tak: select Test.aa(200) from dual; lub select * from table(Test.aa(200));
-- wk
mrowka-79@o2.pl - 13-07-2006 01:46
Wielkie dzięki jak nie twój komentarz to trudno powiedzieć jak długo bym sie jeszcze w tym plątał.
wk - 14-07-2006 02:45
Użytkownik <mrowka-79@o2.pl> napisał w wiadomości news:1152710418.344283.148290@m79g2000cwm.googlegr oups.com...
> Wielkie dzięki jak nie twój komentarz to trudno powiedzieć jak > długo bym sie jeszcze w tym plątał.
Prosze bardzo :) W dokumentacji Oracla (po hasłami zdaje się "table function" lub "function pipelined") jest dokładnie i prosto podany przykład jak to zrobić.
-- wk
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
=?iso-8859-2?q?Co_oznacza_b=B3=B1d_Warning:_mysql=5Fconnect() _[function.mysql-connect]:_Can't_connect_to_local_MySQL_server_through_sock et_'/var/run/mysqld/mysqld.sock'_(2)_in?=
=?ISO-8859-2?Q?[Oralce]_Jak_sprawdzi=E6_d?= =?ISO-8859-2?Q?ok=B3adn=B1_wersj=EA_binari=F3w=3F?=
Call to undefined function mysql_connect() ???
konwerter VGA - TV
SQL w Oracle i nie tylko
Dostęp do MySQL z poziomu Accessa
Pytanie na temat Oracle10g?????
MsSQL2000 - auto shrink blokuje
lightroom traial /pc/
MS Access + Samba
zanotowane.pldoc.pisz.plpdf.pisz.plown-team.pev.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|