ďťż
 
Oracle 8i, referencja na kursor ďťż
 
Oracle 8i, referencja na kursor
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

Oracle 8i, referencja na kursor



Robert - 10-02-2006 12:12
Oracle 8i, referencja na kursor
  Witam, robie cos takiego:

TYPE JednCurTyp IS REF CURSOR;

...........

OPEN crs_jedn FOR

SELECT DISTINCT RJA.idJednA

FROM REJA RJA, REJRA RJRA

WHERE ....

pozniej FETCH ... i wywala mi: ORA-01475: must reparse cursor to change
bind variable datatype

nie wiecie o co moze chodzic ? moze zamiast TYPE JednCurTyp IS REF CURSOR;
dac cos typu:
TYPE JednCurTyp IS REF CURSOR RETURN REJA%Rowtype;

tylko ze jak dam %Rowtype to chyba jak chce caly wiersz a ja biore 1
kolumne. Z %Rowtype kompilator wywala mi niezgodnosc typow...

pozdrawiam
Robert





Robert - 11-02-2006 22:52

  Witam ponownie. Dokladniej wyglada to tak: jest ta referencja na kursor i
zawsze pobieram varchar2(15) z tej tabeli. Robie :
TYPE JednCurTyp IS REF CURSOR; no i jak to puszczam bezposrednio na serwerze
to jest ok, natomiast jak puszcze z Delphi5 lub CBuilder6 z uzyciem
komponentow ODAC to wlasnie wywala mi ten blad:
ORA-01475: must reparse cursor to change bind variable datatype
wartosc pobieram tak :
fetch crs_jedn into tmp_idJedn; gdzie tmp_idJedn varcha2(15)

Problem moze w tym ze czasami dostane null zamiast varchar2 jak nic nie
znajdzie, hmmmm. W sumie nie podaje tez typu wyniku, da sie to jakos zrobic
w tym przypadku ? moze by pomoglo... a moze to kwestia jakichs ustawien w
komponencie odaca ? Probowalem tak intuicyjnie dac : TYPE JednCurTyp IS REF
CURSOR RETURN varchar2; ale kompilator nie przyjmuje (twierdzi ze to musi
byc record type). Troche to dziwne - wiem co pobieram a nie moge tego
okreslic eksplicite :/ Macie jakis pomysl... ?

z gory dzieki za pomoc
Robert

>
> TYPE JednCurTyp IS REF CURSOR;
>
> ..........
>
> OPEN crs_jedn FOR
>
> SELECT DISTINCT RJA.idJednA
>
> FROM REJA RJA, REJRA RJRA
>
> WHERE ....
>
> pozniej FETCH ... i wywala mi: ORA-01475: must reparse cursor to change
> bind variable datatype
>
> nie wiecie o co moze chodzic ? moze zamiast TYPE JednCurTyp IS REF CURSOR;
> dac cos typu:
> TYPE JednCurTyp IS REF CURSOR RETURN REJA%Rowtype;
>
> tylko ze jak dam %Rowtype to chyba jak chce caly wiersz a ja biore 1
> kolumne. Z %Rowtype kompilator wywala mi niezgodnosc typow...
>
> pozdrawiam
> Robert
>




Lucyna Witkowska - 13-02-2006 10:32

  Robert <rgrzes@lexpolonica.pl> napisał:
> Witam ponownie. Dokladniej wyglada to tak: jest ta referencja na kursor i
> zawsze pobieram varchar2(15) z tej tabeli. Robie :
> TYPE JednCurTyp IS REF CURSOR; no i jak to puszczam bezposrednio na serwerze
> to jest ok, natomiast jak puszcze z Delphi5 lub CBuilder6 z uzyciem
> komponentow ODAC to wlasnie wywala mi ten blad:
> ORA-01475: must reparse cursor to change bind variable datatype
> wartosc pobieram tak :
> fetch crs_jedn into tmp_idJedn; gdzie tmp_idJedn varcha2(15)

> Problem moze w tym ze czasami dostane null zamiast varchar2 jak nic nie
> znajdzie, hmmmm. W sumie nie podaje tez typu wyniku, da sie to jakos zrobic
> w tym przypadku ? moze by pomoglo... a moze to kwestia jakichs ustawien w
> komponencie odaca ? Probowalem tak intuicyjnie dac : TYPE JednCurTyp IS REF
> CURSOR RETURN varchar2; ale kompilator nie przyjmuje (twierdzi ze to musi
> byc record type). Troche to dziwne - wiem co pobieram a nie moge tego
> okreslic eksplicite :/ Macie jakis pomysl... ?

Jak chcesz podac typ wyniku, stworz typ record, w ktorym będzie
jeden skladnik:

type rja_rec is record
( rja_idjedna rja.idjednA%type );

type JednCurTyp IS REF CURSOR return rja_rec;

Ale nie wiem, jak to bedzie dzialalo z odac.

Pozdrowienia,
LW
  • 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] czy da =?ISO-8859-2?Q?si=EA_z_poziomu_procedury_?==?ISO-8859-2?Q?zrobi=E6_kopi=EA_zapasow=B1=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"..?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • chinska-zupka.opx.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