sql >> Databasteknik >  >> RDS >> Oracle

PHP-OCI Call Stored Procedure med parametrar

Använda foreach tillvägagångssätt från mitt svar till en annan av dina frågor är inte en bra idé när du hanterar lagrade procedurer.

Medan det fungerar (som visas i din fråga, ställs variablerna in i $params array efter körning) är det största problemet att du måste ange den fjärde parametern (maxlength ) till oci_bind_by_name . Du har använt ett statiskt värde på 32 i din kod, men ett fel uppstår när längden på ett värde överskrider detta. Det kan inte beräknas vid körning och att ställa in det till ett mycket stort värde är ineffektivt (kanske är detta inte ett problem för din applikation).

Eftersom du kör en känd lagrad procedur bör du känna till maxlength av utdatavärden vid design-tid och dessa kan matas in statiskt genom att sätta alla oci_* funktioner i getHours() , istället för att försöka abstrahera alla anrop till customExecute() .




  1. GROUP_CONCAT numrering

  2. Sekvens efter datum, lägg till datum före och datum efter postgresql med underfråga

  3. Importera data från Excel till PostgreSQL

  4. oracle plsql:hur man analyserar XML och infogar i tabellen