1. <?php
  2. $connection = oci_connect("xxx", "xxx", "xxx");
  3.  
  4. $query='begin
  5. xxx.login(login => :login,
  6. password => :password,
  7. wynik => :wynik,
  8. idp => :idp,
  9. imie => :imie,
  10. nazwisko => :nazwisko,
  11. telefon => :telefon,
  12. fax => :fax,
  13. email => :email,
  14. kod_odd => :kod_odd,
  15. kod_kth => :kod_kth,
  16. kth_odd => :kth_odd,
  17. email_m => :email_m,
  18. email_r => :email_r,
  19. kodroli => :kodroli,
  20. schematwzorcow => :schematwzorcow,
  21. schematmagazynu => :schematmagazynu,
  22. schematmagazynuodd => :schematmagazynuodd,
  23. schematkto => :schematkto,
  24. schematktosal => :schematktosal,
  25. schematroczny => :schematroczny,
  26. schematlismag => :schematlismag,
  27. frm_id => :frm_id,
  28. nazwafirmy => :nazwafirmy,
  29. nip => :nip,
  30. pesel => :pesel,
  31. limit => :limit,
  32. bank => :bank,
  33. kontobanku => :kontobanku,
  34. miastobanku => :miastobanku,
  35. adresbanku => :adresbanku,
  36. miasto_f => :miasto_f,
  37. poczta_f => :poczta_f,
  38. ulica_f => :ulica_f,
  39. pr_u_f => :pr_u_f,
  40. nr_d_f => :nr_d_f,
  41. nr_l_f => :nr_l_f,
  42. user => :user,
  43. dostepnylimit => :dostepnylimit,
  44. nazwaopiekunahandlowego => :nazwaopiekunahandlowego,
  45. telefonopiekunahandlowego => :telefonopiekunahandlowego,
  46. emailopiekunahandlowego => :emailopiekunahandlowego,
  47. nazwaoddzialu => :nazwaoddzialu,
  48. nazwamagazynu => :nazwamagazynu,
  49. adresoddzialu => :adresoddzialu,
  50. adresmagazynu => :adresmagazynu,
  51. faktoringowy => :faktoringowy,
  52. ref1_upr => :ref1_upr);
  53. end;';
  54.  
  55. $cursor = oci_new_cursor($connection);
  56. $stmt = oci_parse($connection, $query);
  57.  
  58. $_login='xxx';
  59. $_password='xxx';
  60.  
  61. oci_bind_by_name($stmt, ':login', $_login);
  62. oci_bind_by_name($stmt, ':password', $_password);
  63.  
  64. oci_bind_by_name($stmt, ':wynik', $wynik);
  65. oci_bind_by_name($stmt, ':idp', $idp, 100, SQLT_CHR);
  66. oci_bind_by_name($stmt, ':imie', $imie);
  67. oci_bind_by_name($stmt, ':nazwisko', $nazwisko);
  68. oci_bind_by_name($stmt, ':telefon', $telefon);
  69. oci_bind_by_name($stmt, ':fax', $fax);
  70. oci_bind_by_name($stmt, ':email', $email);
  71. oci_bind_by_name($stmt, ':kod_odd', $kod_odd);
  72. oci_bind_by_name($stmt, ':kod_kth', $kod_kth);
  73. oci_bind_by_name($stmt, ':kth_odd', $kth_odd);
  74. oci_bind_by_name($stmt, ':email_m', $email_m);
  75. oci_bind_by_name($stmt, ':email_r', $email_r);
  76. oci_bind_by_name($stmt, ':kodroli', $kodroli);
  77. oci_bind_by_name($stmt, ':schematwzorcow', $schematwzorcow);
  78. oci_bind_by_name($stmt, ':schematmagazynu', $schematmagazynu);
  79. oci_bind_by_name($stmt, ':schematmagazynuodd', $schematmagazynuodd);
  80. oci_bind_by_name($stmt, ':schematkto', $schematkto);
  81. oci_bind_by_name($stmt, ':schematktosal', $schematktosal);
  82. oci_bind_by_name($stmt, ':schematroczny', $schematroczny);
  83. oci_bind_by_name($stmt, ':schematlismag', $schematlismag);
  84. oci_bind_by_name($stmt, ':frm_id', $frm_id);
  85. oci_bind_by_name($stmt, ':nazwafirmy', $nazwafirmy);
  86. oci_bind_by_name($stmt, ':nip', $nip);
  87. oci_bind_by_name($stmt, ':pesel', $pesel);
  88. oci_bind_by_name($stmt, ':limit', $limit);
  89. oci_bind_by_name($stmt, ':bank', $bank);
  90. oci_bind_by_name($stmt, ':kontobanku', $kontobanku);
  91. oci_bind_by_name($stmt, ':miastobanku', $miastobanku);
  92. oci_bind_by_name($stmt, ':adresbanku', $adresbanku);
  93. oci_bind_by_name($stmt, ':miasto_f', $miasto_f);
  94. oci_bind_by_name($stmt, ':poczta_f', $poczta_f);
  95. oci_bind_by_name($stmt, ':ulica_f', $ulica_f);
  96. oci_bind_by_name($stmt, ':pr_u_f', $pr_u_f);
  97. oci_bind_by_name($stmt, ':nr_d_f', $nr_d_f);
  98. oci_bind_by_name($stmt, ':nr_l_f', $nr_l_f);
  99. oci_bind_by_name($stmt, ':user', $user);
  100. oci_bind_by_name($stmt, ':dostepnylimit', $dostepnylimit);
  101. oci_bind_by_name($stmt, ':nazwaopiekunahandlowego', $nazwaopiekunahandlowego, 4000, SQLT_CHR);
  102. oci_bind_by_name($stmt, ':telefonopiekunahandlowego', $telefonopiekunahandlowego, 4000, SQLT_CHR);
  103. oci_bind_by_name($stmt, ':emailopiekunahandlowego', $emailopiekunahandlowego, 4000, SQLT_CHR);
  104. oci_bind_by_name($stmt, ':nazwaoddzialu', $nazwaoddzialu, 4000, SQLT_CHR);
  105. oci_bind_by_name($stmt, ':nazwamagazynu', $nazwamagazynu, 4000, SQLT_CHR);
  106. oci_bind_by_name($stmt, ':adresoddzialu', $adresoddzialu, 4000, SQLT_CHR);
  107. oci_bind_by_name($stmt, ':adresmagazynu', $adresmagazynu, 4000, SQLT_CHR);
  108. oci_bind_by_name($stmt, ':faktoringowy', $faktoringowy, 4000, SQLT_CHR);
  109. oci_bind_by_name($stmt, ':ref1_upr', $cursor, -1, SQLT_RSET);
  110.  
  111.  
  112. echo '<pre>'; var_dump($stmt); echo '</pre>';
  113.  
  114. if(oci_execute($stmt)){
  115. echo 'Wszystko ok';
  116. }
  117. $e = oci_error();
  118. echo $e['message'];
  119. //oci_execute($stmt);
  120.  
  121. echo '<pre>'; var_dump($cursor); echo '</pre>';
  122.  
  123. if(oci_execute($cursor)){
  124. echo 'Drugi raz ok.';
  125. }
  126. else{
  127. $e = oci_error();
  128. echo $e['message'];
  129. }
  130.  
  131. while ($data[] = oci_fetch_assoc($cursor));
  132.  
  133. while ($row = oci_fetch_assoc($stmt));
  134.  
  135. oci_free_statement($stmt);
  136. oci_free_statement($cursor);
  137. ?>


Linia 114 wykonuje się bez problemu. Natomiast 123 zwraca błąd:
  1. Warning: oci_execute() [function.oci-execute]: ORA-24338: nie był wykonany uchwyt instrukcji in D:\xampp\htdocs\sklep\polaczenie.php on line 123

Ktoś wie co może być tego powodem ?

zauważyłem że utworzony kursor jest nieznanego typu:
  1. var_dump($cursor);

zwraca
  1. resource(12) of type (Unknown)