sqlldr 批量生成CTL檔案

2021-09-18 01:28:43 字數 1175 閱讀 4341

用sqlldr導進資料時,需要編寫ctl檔案,如果有多個資料檔案,我們手動去編寫ctl檔案,就很費事,那麼我們可以通過資料動態生成ctl檔案。

1、

----建立目錄

---建立目錄需要用管理員的許可權,用sys使用者

create or replace directory blob_file_dir as 'd:\ctl';--windows系統路徑

select * from dba_directories; ----檢視是否生成目錄成功

注:在系統的d盤下如果沒有生成資料夾ctl,需要手動建資料夾,否則 執行時會報錯。

---授權

grant read,write on directory blob_file_dir to gzj;--路徑授權,新增對路徑讀、寫許可權

grant execute on utl_file to gzj;--utl_file包授權,新增執行許可權

-----將ctl文字輸出成單個檔案

----利用游標

declare

vc_table_name varchar2(4000);

vc_filename utl_file.file_type;

vc_get_ctltext clob;

cursor cur_yx_ctltext is

select ctltable_name ,ctl_text from tb_yx_ctl;

begin

for i in cur_yx_ctltext loop

vc_table_name:='o_gmm_pms_gl_'||i.ctltable_name; ------檔名稱

vc_get_ctltext:=i.ctl_text; -------文字內容

---dbms_output.put_line(vc_table_name);

vc_filename:= utl_file.fopen('blob_file_dir', vc_table_name||'.ctl' , 'w'); ---開啟路徑,檔案寫進內容

utl_file.put_line(vc_filename,vc_get_ctltext);

utl_file.fclose(vc_filename);

end loop;

end ;

ctl 的寫法 SQLLDR的使用

dos 環境下使用sql loader命令 載入 使用其它資料庫的資料轉移工具 oracle 企業管理器中的資料載入功能 具體的技術實現 一 dos 環境下載入 1 首先,伺服器端的偵聽服務必須已經開啟。測試方法 dos 下輸入 2 然後使用 oracle 的 sqlldr 命令進行資料的匯入 前期...

sqlldr批量匯入資料夾下多個csv檔案

建立表的時候要建立在一般使用者下,不要建立在sys和sysytem使用者下,否則sqlldr匯入時提示許可權不夠 批量匯入,可以通過獲取資料夾下所有檔案的絕對路徑實現 echo off setlocal enabledelayedexpansion for f delims i in dir a s...

批量生成in資料檔案

生成in 資料 要取得 a,b 的隨機整數,使用 rand b a a 要取得 a,b 的隨機整數,使用 rand b a 1 a 要取得 a,b 的隨機整數,使用 rand b a a 1 通用公式 a rand n 其中的a是起始值,n是整數的範圍。要取得a到b之間的隨機整數,另一種表示 a i...