使用Liquibase / DB2执行Compound SQL

时间:2014-11-25 15:28:30

标签: plsql db2 liquibase

我试图用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

非常感谢帮助。

1 个答案:

答案 0 :(得分:0)

如果您查看DB2 Information Center,则会收到错误-206,表示&#34; name 在使用它的上下文中无效。 &#34;

在这种情况下,name对应于您获得的错误中的SQLERRMC字段,即pl。正如@a_horse_with_no_name所说,双引号字符串是标识符,而不是字符串文字,这可能是你收到错误的原因。