ďťż
 
Re: Oracle - Procedura skladowana zwracajaca liste rekordow ďťż
 
Re: Oracle - Procedura skladowana zwracajaca liste rekordow
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

Re: Oracle - Procedura skladowana zwracajaca liste rekordow



Marcin Sobieszek - 04-11-2005 23:16

  Hi,

Jarek wrote:
> Mam pytanie jak w Oraclu obsluzyc nastepujaca konstrukcje z Firebirda:
>
> select * from "nazwa_procedury(parametr1, parametr2)";

co prawda nie znam sie na firebirdzie, ale w oraclu wyglada to tak:

http://www.akadia.com/services/ora_pipe_functions.html

pozdrawiam
--
Marcin Sobieszek





Morff - 11-11-2005 11:40

  Marcin Sobieszek napisał(a):
> Hi,
>
> Jarek wrote:
>
>> Mam pytanie jak w Oraclu obsluzyc nastepujaca konstrukcje z Firebirda:
>>
>> select * from "nazwa_procedury(parametr1, parametr2)";
>
>
> co prawda nie znam sie na firebirdzie, ale w oraclu wyglada to tak:
>
> http://www.akadia.com/services/ora_pipe_functions.html
>
> pozdrawiam
> --
> Marcin Sobieszek

Jezeli wynikiem zapytania ma być tabela to
proponuje zamiast procedury wykorzystac funkcję. Wtedy :

musisz mieć zadeklarowane 2 typy :

create type mojrekord as object(pole1,pole2,pole3)

create type mojatabelka as table of mojrekord

create or replace function moja_funkcja (parametr1 typ1,parametr2 typ2
....) return mojatabelka
is
tmp_tabelka mojatabelka:=mojatabelka();
cursor kursor is
jakiś tam selekt z parametrami
....
begin
for w in kursor loop --wypełniam tabelke danymi z kursora
tmp_tabelka.extend;
tmp_tabelka(tmp_tabelka.count):=mojrekord(w.pole1, w.pole2...);
end loop;
...
return tmp_tabelka;
....
end.

zapytanie ma wtedy postac :

select * from table (cast(mojafunkcja(parametr1,parametr2...) as
mojatabelka)

jezeli wynikiem ma być jedna wartość to teże lepiej z funkcji ..

select mojafunkcja(param1,param2) from dual

--
Pozdrawiam
Morff
----------
AQQ 141151




Jarek Mazur - 13-11-2005 11:58

  Morff napisał(a):
> Marcin Sobieszek napisał(a):
>
>> Hi,
>>
>> Jarek wrote:
>>
>>> Mam pytanie jak w Oraclu obsluzyc nastepujaca konstrukcje z Firebirda:
>>>
>>> select * from "nazwa_procedury(parametr1, parametr2)";
>>
>>
>>
>> co prawda nie znam sie na firebirdzie, ale w oraclu wyglada to tak:
>>
>> http://www.akadia.com/services/ora_pipe_functions.html
>>
>> pozdrawiam
>> --
>> Marcin Sobieszek
>
>
> Jezeli wynikiem zapytania ma być tabela to
> proponuje zamiast procedury wykorzystac funkcję. Wtedy :
>
> musisz mieć zadeklarowane 2 typy :
>
>
> create type mojrekord as object(pole1,pole2,pole3)
>
> create type mojatabelka as table of mojrekord
>
> create or replace function moja_funkcja (parametr1 typ1,parametr2 typ2
> ...) return mojatabelka
> is
> tmp_tabelka mojatabelka:=mojatabelka();
> cursor kursor is
> jakiś tam selekt z parametrami
> ...
> begin
> for w in kursor loop --wypełniam tabelke danymi z kursora
> tmp_tabelka.extend;
> tmp_tabelka(tmp_tabelka.count):=mojrekord(w.pole1, w.pole2...);
> end loop;
> ..
> return tmp_tabelka;
> ...
> end.
>
> zapytanie ma wtedy postac :
>
> select * from table (cast(mojafunkcja(parametr1,parametr2...) as
> mojatabelka)
>
>
> jezeli wynikiem ma być jedna wartość to teże lepiej z funkcji ..
>
> select mojafunkcja(param1,param2) from dual
>
>
dzieki, wlasnie takiego rozwiazania szukalem

pozdrawiam
Jarek
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Oracle, SQL, PL/SQL. Jak =?ISO-8859-2?Q?napisa=E6_zapytanie=2C?==?ISO-8859-2?Q?_kt=F3re_zwr=F3ci_nazw=EA_atrybutu=2C_kt=F3reg o?==?ISO-8859-2?Q?_warto=B6ci_spe=B3niaj=B1_zadany_warunek?= Oracle 19g +Insert +Insert +Insert... [oracle] zapytanie dynamiczne z =?ISO-8859-2?Q?=22dynamiczn=B1_?==?ISO-8859-2?Q?nazw=B1_tabeli=22?= [Oracle] jak =?ISO-8859-2?Q?ograniczy=E6_pami=EA=E6_dla_se?==?ISO-8859-2?Q?rwera=3F?= =?ISO-8859-2?Q?=5BOT=5D_Zdany_egzamin_Oracle_1Z0-007_a?==?ISO-8859-2?Q?_brak_informacji_na_stronie_Prometric_-_czy?==?ISO-8859-2?Q?_co=B6_nie_tak=3F?= [oracle 10g] czy =?ISO-8859-2?Q?mo=BFna_wy=B3=B1czy=E6_wszys?==?ISO-8859-2?Q?tkie_wi=EAzy_w_schemacie=3F?= MSSQL Express czy Oracle Express =?iso-8859-2?q?[oracle]_Jak_sprawdzi=E6_wielko=B6=E6_tabeli_=3F=3F?= =?ISO-8859-2?Q?Poszukjue_ksi=B1=BFki_"Oracle_?= =?ISO-8859-2?Q?optymalizacja_wydajno=B6ci"..?= [Oracle] =?ISO-8859-2?Q?=A3=B1czenie_wierszy_z_zapytania_?==?ISO-8859-2?Q?w_jeden_string?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • numervin.keep.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