Как получить заголовок таблицы из базы данных Oracle в Excel - PullRequest
0 голосов
/ 07 марта 2019

Я пытаюсь извлечь данные из таблицы базы данных оракула в таблицу Excel.Ниже приведен код, написанный на powershell.

Последовательность действий связана с подключением к базе данных, буферизацией данных в переменную и передачей их в Excel.Проблема в том, что я не могу получить заголовок столбца из таблицы базы данных.Я пробовал различные комбинации наборов операторов, но ни одна из них мне не подходит.БД - 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]
    }

}

enter image description here

С удаленным set pagesize 0 ниже вывод, который я получаю в Excel.

enter image description here

1 Ответ

0 голосов
/ 07 марта 2019

Удалить 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...