我正在尝试使用Liquibase执行以下代码。
BEGIN ATOMIC
DECLARE I INT DEFAULT 6;
WHILE I <= 10 DO
INSERT INTO LQBTEST.department (id,name,active) VALUES (I,"pl",1);
SET I = I + 1;
END WHILE;
END@
我试过了
<sql endDelimiter="@" splitStatements="false"></sql>
这导致 liquibase 告诉我我的标记是错误的然后我尝试了:
<sqlFile endDelimiter="@"
path="proc.sql"
relativeToChangelogFile="true"
splitStatements="false"
stripComments="true"/>
结果在:
Unexpected error running Liquibase: com.ibm.db2.jcc.am.SqlSyntaxErrorExc
DB2 SQL Error: SQLCODE=-206, SQLSTATE=42703, SQLERRMC=pl, DRIVER=3.63.75
非常感谢帮助。
如果您查看 DB2 信息中心,您得到的错误 -206
表示"名称在使用它的上下文中无效"。
在这种情况下,name
对应于您收到的错误中的SQLERRMC
字段,即 pl
.正如@a_horse_with_no_name所说,双引号字符串是标识符,而不是字符串文字,这可能是您收到错误的原因。