我无法动态执行具有into子句的sql语句

时间:2014-12-12 08:46:19

标签: sql oracle oracle11g

我正在使用EXECUTE IMMEDIATE语句在oracle中动态执行此sql语句。但是当我这样做时,我收到错误'缺少关键字'。我已将RULECOUNT变量声明为NUMBER。当我删除I​​NTO语句时,sql语句似乎正确执行。

SELECT  COUNT(DISTINCT RULE_ID) INTO RULECOUNT FROM(
                        SELECT      
                            distinct a.RULE_ID, Rule_Name, Applicability,
                            Rule_Type, KPI_NAME, BT, DT, Authorised_User,
                            Rule_Date_of_Creation 
                        from vw_rule_detail_search a WHERE a.Applicability = 'No' order by a.BT 
desc);

我不知道发生了什么,oracle中的任何人都能帮助我找到我所缺少的东西。

1 个答案:

答案 0 :(得分:2)

我找到了解决问题的方法。在使用execute immediate执行时,我不应该在select语句中使用INTO语句。

我应该像这样使用

EXECUTE IMMEDIATE statement INTO RuleCount;