在更新查询中动态设置模式名称和表名称

时间:2013-02-12 12:07:07

标签: sql db2 prepared-statement

我有一个更新查询,如下所示:

UPDATE SCHEMA_NAME.TABLE_NAME SET COLUMN_NAME = VALUE;

我在准备好的语句setter中将以下查询作为String传递:

UPDATE ?.? SET ? = ?

在我准备好的语句setter java类中,我设置的值如下:

ps.setString(1, "mySchema");
ps.setString(2, "myTable");
ps.setString(3, "myColumn");
ps.setString(4, "myValue");

然而,在运行准备上述查询并运行它的java程序时,我收到以下错误:

DB2 SQL error: SQLCODE: -104, SQLSTATE: 42601

如何以我上面描述的方式动态创建查询?

1 个答案:

答案 0 :(得分:1)

您无法使用参数化(即?)来设置架构或表名称。相反,您只需要在准备语句之前将正确的表插入到Java中的字符串中。