ORA-06550 & PLS-00103:遇到符号“drop”[重复]

Posted

技术标签:

【中文标题】ORA-06550 & PLS-00103:遇到符号“drop”[重复]【英文标题】:ORA-06550 & PLS-00103 : Encountered the symbol "drop" [duplicate] 【发布时间】: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。 【参考方案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 并没有放弃视图!当我复制引号中的内容并使用添加的分号运行它时,它会丢弃视图!但是动态运行它不会。

以上是关于ORA-06550 & PLS-00103:遇到符号“drop”[重复]的主要内容,如果未能解决你的问题,请参考以下文章

ORA-06550 和 PLS-00103

ORA-06550、PLS-00103、ORA-06512 函数

无法解决 ora-06550 pls-00103 查询中的错误

ORA-06550 第 10 行,第 41 列:PLS-00103:在预期以下情况之一时遇到符号“,”:

ORA-06550:第5行,第16列:PLS-00103:当遇到以下情况之一时遇到符号“SELECT”:[重复]

PLS-00103:遇到符号“COLUMNS”