[英]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.