我试图用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
非常感谢帮助。
答案 0 :(得分:0)
如果您查看DB2 Information Center,则会收到错误-206
,表示&#34; name 在使用它的上下文中无效。 &#34;
在这种情况下,name
对应于您获得的错误中的SQLERRMC
字段,即pl
。正如@a_horse_with_no_name所说,双引号字符串是标识符,而不是字符串文字,这可能是你收到错误的原因。