过程无法从城市代码部署创建执行



我在尝试执行以下脚本时遇到了问题。在SQLDeveloper或其他工具(如DataGrip(中,一切正常,因此在我的理解中,这是UCD问题。

...more inserts
insert into M_MIGRATION_CONTROL values ('PRODUCTREL', 'M_' || 'PRODUCTREL');
CREATE OR REPLACE PROCEDURE MIGRATE_DATA_BEFORE_DEPLOY IS
TABLE_NAME VARCHAR2(128);
MIGRATION_TABLE_NAME VARCHAR2(128);
CURSOR MIGRATION_CURSOR IS SELECT * FROM M_MIGRATION_CONTROL;
BEGIN
OPEN MIGRATION_CURSOR;
LOOP
FETCH MIGRATION_CURSOR INTO TABLE_NAME, MIGRATION_TABLE_NAME;
EXIT WHEN MIGRATION_CURSOR%NOTFOUND;
EXECUTE IMMEDIATE 'CREATE TABLE '||MIGRATION_TABLE_NAME||' AS SELECT * FROM '||TABLE_NAME||'';
END LOOP;
CLOSE MIGRATION_CURSOR;
END MIGRATE_DATA_BEFORE_DEPLOY;
/
insert into A_ACCEPTEDINCOMETYPEOPTION select * from M_A_ACCEPTEDINCOMETYPEOPTION;
insert into A_INSTALMENT select * from M_A_INSTALMENT;
...more inserts


有错误:

[sql] Failed to execute:  MIGRATION_TABLE_NAME VARCHAR2(128)
[sql] java.sql.SQLSyntaxErrorException: ORA-00900: invalid SQL statement
[sql] Failed to execute:  CURSOR MIGRATION_CURSOR IS SELECT * FROM M_MIGRATION_CONTROL


当我从 Oracle 打印过程正文时,我得到:

PROCEDURE MIGRATE_DATA_BEFORE_DEPLOY IS TABLE_NAME VARCHAR2(128)

所以我认为客户端在第一次;create procedure结束

你能帮我/建议我,这个脚本应该是什么样子才能正确执行吗?

(甲骨文 12.1(

您正在使用 SQL-JDBC 插件进行 Urban Code Deploy。

根据他们的文档/故障排除:

SQL-JDBC 插件不支持部署存储过程。

有一个单独的SQL*Plus插件,你可以使用它。

最新更新