2

为什么execute immediate 'truncate table trade_economics';在 sqlplus 脚本中会出现以下错误?

 BEGIN immediate 'truncate table trade_economics'; END;
                    *
    ERROR at line 1:
    ORA-06550: line 1, column 17:
    PLS-00103: Encountered the symbol "truncate table trade_economics" when
    expecting one of the following:
    := . ( @ % ;
    The symbol ":=" was substituted for "truncate table trade_economics" to
    continue.`
4

3 回答 3

5

您需要先添加execute才能immediate使其正常工作。

就像是:

begin
    execute immediate 'truncate table foo';
end;
/
于 2012-11-05T11:15:59.430 回答
0

TRUNCATE 是 DDL(数据定义语言)。您不能从 PL/SQL 中执行 DDL。也就是说,您不能直接但可以通过动态 SQL。

所以

使用这个:删除

于 2014-04-25T10:04:52.453 回答
0

这个执行可以包含在一个过程中

EXECUTE IMMEDIATE ('truncate table name');
--next--
INSERT
    / * + append * /
    INTO table ..
于 2018-04-18T12:45:43.377 回答