sql >> Database >  >> RDS >> Oracle

PHP-OCI Call Stored Procedure met parameters

De foreach gebruiken benadering van mijn antwoord op een andere van uw vragen is geen goed idee bij het omgaan met opgeslagen procedures.

Hoewel het werkt (zoals getoond in uw vraag, worden de variabelen ingesteld in de $params array na uitvoering) is het grootste probleem dat u de vierde parameter moet opgeven (maxlength ) naar oci_bind_by_name . U heeft een statische waarde van 32 . gebruikt in uw code, maar er wordt een fout gegenereerd wanneer de lengte van een waarde deze overschrijdt. Het kan niet tijdens runtime worden berekend en het is inefficiënt om het in te stellen op een zeer hoge waarde (misschien is dit geen probleem voor uw toepassing).

Aangezien u een bekende opgeslagen procedure uitvoert, moet u de maxlength . kennen van uitvoerwaarden tijdens het ontwerp en deze kunnen statisch worden ingevoerd door alle oci_* functies in getHours() , in plaats van te proberen alle aanroepen naar customExecute() te abstraheren .




  1. Hoe kan ik waarden van de ene tabel naar de andere krijgen via vergelijkbare waarden?

  2. Is het mogelijk om het laden van SQL-instructies uit een bestand te patchen met clojure.java.jdbc?

  3. Eenvoudige SQL Server-functies om echte problemen op te lossen

  4. Oracle:hoe voeg ik minuten toe aan een tijdstempel?