Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: php i Oracle, zmienne tablicowe
Forum PHP.pl > Forum > PHP
OscarG
Witam

Czy jest możliwość i jak to zrobić, aby w php wywołać procedure z oracla która ma parametr IN OUT i jest to tablica?

czyli mam pakiet w oraclu, w którym zdefiniowana jest typ tablicowy np

TYPE pstrec_ank IS RECORD (
ID aneksy.ID%TYPE
,umowa_id aneksy.umowa_id%TYPE
,opisy_dodatkowe_id aneksy.opisy_dodatkowe_id%TYPE
,opis VARCHAR2 (4000));

TYPE psttab_ank IS TABLE OF pstrec_ank
INDEX BY BINARY_INTEGER;

a potem mam procedurke

PROCEDURE ANK_QRY
(PTAB_ANEKSY IN OUT PSTTAB_ANK
,P_ANEKSID IN NUMBER
);

jak teraz wywołać w php procedure ank_qry i odczytać tablice którą zwraca?

Z góry dzękuje za pomoc winksmiley.jpg
em1X

Calling Oracle stored procedures with php
OscarG
Teoretycznie znalazłem przyczynę.....

ja te typy danych mam utworzone w specyfikacji pakietu, a z tego co wyczytałem to należy stworzyć je normalnie na bazie a następnie w procedurze z niech skorzystać,

jednakże dla mnie wiąże się to z poprawkami aplikacji już działającej na Formsach 6i ;(


jednak nie moge se poradzic.. sad.gif
zrobilem teakie cos

CREATE OR REPLACE
type pstrec_umw AS OBJECT (
id_umowy NUMBER(16)
,numer VARCHAR2(50)
,numer_zewnetrzny VARCHAR2(50));

potem tablice i tu wlasnie nie wiem czy dobrze?

CREATE OR REPLACE
TYPE psttab_umw AS TABLE OF pstrec_umw;

no i procedurke która ma miec jako parametr ta tablice i ja uzupelniac

PROCEDURE test_php(ptab_umw IN OUT psttab_umw) is
begin
ptab_umw := psttab_umw();
ptab_umw.extend(3);
ptab_umw(1).numer := 'aaaaa1';
ptab_umw(2).numer := 'zzzzaa1';
ptab_umw(3).numer := 'zzzzaa1';
end;

i juz problem mam na poziomie pl/sql bo ta procedura nie chce mi dzialac... dostaje komunikat
[1]: (Error): ORA-06530: Odwołanie do nie zainicjowanego kompozytu ORA-06512: przy "INKASO6.TEST_PHP", linia 5 ORA-06512: przy linia 4

czy ktos sie bawił kiedys tablicami stworzonymi na podstawie typów w schemacie uzytkownika?
ma ktos jakies pomysly radny?
czy ta tablica jest dobrze stworzona?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.