首页 > 解决方案 > oracle:参数默认值不显示

问题描述

我写了这个程序:

  create or replace PROCEDURE num_mandati ( persona IN parlamento2018.parlamentari.cf%type default '1234567890ABCDEF') IS  
     nomePersona parlamentari.nome%type;
     cognomePersona parlamentari.cognome%type;
     n_codfis           NUMBER := 0;
     nessunParlamentare EXCEPTION;


  BEGIN

    dbms_output.put_line('persona: ' ||persona);
  END num_mandati;

在程序体中有一条输出指令,但不显示参数“persona”的默认值。parlamentari 表的cf 列的类型是varchar2(16)。为什么不显示参数的值?

标签: oracleparametersdefault-value

解决方案


在不知道您调用该过程的方式的情况下,我看到了两个可能的原因:您没有SET SERVEROUTPUT ON或您传递了一个NULL值:

SQL> exec num_mandati;

PL/SQL procedure successfully completed.

SQL> SET SERVEROUTPUT ON
SQL> exec num_mandati;
persona: 1234567890ABCDEF

PL/SQL procedure successfully completed.

SQL> exec num_mandati('');
persona:

PL/SQL procedure successfully completed.

SQL>

推荐阅读