0

我有这个 SQL 脚本:

Insert into  DB_TABLE1 (N, B) values ('30','66');
Insert into  DB_EXECUTION (COMMAND)
VALUES ('/* Script generated at 20.04.2006 12:38:44 */


/* error_permissible = 955*/
Create Table map_encodekey
( privatekey VARCHAR2(30)  NOT NULL
);

/* error_permissible = 2260*/
Alter Table map_encodekey
  Add Constraint map_encodekey_pk
  Primary Key
   (privatekey);

commit;   

');

此脚本由 Liquibase 执行,但会引发此错误

...

引起:java.sql.SQLSyntaxErrorException:ORA-01756:引用的字符串未正确终止

...

问题是 Liquibase 在找到 ';' 时会拆分第二个插入语句 在DB_EXECUTION.COMMAND字段的引用字符串中;事实上,Liquibase 不会将 SQL 语句解释为 SQL,而是将它们视为普通字符串。

这是一个问题,因为我必须以某种方式拆分语句,因为我在同一个脚本中有多个插入语句(所以splitStatements选项对我来说不是一个选项)同时我必须告诉 Liquibase 将 SQL 字符串视为开始和以单引号结尾。

有没有办法解决这个问题?

谢谢

朱利奥

4

0 回答 0