当我尝试运行此代码时,出现错误 pls-00405:
BEGIN
IF :P10_KAART_CODE IN (SELECT KAART_CODE FROM CADEAUKAART) THEN
RETURN TRUE;
ELSE
RETURN FALSE;
END IF;
END;
有一些类似的问题,但找不到这个简单代码的解决方案。有没有另一种写法而不会遇到错误?
最佳答案
PL/SQL 在 if
中不支持嵌入式 SQL声明。所以你需要像这样重写你的代码:
create or replace function validate_kaart_code
(P10_KAART_CODE in CADEAUKAART.KAART_CODE%type)
return boolean
is
rv boolean;
l_code CADEAUKAART.KAART_CODE%type;
BEGIN
begin
SELECT KAART_CODE into l_code
FROM CADEAUKAART
where KAART_CODE =:P10_KAART_CODE
and rownum = 1 -- only necessary if KAART_CODE is not unique
;
rv := TRUE;
exception
when no_data_found then
rv := FALSE;
end;
RETURN rv;
END;
我试图从您发布的片段中重建您的整个功能。如果这不是您想要的并且您无法将其转换为适合您的需要,请提供更多详细信息。
关于sql - PLSQL:在 if 语句中使用子查询错误 PLS-00405,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52346437/