我有一个包含两列具有默认varchar值的表。此外,我有一个存储过程,它接收4个值,两个varchar值和两个日期。我想将两个输入varchar值与表中两列的默认值进行比较,即使没有将任何行插入表中也是如此。有可能这样做吗?
这不起作用,但是沿着这些方向发展。
create or replace
PROCEDURE TEST_PROC
(
TEST_NAME IN VARCHAR2
, TEST_VERSION IN VARCHAR2
, TEST_START IN DATE
, TEST_END IN DATE
) AS
BEGIN
if TEST_NAME = TABLE.COL_1.DEFAULT_VALUE
AND TEST_VERSION = TABLE.COL_2.DEFAULT_VALUE ...
答案 0 :(得分:1)
使用数据字典获取列的默认值。然后在过程中声明变量并比较输入。像这样,例如:
SELECT TABLE_NAME||'.'||COLUMN_NAME, DATA_DEFAULT
INTO tableVariable, defaultVariable
FROM ALL_TAB_COLUMNS
WHERE TABLE_NAME=:myTable
AND COLUMN_NAME=:myColumn
AND DATA_DEFAULT IS NOT NULL
您也可以将它用作光标,然后循环播放。