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

Nilai Default untuk Prosedur Tersimpan di Oracle

Nilai default hanya digunakan jika argumen tidak ditentukan. Dalam kasus Anda, Anda melakukannya tentukan argumen - keduanya disediakan, dengan nilai NULL. (Ya, dalam hal ini NULL dianggap sebagai nilai nyata :-). Coba:

EXEC TEST()

Bagikan dan nikmati.

Tambahan :Nilai default untuk parameter prosedur pasti terkubur dalam tabel sistem di suatu tempat (lihat SYS.ALL_ARGUMENTS view), tetapi mengeluarkan nilai default dari tampilan melibatkan mengekstraksi teks dari bidang PANJANG, dan mungkin akan terbukti lebih menyakitkan daripada nilainya. mudah caranya adalah dengan menambahkan beberapa kode ke prosedur:

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. Kesalahan dengan transaksi JPA saat memanggil prosedur tersimpan

  2. Fungsi Oracle Analytic untuk nilai minimum dalam pengelompokan

  3. mengecilkan database di oracle 11g

  4. Mengonversi CLOB ke NUMBER untuk dibandingkan - Oracle

  5. Permintaan Oracle untuk menemukan string yang tidak mengandung karakter