You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle PL/SQL中IF条件异常:传入参数却始终执行ELSE分支

问题:SQL Macro函数参数判空异常

我在Oracle PL/SQL中创建了带SQL Macro的函数traudit04011,调用时传入'service_date'参数,但IF判断XPARAM是否为NULL时始终执行ELSE分支返回"No",哪怕把参数赋值给本地变量也没解决问题。因为sql_statement需要动态生成,必须通过这个函数返回表结构,现在完全卡壳,求解决方法。

代码示例

CREATE OR REPLACE FUNCTION traudit04011(xparam VARCHAR2) 
RETURN VARCHAR2 SQL_MACRO(SCALAR) IS
  l_param VARCHAR2(100) := xparam;
BEGIN
  IF l_param IS NOT NULL THEN
    RETURN 'SELECT ''Yes'' AS result FROM dual';
  ELSE
    RETURN 'SELECT ''No'' AS result FROM dual';
  END IF;
END;
/

-- 调用语句
SELECT traudit04011('service_date') FROM dual;

内容的提问来源于stack exchange,提问作者sam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 18:02:03