oracle – 在存储过程中截断表

前端之家收集整理的这篇文章主要介绍了oracle – 在存储过程中截断表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我在Oracle shell中运行以下命令时,它运行正常
truncate table table_name

但是当我试图把它放在一个存储过程

CREATE OR REPLACE PROCEDURE test IS
BEGIN
    truncate table table_name;
END test;
/

它失败

ERROR line 3,col 14,ending_line 3,ending_col 18,Found 'table',Expecting:  @   ROW  or   (   or   .   or   ;   :=

为什么?

谢谢,
Klas Mellbourn

Oracle PL / sql中的所有DDL语句应在语句之前使用Execute Immediate。因此,您应该使用:
execute immediate 'truncate table schema.tablename';

猜你在找的Oracle相关文章