我正在尝试将查询结果自动保存到文本文件,而不是使用 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”包含许多导出的行。
最佳答案
\o
序列是一个 psql元命令。这意味着它是 psql
的一个特性。如果您想要此功能,则必须在您的客户端中实现它。不过这很容易。
关于PostgreSQL:将查询结果保存到文件并获取保存的行数,windows/odbc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14010974/