我有这个 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 字符串视为开始和以单引号结尾。
有没有办法解决这个问题?
谢谢
朱利奥