ďťż
 
Oralce FUNCTION ďťż
 
Oralce FUNCTION
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    =?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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • own-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

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com