Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bisakah saya mengembalikan nilai ke PHP dari blok PL/SQL anonim?

Anda menentukan parameter keluar dengan menggunakan kata kunci OUT antara deklarasi nama dan tipe data. yaitu:

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

Jika tidak ditentukan, IN adalah default. Jika Anda ingin menggunakan parameter sebagai masuk dan keluar, gunakan:

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

Contoh berikut membuat prosedur dengan parameter IN dan OUT. Prosedur tersebut kemudian dijalankan dan hasilnya dicetak.

<?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);
 ?>

Referensi:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Klien desktop gratis untuk Oracle?

  2. Bagaimana cara menyinkronkan dan mengoptimalkan indeks Oracle Text?

  3. Oracle UTL_FILE membaca baris file CSV

  4. cara membuat tabel di oracle

  5. Fungsi ROUND(tanggal) di Oracle