Попытка вывести экспорт разработчика SQL в Excel с помощью командного файла - PullRequest
0 голосов
/ 13 февраля 2019

Я новичок в выполнении задач через командные файлы.У меня есть пакет и сценарий SQL, который выводит в CSV, который работает.Но я хочу, чтобы вывод был в Excel.Я отредактировал эти сценарии, чтобы они могли выводиться в Excel.Процесс создает файл Excel.Однако, когда я пытаюсь открыть файл Excel, я получаю сообщение об ошибке, что файл не был найден.Что я делаю не так?

Это скрипт SQL.Допустим, это хранится в file.sql:

set verify off
set define off
set termout off
set heading off
set pages 50000
set feedback off
set newpage none
set trimspool on
set linesize 1000
set decimal 


whenever sqlerror exit


spool C:\pathname\filename.xlsx append

select
'' 
||COLUMN_1||
';'||COLUMN_2||
';'||COLUMN_3||
''
FROM blahblah.tablename;

spool off
exit

Это пакетный скрипт:

echo off

if exist C:\pathname\filename.xlsx del C:\pathname\filename.xlsx

:: creating a header

echo COLUMN_1;COLUMN_2;COLUMN_3;

sqlplus blahblah/password@databasename @C:\pathname\file.sql

Я просто изменил расширение файла .csv в сценариях наРасширение .xlsx, но, очевидно, этого недостаточно, потому что я не могу открыть файл.

Кроме того, как мне просто выбрать все (выбрать *) с помощью этого процесса?Я тоже пытался это изменить, но у меня просто не осталось никаких данных (даже файла CSV)

1 Ответ

0 голосов
/ 13 февраля 2019

В Excel VBA:

 Sub ImportData()
 Dim Conn as New Connection
 Conn.Connectionstring = ' get details from here https://www.connectionstrings.com/sql-server/   depending on version of sql you are using
 conn.open
 dim rs as new recordset
 rs.open "Select * from BlahBlahTablename",conn
 if not rs.eof then ' if we have data
     range("a2").copyfromrecordset rs
 end if
 Dim f as field
 dim r as range
 for each f in rs.fields
   r = f.name
   set r = r.offset(0,1)
  next f
 rs.close
 set rs = nothing
 conn.close
 End Sub

Предполагается ссылка на ado в excel

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...