我正在使用EXECUTE IMMEDIATE语句在oracle中动态执行此sql语句。但是当我这样做时,我收到错误'缺少关键字'。我已将RULECOUNT变量声明为NUMBER。当我删除INTO语句时,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中的任何人都能帮助我找到我所缺少的东西。
答案 0 :(得分:2)
我找到了解决问题的方法。在使用execute immediate执行时,我不应该在select语句中使用INTO语句。
我应该像这样使用
EXECUTE IMMEDIATE statement INTO RuleCount;