无法从Urban Code Deploy创建执行过程

时间:2018-06-28 11:03:25

标签: sql oracle plsql sqlplus urbancode

我尝试执行的以下脚本遇到了问题。在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

之后结束;

您能帮我/建议我,此脚本如何正确执行?

(Oracle 12.1)

1 个答案:

答案 0 :(得分:3)

您正在使用SQL-JDBC plugin for Urban Code Deploy.

根据to their documentation/troubleshooting

  

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

有一个单独的SQL*Plus plugin,您也许可以代替使用。