Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Procedura składowana wywołań PHP-OCI z parametrami

Korzystanie z foreach podejście od mojej odpowiedzi na inne z Twoich pytań nie jest dobrym pomysłem w przypadku procedur składowanych.

Chociaż to działa (jak pokazano w twoim pytaniu, zmienne są ustawione w $params tablicy po wykonaniu) największym problemem jest to, że musisz podać czwarty parametr (maxlength ) do oci_bind_by_name . Użyłeś wartości statycznej 32 w kodzie, ale błąd jest zgłaszany, gdy długość wartości przekracza tę wartość. Nie można go obliczyć w czasie wykonywania, a ustawienie bardzo dużej wartości jest nieefektywne (może nie stanowi to problemu dla Twojej aplikacji).

Ponieważ używasz znanej procedury składowanej, powinieneś znać maxlength wartości wyjściowych w czasie projektowania i można je wprowadzić statycznie, umieszczając wszystkie oci_* funkcje w getHours() , zamiast próbować abstrahować wszystkie wywołania customExecute() .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy istnieje odpowiednik Oracle SQL Server's OUTPUT INSERTED.*?

  2. Wstawiaj rekordy zbiorcze do zdalnej bazy danych (dblink) za pomocą Bulk Collect

  3. Podziel ciąg według pozycji ogranicznika za pomocą oracle

  4. Dlaczego nie mogę użyć mojego typu zdefiniowanego przez użytkownika Oracle w ten sposób?

  5. jak wyświetlić wartość liczbową w słowach