簡體   English   中英

Oracle:如何在Unix層上保存查詢結果

[英]Oracle: How to Save result of query on Unix layer

如何將查詢結果保存到Unix文件系統上。 如果可能的話,我需要分步進行。

我做了什么。 在Unix文件系統中創建了一個目錄。 在oracle中創建了一個目錄,指向Unix文件系統目錄。

試圖將結果假脫機到Unix文件系統,但是由於某些原因它無法正常工作。

希望有1個幫助。 在客戶端Windows XP上工作。 環境:oracle 11g和應用程序:適用於oracle 11的TOAD。

您可以使用外部表卸載。 這將以datapump格式創建查詢結果的轉儲文件(您可以使用impdp導入此文件)
為此,創建一個類型為ORACLE_DATAPUMP的外部表。

這是一個例子:

SQL> 
SQL> 
SQL> 
SQL> CREATE TABLE emp_ext
ORGANIZATION EXTERNAL
(
 TYPE ORACLE_DATAPUMP
 DEFAULT DIRECTORY EXPORT
LOCATION ( 'emp_ext.dmp' )
 )
 AS SELECT * FROM SCOTT.EMP;  

Table created.

SQL> select count(*) from emp_ext;

  COUNT(*)
----------
        18

SQL> !ls /export/home/oracle/export     
 EMP_EXT_13392.log  emp_ext.dmp

1號 在Unix文件系統中創建目錄(不要使用您的名字,否則將無法正常工作),然后創建chmod 777 <dir_path>

2在oracle中創建目錄

CREATE OR REPLACE DIRECTORY <dir_name> AS '<dir_path>';

現在進行測試

create or replace procedure  WRITEFILE is
       fh UTL_FILE.FILE_TYPE;                                                   
       dir VARCHAR2(30) := '<dir_name>';                                                        
       name VARCHAR2(30)  := 'test1';                                                       
    begin                                                                    

       fh := UTL_FILE.FOPEN(dir, name, 'w');                                    
       UTL_FILE.PUT_LINE(fh, 'bla bla');                                         
       UTL_FILE.FCLOSE(fh);
    end;

暫無
暫無

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

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