與Oracle類似,DB2支持存儲過程中的參數默認值。甲骨文語法:使用SYSCAT表發現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
太棒了!我不知道爲什麼我忽略了'SYSCAT.ROUTINEPARMS' – 2012-03-23 13:48:04