【发布时间】:2019-07-28 21:35:52
【问题描述】:
我正在尝试从 oracle 数据库表中获取数据到 Excel 工作表。 下面是用powershell编写的代码。
活动的顺序是连接到数据库,将数据假脱机到一个变量中,然后将其推送到 excel 中。 问题是我无法从 db 表中获取 column header。我尝试了各种 set 语句的组合,但似乎没有一个对我有用。 db 是 Oracle 11g Express Edition。
$sqlQuery=@"
set heading on
set colsep '|'
set pagesize 0
set feedback off
select * From countries
where rownum<4;
"@
$output=$sqlQuery |sqlplus -silent hr/hr@localhost:1521/xe
$rows =$output.Length
$cols = $output[0].Split('|').Length
$excel = New-Object -ComObject Excel.Application
$excel.Visible =$true
$excel.Workbooks.Add()
$workbook=$excel.ActiveWorkbook
$worksheet=$workbook.Worksheets.Item(1)
for($i=0;$i -lt $rows;$i++) {
$rowdata = $output[$i].split('|')
for($j=0;$j -lt $cols;$j++) {
$worksheet.Cells.Item($i+1,$j+1)=$rowdata[$j]
}
}
删除set pagesize 0后,下面是我在excel中得到的输出。
【问题讨论】:
标签: excel oracle powershell oracle11g sqlplus