Как и 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: