Oracle中的包声明DDL中的从属类型声明的Flyway错误

时间:2018-08-14 16:11:27

标签: oracle flyway

我想知道为什么flyway无法执行此程序包声明。我应该改变什么? 编辑:已解决。

CREATE OR REPLACE EDITIONABLE PACKAGE "POSITION_REPORTING"."POSREP_FLYWAY_TEST" AS 

 TYPE FLYWAY_REPORT_HEADER IS RECORD
 (
    VERSION_NUMBER  VARCHAR2(100),
    VERSION_NOTES   VARCHAR2(100)
 );

 TYPE FLYWAY_REPORT_HEADER_TAB IS TABLE OF FLYWAY_REPORT_HEADER;

END POSREP_FLYWAY_TEST;

代码确实可以从SQL-Developer执行,没有问题。 Flyway告诉我它无法执行第二种类型声明。这种类型取决于第一种类型,因此我的假设是缺少某种提交。我不知道在包声明中将其添加到何处。

有什么想法吗?
提前谢谢,
约翰

2 个答案:

答案 0 :(得分:1)

我会尝试添加分隔符/

CREATE OR REPLACE EDITIONABLE PACKAGE "POSITION_REPORTING"."POSREP_FLYWAY_TEST"
AS 
 TYPE FLYWAY_REPORT_HEADER IS RECORD
 (
    VERSION_NUMBER  VARCHAR2(100),
    VERSION_NOTES   VARCHAR2(100)
 );


TYPE FLYWAY_REPORT_HEADER_TAB IS TABLE OF FLYWAY_REPORT_HEADER;

END "POSREP_FLYWAY_TEST";
/

答案 1 :(得分:0)

在我们的设置中不接受关键字“ EDITIONABLE”。 可行:

CREATE OR REPLACE EDITIONABLE PACKAGE "POSITION_REPORTING"."POSREP_FLYWAY_TEST"
AS 
  TYPE FLYWAY_REPORT_HEADER IS RECORD
  (
    VERSION_NUMBER  VARCHAR2(100),
    VERSION_NOTES   VARCHAR2(100)
  );


  TYPE FLYWAY_REPORT_HEADER_TAB IS TABLE OF FLYWAY_REPORT_HEADER;

END "POSREP_FLYWAY_TEST";
/