我创建了以下函数名称计时:
create or replace function timing
( dat in date, bran in varchar2, audi in number )
return number
as
time number;
begin
select s_end into time
from checking
where s_date = dat
and branch = bran
and a_id = audi;
return time;
end;
/
Function created.
但在使用此函数添加check约束时,im出现以下错误:
alter table checking add constraint chk check(s_start>timing(s_date,branch,a_id))
*
ERROR at line 1:
ORA-00904: "TIMING": invalid identifier
我的表格如下:
SQL> desc checking
Name Null? Type
----------------------------------------- -------- -------------
S_ID NOT NULL NUMBER
M_ID NUMBER
A_ID NUMBER
S_DATE DATE
S_START NUMBER
S_END NUMBER
BRANCH VARCHAR2(30)
发布于 2017-04-16 05:53:39
检查约束不能引用用户定义的函数。请参阅Oracle SQL Reference手册,然后在浏览器中查找“检查约束的限制”。
但是您应该能够修改原始查询和函数,以添加/包括作为谓词或预检查的函数。
https://stackoverflow.com/questions/43431162
复制相似问题