我在Powershell 2.0中的SQLPLUS中运行一些查询
我想使用Export-CSV将表格的内容输出到csv。 它看起来像这样。
$query = "set hea off`n"
$date1 = "ADD_MONTHS(TRUNC(SYSDATE, 'MM'),-3))"
$query += "DROP TABLE CHRIS_TEMP;CREATE TABLE CHRIS_TEMP AS SELECT FIELDS FROM TABLES;
exit;"
$sqlexec = ($query | sqlplus -s login/pass@db)
$sqlexec
$export= ("set wrap off
set linesize 30000
select * from CHRIS_TEMP;" | sqlplus -s login/pass@db )
$export | Export-Csv c:\users\*****\test.csv -notypeinformation
但输出只是一个字段。 有人可以帮忙解决这个问题吗?我不想在sqlplus中假脱机。
答案 0 :(得分:1)
现在无法测试,但尝试将$ export连接到Select-Object:
$export |
Select-Object Column1, Column2, etc |
Export-Csv c:\users\*****\test.csv -notypeinformation
答案 1 :(得分:1)
问题在于没有分隔符Powershell不知道您的数据是如何构建的。只要添加逗号,它就会变得非常容易处理。
否则,您将返回尝试解析数据,因为空白列与尾随空格不会有太大差异。
使用SQL +的直接连接将比使用SQL plus更灵活。您的数据将存储在结构化记录中,您可以按照自己的意愿进行操作。
当我执行在powershell脚本中使用SQLPlus时,我使用文件片段以编程方式编写SQL脚本以简化代码,并将其发送到sqlplus,而不是将SQL本身传递给SQLPLUS。这使得添加这样的命令变得容易 colsep, 和其他格式化命令。