用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...