在获取过程参数的默认值时遇到问题:
CREATE PROCEDURE foo(p_arg VARCHAR2:= 'FOO')
IS
BEGIN
 NULL;
END;
/
SELECT argument_name, default_value
  FROM sys.all_arguments
 WHERE object_name = 'FOO';
 ARGUMENT_NAME | DEFAULT_VALUE
 ------------------------------
 P_ARG         |  (Memo)我为过程参数设置的默认值不会显示在输出中。我看到的只是default_value栏中的(备注)。Oracle文档没有帮助,因为这个特性是“为将来使用保留的”:01/server.121/e17615/refrn20015.htm#i1573843
请用另一种方法读取过程参数的默认值吗?
发布于 2013-11-01 22:12:04
不幸的是,从未填充过default_value数据字典视图的*_arguments列。出于某种原因,Oracle将其保留给以后使用。您可以看到,参数有或没有分配给它的默认值(列defaulted),但是缺少关于实际默认值的关键信息。在某种程度上,它被认为是文档错误。值得注意的是,dbms_describe包也没有提供有关参数的实际默认值的信息。因此,只有一个选项可以检索参数的默认值--存储过程源代码解析,这可以通过查询*_source视图获得。
https://stackoverflow.com/questions/19727161
复制相似问题