Проблема с экспортом таблицы portgresql в CSV в JDBC - PullRequest
1 голос
/ 02 марта 2012

Я использую postgresql для размещения своей базы данных. В моей базе данных есть таблица с именем xyz, структура которой показана ниже

id    content    folder
1     hello      Inbox
2     hi         Sent

Я хочу экспортировать эту таблицу в CSV, используя мою Java-программу. Фрагмент кода ниже

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 ','")), код работает нормально.

Что я здесь не так делаю? Как решить эту проблему?

Примечание. Если я выполню запрос (copy (SELECT * FROM xyz WHERE folder='Inbox' ORDER BY time) to 'G:/export.csv' delimiter ',') непосредственно в консоли Postgresql SQL, я получу желаемый результат.

Пожалуйста, помогите

1 Ответ

2 голосов
/ 05 марта 2012

А

Я наконец-то нашел ответ сам.

Небольшое изменение в запросе дало мне желаемый результат

Предполагается, что запрос похож на этот

Connection connection2  = new ServerDBConnect().getConnection();
PreparedStatement statement = connection2.prepareStatement("copy (SELECT * FROM xyz WHERE folder='" + FOLDER_SELECTED + "' ) to 'C:/export.csv' delimiter ','");

Это сводило меня с ума, но в конце концов я сделал: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...