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

Czy mogę zwrócić wartości do PHP z anonimowego bloku PL/SQL?

Definiujesz parametr out za pomocą słowa kluczowego OUT między nazwą a deklaracją typu danych. IE:

CREATE OR REPLACE PROCEDURE blah (OUT_PARAM_EXAMPLE OUT VARCHAR2) IS ...

Jeśli nie określono, IN jest wartością domyślną. Jeśli chcesz użyć parametru jako wejścia i wyjścia, użyj:

CREATE OR REPLACE PROCEDURE blah (INOUT_PARAM_EXAMPLE IN OUT VARCHAR2) IS ...

Poniższy przykład tworzy procedurę z parametrami IN i OUT. Procedura jest następnie wykonywana, a wyniki drukowane.

<?php
   // Connect to database...
   $c = oci_connect("hr", "hr_password", "localhost/XE");
   if (!$c) {
      echo "Unable to connect: " . var_dump( oci_error() );
      die();
   }

   // Create database procedure...
   $s = oci_parse($c, "create procedure proc1(p1 IN number, p2 OUT number) as " .
                     "begin" .
                     "  p2 := p1 + 10;" .
                     "end;");
   oci_execute($s, OCI_DEFAULT);

   // Call database procedure...
   $in_var = 10;
   $s = oci_parse($c, "begin proc1(:bind1, :bind2); end;");
   oci_bind_by_name($s, ":bind1", $in_var);
   oci_bind_by_name($s, ":bind2", $out_var, 32); // 32 is the return length
   oci_execute($s, OCI_DEFAULT);
   echo "Procedure returned value: " . $out_var;

   // Logoff from Oracle...
   oci_free_statement($s);
   oci_close($c);
 ?>

Odniesienie:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zaimportować partycję z jednej tabeli do drugiej w Oracle?

  2. Błąd ORA-12514 po ponownym uruchomieniu serwera

  3. Oracle ORA-01008:nie wszystkie zmienne powiązane Błąd z parametrami

  4. Duże problemy z wydajnością z Oracle DataReader w .Net

  5. Zwróć zmienną kursora procedury składowanej w cx_oracle