数据仓库服务 GAUSSDB(DWS)-Oracle SQL迁移:Oracle PACKAGE迁移注意事项

时间:2024-12-10 11:28:51

Oracle PACKAGE迁移注意事项

1. 应将包规范(即包头)与包体分置于不同文件、相同输入路径中进行迁移。

2. 应先使用Bulk模式迁移普通DDL语句(包含PACKAGE脚本中引用到的全部表结构信息),以在config/create-types-UDT.properties文件中形成字典信息。之后再使用Blogic模式迁移包规范(即包头)与包体。具体解释如下:

在部分Oracle PACKAGE定义包规范时,使用了"tbName.colName%TYPE"语法以基于其他表对象声明自定义的记录类型。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
    例如
    CREATE OR REPLACE PACKAGE p_emp
    AS
        --定义RECORD类型
        TYPE re_emp IS RECORD(
            rno emp.empno%TYPE,
            rname emp.empname%TYPE
        );

    END;

GaussDB 暂不支持通过"tbName.colName%TYPE"语法在CREATE TYPE命令中指定列数据类型,DSC工具在迁移时需要构建含有诸如emp表信息的数据库上下文环境。由此需要先使用DSC工具迁移所有的建表脚本(即使用Bulk模式迁移普通DDL语句),DSC内部会自动生成相应的数据字典。当含有各种表信息的上下文环境构建完成后,可以使用Blogic模式迁移 Oracle PACKAGE,此时re_emp记录类型会根据emp表的列类型完成迁移。

1
2
3
4
5
    期望输出
    CREATE TYPE p_emp.re_emp AS (
        rno NUMBER(4),
        rname VARCHAR2(10)
    );
support.huaweicloud.com/tg-dws/dws_16_0215.html