PostgreSQL:将查询结果保存到文件并获取已保存行的数量,windows / odbc

时间:2012-12-23 12:34:23

标签: postgresql

我正在尝试将查询结果自动保存到文本文件,而不使用ODBC窗口连接在VB.NET中循环读取器对象。 但是我找不到了!

这就是我到目前为止的尝试:

mCmd = New OdbcCommand( _
"SELECT my_id FROM " & myTable & " WHERE myflag='1' \o 'c:/a_result.txt'", mCon)
n = mCmd.ExecuteNonQuery

但那根本不起作用。 请建议或编写示例如何获得它。

第二...... 理想情况下,通过将结果保存到文本中,我会在变量“n”中获得一些已保存的行。 至于现在我只得到0或1取决于查询是否成功。

编辑:
经过一番战斗,我找到了一种方法,或多或少取得了成功。
要txt文件:

mCmd = New OdbcCommand( _
"COPY (SELECT my_id FROM " & myTable & " WHERE myFlag='1' " & _
"ORDER BY my_id) TO 'c:/a_result.txt' DELIMITER AS '|'", mCon)

到csv文件:

mCmd = New OdbcCommand( _
"COPY (SELECT my_id FROM " & myTable & " WHERE myFlag='1' " & _
"ORDER BY my_id) TO 'c:/a_result.csv' WITH CSV", mCon)

这有效,但我无法转义引号和'\'所以我在输出文件中有双重符号 如果有经验的人知道如何实现转义和更改csv文件的分隔符,我很乐意在给定的示例中看到它。

查询后的变量'n'包含许多导出的行。

1 个答案:

答案 0 :(得分:2)

\o序列是psql元命令。这意味着它是psql的一个特征。如果你想要这个功能,你必须在你的客户端实现它。这很容易。