Oracle

如何在 PL/SQL Developer (Oracle) 中自動導出 CSV 查詢?

  • November 18, 2021

我不是 Oracle 或 PL/SQL Developer 的專家(我主要使用和管理 mySQL 和 MS SQL Server)。

我不是任何類型的管理員,但可以通過 PL/SQL Developer 讀取 Oracle 中的許多表。

我需要能夠安排以 CSV 格式自動(例如,每天)導出幾個表(嗯,查詢)。無論是我的本地電腦、網路、電子郵件——任何東西。

有誰知道這可能是如何實現的?

一種選擇(在 MS Windows 上)是

  • 創建將數據假離線到文件中的 SQL 文件
  • 創建呼叫該 SQL 腳本的 BAT 腳本
  • 在任務計劃程序中安排每日作業

先決條件是安裝 SQLPlus,如果您還沒有的話。PL/SQL Developer 是一個 GUI 工具;SQLPlus 是一個命令行工具。它可以通過 Oracle客戶端軟體安裝,可從 Oracle 技術網的下載部分下載。

基於 Scott 架構的 SQL 文件可能如下所示:

set linesize 100
set pagesize 100
set colsep ';'

spool dept.txt
select * from dept;
spool off

spool emp.txt
select * from emp;
spool off;

exit

BAT文件:

sqlplus -s -l scott/tiger@xe @daily.sql

任務計劃程序:創建一個將在所需時間執行 BAT 腳本的作業;使其在您有權訪問的目錄中執行(例如 C:\Temp 或類似目錄)。

生成的 DEPT.TXT 文件如下所示:

   DEPTNO;DNAME         ;LOC                                                                       
----------;--------------;-------------                                                             
       10;ACCOUNTING    ;NEW YORK                                                                  
       20;RESEARCH      ;DALLAS                                                                    
       30;SALES         ;CHICAGO                                                                   
       40;OPERATIONS    ;BOSTON                                                                    

SQL 文件中的 SET 命令列表非常簡單 - 您可能需要研究許多選項。例如,這是一個包含更多選項(包括列格式)的更長列表:

set termout off 
set trimspool on 
set echo off 
set verify off 
set autoprint off 
set serveroutput off 
set arraysize 1000 
set pagesize 0
set linesize 100
set long 10000
set numwidth 10
set feedback off
set colsep ';'
col empno format 99999
col ename format a10
col sal format 999G990

您必須嘗試這些(可能還有更多)才能找到適合您需求的套裝。

引用自:https://dba.stackexchange.com/questions/222209