Как и Oracle, DB2 поддерживает параметры по умолчанию в хранимых процедурах.Синтаксис Oracle:
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:
Обнаружение параметров процедуры SQL Server по умолчанию с использованием таблиц SYS или INFORMATION_SCHEMA