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

Quy trình lưu trữ cuộc gọi trong PHP-OCI với các tham số

Sử dụng foreach cách tiếp cận từ câu trả lời của tôi cho một câu hỏi khác của bạn không phải là một ý kiến ​​hay khi xử lý các thủ tục được lưu trữ.

Mặc dù nó hoạt động (như được hiển thị trong câu hỏi của bạn, các biến được đặt trong $params mảng sau khi thực thi) vấn đề lớn nhất là bạn phải cung cấp tham số thứ tư (maxlength ) thành oci_bind_by_name . Bạn đã sử dụng giá trị tĩnh là 32 trong mã của bạn, nhưng lỗi xuất hiện khi độ dài của một giá trị vượt quá giá trị này. Nó không thể được tính toán trong thời gian chạy và việc đặt nó thành một giá trị rất lớn là không hiệu quả (có thể đây không phải là vấn đề đối với ứng dụng của bạn).

Vì bạn đang chạy một thủ tục được lưu trữ đã biết, bạn nên biết maxlength giá trị đầu ra tại thời điểm thiết kế và những giá trị này có thể được nhập tĩnh bằng cách đặt tất cả oci_* các hàm trong getHours() , thay vì cố gắng tóm tắt tất cả các lệnh gọi đến customExecute() .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. tạo khung dữ liệu gấu trúc từ truy vấn cơ sở dữ liệu sử dụng các biến liên kết

  2. JFreeChart sử dụng truy vấn số ORACLE

  3. Làm thế nào để gọi một proc được lưu trữ từ bao phấn và sửa đổi con trỏ được trả về?

  4. Hàm LN () trong Oracle

  5. Sự cố Tạo trình kích hoạt bằng Oracle