【问题标题】:ORA-06550 & PLS-00103 : Encountered the symbol "drop" [duplicate]ORA-06550 & PLS-00103:遇到符号“drop”[重复]
【发布时间】:2016-01-26 18:16:20
【问题描述】:

这是怎么回事?

DECLARE
  V_COUNT NUMBER(10) := 0;
BEGIN

  SELECT COUNT(*) INTO V_COUNT FROM USER_VIEWS WHERE VIEW_NAME = 'DBO$EVT_APP';

  IF V_COUNT > 0 THEN
    DROP VIEW DBO$EVT_APP;
  END IF;

END;

我收到以下错误:

Error report:
ORA-06550: line 9, column 5:
PLS-00103: Encountered the symbol "DROP" when expecting one of the following: ...

对我来说,这看起来像是有效的 SQL。这是我粘贴的确切代码。

【问题讨论】:

  • PL/SQL中不能直接使用DDL,需要使用动态SQL。

标签: oracle plsql ddl oracle12c


【解决方案1】:
DECLARE
  V_COUNT NUMBER(10) := 0;

    BEGIN

      SELECT COUNT(*) INTO V_COUNT FROM USER_VIEWS WHERE VIEW_NAME = 'DBO$EVT_APP';

      IF V_COUNT > 0 THEN
        execute immediate 'DROP VIEW DBO$EVT_APP';
      END IF;

    END;

【讨论】:

  • 谢谢!动态 sql 并没有放弃视图!当我复制引号中的内容并使用添加的分号运行它时,它会丢弃视图!但是动态运行它不会。
猜你喜欢
  • 2018-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-03
  • 1970-01-01
  • 2018-01-23
  • 2016-11-05
相关资源
最近更新 更多