返回布尔值的 PL SQL 函数调用会出现错误

问题描述 投票:0回答:1

创建或替换函数 check_func_s ( 数值值 ) 返回布尔值 开始 如果 val 不为空则 返回真; 万一; 结尾; /

选择 检查_功能_S(1) 从 双;

它给出了错误

ORA-00902: 无效的数据类型 00902. 00000 - “无效的数据类型” *原因:
*行动: 错误行:24 列:5

请建议如何使其发挥作用

选择 检查_功能_S(1) 从 双;

function plsql
1个回答
0
投票

布尔值只能在PL/SQL层使用,不能在SQL层使用。 因此,如果您希望此函数使用“select from Dual”语句返回值,那么您将需要重新定义该函数以返回 varchar2 并返回值“true”或“false”。 所以在你的情况下

CREATE OR REPLACE FUNCTION check_func_s (
    val IN NUMBER
) RETURN VARCHAR2 IS
BEGIN
    IF val IS NOT NULL THEN
        RETURN 'True';
    ELSE RETURN 'False';
    END IF;
END;
© www.soinside.com 2019 - 2024. All rights reserved.