Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Domyślne wartości procedury składowanej w Oracle

Wartości domyślne są używane tylko wtedy, gdy argumenty nie są określone. W Twoim przypadku zrobiłeś podaj argumenty - oba zostały podane, z wartością NULL. (Tak, w tym przypadku NULL jest traktowane jako wartość rzeczywista :-). Wypróbuj:

EXEC TEST()

Dziel się i ciesz.

Uzupełnienie :Domyślne wartości parametrów procedury są z pewnością ukryte gdzieś w tabeli systemowej (zobacz SYS.ALL_ARGUMENTS widoku), ale uzyskanie wartości domyślnej z widoku wymaga wyodrębnienia tekstu z pola LONG i prawdopodobnie okaże się bardziej bolesne niż jest to warte. Łatwe sposobem jest dodanie kodu do procedury:

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. Dodaj wskaźnik porządkowy do daty w Oracle

  2. Błąd ORA-00932 podczas używania wyboru z polami Union i CLOB

  3. -bash:imp:polecenie nie zostało znalezione wyrocznia

  4. Jak zdobyć pierwszy i ostatni dzień tygodnia w Oracle?

  5. Znajdowanie dat między dwiema datami (najlepsza praktyka)