文档首页 > > 工具指南> Migration Tool SQL语法迁移工具> Oracle语法迁移> PL/SQL> TRUNCATE TABLE语句

TRUNCATE TABLE语句

分享
更新时间: 2019/08/09 GMT+08:00

Oracle中的TRUNCATE TABLE语句用于从表中删除所有记录,与DELETE语句功能相同,但不含WHERE子句。执行截断操作后,表将成为空表。Migration Tool仅可迁移含有静态表名称的TRUNCATE TABLE语句,不支持迁移含有动态表名称的TRUNCATE TABLE语句。

说明:

该工具不支持迁移含有动态表名称的TRUNCATE TABLE语句。

例如:l_table :='truncate table ' || itable_name

在此示例中,itable_name表示动态表名称,不受Migration Tool支持。不支持的语句将被原样复制到已迁移的脚本中。

输入:含有Execute Immediate的TRUNCATE TABLE

CREATE OR REPLACE PROCEDURE schema1.proc1 
AS
BEGIN
    EXECUTE IMMEDIATE 'TRUNCATE TABLE QUERY_TABLE';
End proc1;
/

输出

CREATE
     OR REPLACE PROCEDURE schema1.proc1 AS BEGIN
          EXECUTE IMMEDIATE 'TRUNCATE TABLE schema1.QUERY_TABLE' ;
     end ;
/

输入:过程中使用TRUNCATE TABLE

说明:

Migration tool不会为动态PL/SQL语句添加模式名称。

CREATE
     OR REPLACE PROCEDURE schemName.sp_dd_table ( itable_name VARCHAR2 ) IS l_table VARCHAR2 ( 255 ) ;
     BEGIN
          l_table :='truncate table ' || itable_name ;
          ---- dbms_utility.exec_ddl_statement(l_table);
dbms_output.put_line ( itable_name || ' ' || 'Truncated' ) ;
END sp_dd_table ;
/

输出

CREATE
     OR REPLACE PROCEDURE schemName.sp_dd_table ( itable_name VARCHAR2 ) IS l_table VARCHAR2 ( 255 ) ;
     BEGIN
          l_table :='truncate table ' || itable_name ;
/* 
dbms_utility.exec_ddl_statement(l_table); */
dbms_output.put_line ( itable_name || ' ' || 'Truncated' ) ;
end ;
/
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区