<?php $polaczenie = oci_connect("xxx", "xxx", "xxx"); if (!$polaczenie) { $e = oci_error(); } else{ $curs = oci_new_cursor($polaczenie); $query='begin ehandel_pack.search(page_nr => :page_nr, results_per_page => :results_per_page, schemat => :schemat, schematmag => :schematmag, prod => :prod, prodg => :prodg, asort => :asort, text => :text, sym => :sym, sym_proc => :sym_proc, sort_kol => :sort_kol, sort_kier => :sort_kier, kod_roli => :kod_roli, schematmagmc => :schematmagmc, schematkto => :schematkto, kodkth => :kodkth, isownproductfiltr => :isownproductfiltr, ref1 => :ref1, total => :total); end;'; $stmt = oci_parse($polaczenie, $query); $_page_nr=1; $_results_per_page = 100; $_schemat='comz2012'; $_schematmag='z012012'; $_prod=''; $_prodg=''; $_asort=''; $_text=''; $_sym=''; $_sym_proc=''; $_sort_kol=''; $_sort_kier=''; $_kod_roli=''; $_schematmagmc='z012012'; $_schematkto='comz2012'; $_kodkth=''; $_isownproductfiltr=0; oci_bind_by_name($stmt, ':page_nr', $_page_nr); oci_bind_by_name($stmt, ':results_per_page', $_results_per_page); oci_bind_by_name($stmt, ':schemat', $_schemat); oci_bind_by_name($stmt, ':schematmag', $_schematmag); oci_bind_by_name($stmt, ':prod', $_prod); oci_bind_by_name($stmt, ':prodg', $_prodg); oci_bind_by_name($stmt, ':asort', $_asort); oci_bind_by_name($stmt, ':text', $_text); oci_bind_by_name($stmt, ':sym', $_sym); oci_bind_by_name($stmt, ':sym_proc', $_sym_proc); oci_bind_by_name($stmt, ':sort_kol', $_sort_kol); oci_bind_by_name($stmt, ':sort_kier', $_sort_kier); oci_bind_by_name($stmt, ':kod_roli', $_kod_roli); oci_bind_by_name($stmt, ':schematmagmc', $_schematmagmc); oci_bind_by_name($stmt, ':schematkto', $_schematkto); oci_bind_by_name($stmt, ':kodkth', $_kodkth); oci_bind_by_name($stmt, ':isownproductfiltr', $_isownproductfiltr); oci_define_by_name($stmt, 'ref1', $_ref1); oci_define_by_name($stmt, 'total', $_total); oci_execute($stmt); oci_execute($curs); } ?>
Dodam tylko że ref1 to zwracany kursor. a total to całkowita liczba rekordów. Pozostałe to dane wejściowe. W jaki sposób wywołać daną procedurę bez błędów? tak abym mógł działać na otrzymanym wskaźniku.
Aktualnie php zwraca komunikat:
Warning: oci_execute() [function.oci-execute]: ORA-01008: nie wszystkie zmienne zostały zwišzane in D:\xampp\htdocs\sklep\polaczenie.php on line 73
Jednak sam byłem w stanie rozwiązać ten problem. Temat do zamknięcia/usunięcia.
Dla potomnych:
oci_bind_by_name($stmt, ':ref1', $curs, -1, SQLT_RSET); oci_bind_by_name($stmt, ':total', $total);