Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Tôi có thể trả lại giá trị cho PHP từ một khối PL / SQL ẩn danh không?

Bạn xác định một tham số out bằng cách sử dụng từ khóa OUT giữa khai báo tên và kiểu dữ liệu. IE:

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

Nếu không được chỉ định, IN là mặc định. Nếu bạn muốn sử dụng một tham số cả trong và ngoài, hãy sử dụng:

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

Ví dụ sau tạo một thủ tục với các tham số IN và OUT. Sau đó, thủ tục được thực thi và kết quả được in ra.

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

Tham khảo:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đảo ngược một chuỗi bằng cách sử dụng một chỉ mục trong Oracle

  2. Cách nhập liên kết cho một tham số nhiều giá trị trong SQL Developer

  3. MODIFY COLUMN trong oracle - Làm cách nào để kiểm tra xem một cột có thể nullable hay không trước khi đặt thành nullable?

  4. Làm thế nào để viết thường các đối tượng trong cơ sở dữ liệu Oracle?

  5. Khung dữ liệu R tới bảng Oracle SQL:Không thể cấp phát bộ nhớ