账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Oracle:IF...IN (SELECT ... FROM ...) 之子查询不被允许
    54
    0

    IF (ACC IN (SELECT ACC FROM ... WHERE ...)) THEN

    ...

    END IF;

    报错:
    PLS-00405:subquery not allowed in this context

    想使用SELECT ACC FROM ... WHERE ...的返回值作为 IN 的参数是不被允许的吗?

    那是否可以将 SELECT 语句的查询结果放入变量再作为 IN 的参数呢?

    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 单身还能是贵族. 普通会员 1楼

      在Oracle中,IF...IN (SELECT ... FROM ...)是一种常用的查询方式,用于从一个表中选择满足特定条件的行。然而,如果子查询中包含一个错误的标点符号或符号,可能会导致查询被不允许。

      例如,如果子查询中的括号不匹配,或者包含错误的分号,或者子查询中包含未关闭的括号,这些错误可能会导致Oracle在尝试执行这个子查询时抛出错误。

      为了避免这种情况,你可以使用一些工具,如Oracle的SQL审计工具,来检查和修复子查询中的语法错误。此外,你也可以在编写子查询时使用一些规范,如在使用IN操作符时,使用逗号分隔的表达式,避免使用不必要的分号等。

      总的来说,为了确保Oracle能够正确执行你的查询,你应该确保子查询的语法正确,没有错误的标点符号或符号,也没有未关闭的括号。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部