【问题标题】:How to fetch table header from oracle database into excel如何从oracle数据库中获取表头到excel中
【发布时间】: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


    【解决方案1】:

    移除SET PAGESIZE 0,它不会导致标题效果。

    没关系:

    SQL> select * From dept;
    
        DEPTNO DNAME                LOC
    ---------- -------------------- --------------------
            10 ACCOUNTING           NEW YORK
            20 RESEARCH             DALLAS
            30 SALES                CHICAGO
            40 OPERATIONS           BOSTON
    

    但是,当你 set pagesize 0 ... 没有标题时:

    SQL> set pagesize 0
    SQL> select * From dept;
            10 ACCOUNTING           NEW YORK
            20 RESEARCH             DALLAS
            30 SALES                CHICAGO
            40 OPERATIONS           BOSTON
    
    SQL>
    

    【讨论】:

    • 移除 set pagesize 0 条件会添加列标题,但还会在列名称后添加字符 _ _ _ _ _ _ _。我们可以摆脱这些吗?
    • 嗯,它不适合我......我会看看它,但我无法重现你在说什么。
    • 可能与sqlplus,powershell的版本有关,我使用的是“SQL*Plus: Release 11.2.0.2.0 Production”,powershell PSVersion 5.1。此外,我在删除 set pagesize 0 条件后添加了 excel 输出。
    猜你喜欢
    • 1970-01-01
    • 2018-12-18
    • 1970-01-01
    • 1970-01-01
    • 2013-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多