我正在使用postgresql来托管我的数据库。在我的数据库中,我有一个表格xyz,其结构如下所示
id content folder
1 hello Inbox
2 hi Sent
我想使用我的java程序将此表导出为CSV。代码段位于
之下Connection connection2 = new ServerDBConnect().getConnection();
PreparedStatement statement = connection2.prepareStatement("copy (SELECT * FROM xyz WHERE folder=? ) to 'C:/export.csv' delimiter ','");
statement.setString(1, FOLDER_SELECTED); //Here, FOLDER_SELECTED=Inbox
statement.execute();
当我执行此代码时,我正在SQLException
说
ERROR: there is no parameter $1
如果我执行没有指定文件夹("copy (SELECT * FROM xyz) to 'C:/export.csv' delimiter ','")
)的代码,代码就可以正常工作。
我在这里做错了什么?怎么解决这个问题?
注意:如果我直接在Postgresql SQL控制台中执行查询(copy (SELECT * FROM xyz WHERE folder='Inbox' ORDER BY time) to 'G:/export.csv' delimiter ','
),我将获得所需的输出。
请帮忙
答案 0 :(得分:2)
阿
我终于找到了答案。
查询中的小变化给了我想要的结果
该查询假设是这样的
Connection connection2 = new ServerDBConnect().getConnection();
PreparedStatement statement = connection2.prepareStatement("copy (SELECT * FROM xyz WHERE folder='" + FOLDER_SELECTED + "' ) to 'C:/export.csv' delimiter ','");
这让我发疯,但终于完成了: - )