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

Giá trị mặc định cho thủ tục được lưu trữ trong Oracle

Giá trị mặc định chỉ được sử dụng nếu các đối số không được chỉ định. Trong trường hợp của bạn, bạn đã đã làm chỉ định các đối số - cả hai đều được cung cấp, với giá trị NULL. (Có, trong trường hợp này NULL được coi là một giá trị thực :-). Hãy thử:

EXEC TEST()

Chia sẻ và tận hưởng.

Phụ lục :Các giá trị mặc định cho các tham số thủ tục chắc chắn được chôn trong bảng hệ thống ở đâu đó (xem SYS.ALL_ARGUMENTS xem), nhưng việc lấy giá trị mặc định ra khỏi chế độ xem liên quan đến việc trích xuất văn bản từ trường DÀI, và có thể sẽ chứng tỏ là khó khăn hơn giá trị của nó. Sự dễ dàng cách là thêm một số mã vào thủ tục:

CREATE OR REPLACE PROCEDURE TEST(X IN VARCHAR2 DEFAULT 'P',
                                 Y IN NUMBER DEFAULT 1)
AS
  varX VARCHAR2(32767) := NVL(X, 'P');
  varY NUMBER          := NVL(Y, 1);
BEGIN
  DBMS_OUTPUT.PUT_LINE('X=' || varX || ' -- ' || 'Y=' || varY);
END TEST;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chuyển đổi Dấu thời gian Unix thành Giá trị ngày tháng trong Oracle

  2. Làm thế nào để đoán trước và thoát khỏi báo giá đơn 'trong oracle

  3. ORA-00979 không phải là một nhóm theo biểu thức

  4. sự cố khi tạo tiêu đề bằng cách sử dụng spool trong sqlplus

  5. Oracle SQL:Chọn dữ liệu và tên phân vùng từ bảng và cắt bớt các phân vùng