使用 Liquibase / DB2 执行复合 SQL



我正在尝试使用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所说,双引号字符串是标识符,而不是字符串文字,这可能是您收到错误的原因。

相关内容

  • 没有找到相关文章

最新更新