簡體   English   中英

嘗試通過運行批處理文件將SQL Developer導出到Excel

[英]Attempting to output a SQL developer export to Excel by running a batch file

我是剛開始通過批處理文件運行任務。 我有一個批處理和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文件)

在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

這假設在Excel中引用了ado

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM