【发布时间】:2012-04-07 22:43:15
【问题描述】:
与 Oracle 一样,DB2 支持存储过程中的参数默认值。甲骨文语法:
CREATE OR REPLACE PROCEDURE p_default (
p_in_number IN number := 0,
p_out_number OUT number,
p_in_varchar IN varchar2 := '0',
p_out_varchar OUT varchar2,
p_in_date IN date := date '1981-07-10',
p_out_date OUT date
)
DB2 语法:
CREATE PROCEDURE p_default (
IN p_in_number INTEGER DEFAULT(0),
OUT p_out_number INTEGER,
IN p_in_varchar VARCHAR(10) DEFAULT('0'),
OUT p_out_varchar VARCHAR(10),
IN p_in_date DATE DEFAULT('1981-07-10'),
OUT p_out_date DATE
)
使用 Oracle,我可以使用以下查询发现默认值:
SELECT argument_name, defaulted FROM all_arguments WHERE object_id = :proc_id
如何在 DB2 中从SYSCAT 表中选择这一点?我在SYSCAT.PROCPARMS 或SYSCAT.FUNCPARMS 中看不到任何有用的列。请注意,如果存在这样的过程,我不介意从 SYSPROC 调用任何存储过程...
注意,我问过关于 SQL Server 的类似问题:
Discover SQL Server procedure default parameters using SYS or INFORMATION_SCHEMA tables
【问题讨论】:
标签: sql stored-procedures parameters db2 optional-parameters