輸入表名後自動生成sqlldr控制檔案儲存過程
自己寫的一個儲存過程輸入表名生成對應表的控制檔案
CREATE OR REPLACE PROCEDURE P_generate_sqlldr_null(p_table_name IN VARCHAR2) AS
l_curr_line LONG;
l_table_name user_tables.table_name%TYPE;
BEGIN
select table_name
into l_table_name
from user_tables
where table_name =upper(p_table_name);
l_curr_line := '
LOAD DATA
INFILE '''||lower(l_table_name)||'.txt'||''' '||'"'||'str X'||'''7C0D0A'''||'"'||'
INTO TABLE ';
l_curr_line := l_curr_line||l_table_name||'
FIELDS TERMINATED BY '||''''||'|\t'||''''||'
TRAILING NULLCOLS
(';
for rec in ( select table_name,column_name,column_id,nullable
from user_tab_columns
where table_name =upper(p_table_name)
order by column_id) loop
if rec.column_id = 1 THEN
IF rec.nullable = 'Y' THEN
l_curr_line := l_curr_line||'
'||rpad(rec.column_name||' NULLIF '||rec.column_name||'='||'''\\N''',80);
ELSE
l_curr_line := l_curr_line||'
'||rpad(rec.column_name,80);
END IF;
ELSE
IF rec.nullable = 'Y' THEN
l_curr_line := l_curr_line||'
,'||rpad(rec.column_name||' NULLIF '||rec.column_name||'='||'''\\N''',80);
ELSE
l_curr_line := l_curr_line||'
,'||rpad(rec.column_name,80);
END IF;
end if;
end loop;
l_curr_line := l_curr_line||')';
sp_write_log(l_curr_line,l_table_name||'.ctl');
END P_generate_sqlldr_null;
/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7199859/viewspace-552/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 通用自動為某表某欄位生成複製名稱的儲存過程儲存過程
- Oracle 通過儲存過程來生成CSV檔案Oracle儲存過程
- 自動生成對錶進行插入和更新的儲存過程的儲存過程 (轉)儲存過程
- 注入mssql後使用儲存過程讀寫任意檔案SQL儲存過程
- 用儲存過程動態建立表儲存過程
- Oracle帶輸入輸出引數的儲存過程Oracle儲存過程
- oracle procedure 儲存過程輸入及輸出in out示例Oracle儲存過程
- T-SQL 儲存過程建立 PDF 格式檔案(報表)SQL儲存過程
- 基於儲存過程的百萬級測試資料自動生成儲存過程
- 自動生成sqlldr 控制檔案的指令碼(Script To Generate SQL*Loader Control File)SQL指令碼
- 自動編號的儲存過程 (轉)儲存過程
- 用 System.Reflection.Emit 來自動生成呼叫儲存過程的實現MIT儲存過程
- 把自編儲存過程設定為系統儲存過程儲存過程
- 動態儲存過程儲存過程
- oracle父儲存過程呼叫子儲存過程procedure與輸出引數Oracle儲存過程
- 將圖片檔案儲存到Oracle的儲存過程Oracle儲存過程
- 儲存過程批量生成awr指令碼儲存過程指令碼
- Sql儲存過程分頁--臨時表儲存SQL儲存過程
- oracle sqlldr控制檔案模板OracleSQL
- R12報表輸出儲存檔名亂碼問題
- oracle自動生成編譯所有函式、儲存過程、觸發器的語句Oracle編譯函式儲存過程觸發器
- 啟動SQL SERVER時自動執行儲存過程(轉)SQLServer儲存過程
- 將表資料生成SQL指令碼的儲存過程和工具SQL指令碼儲存過程
- oracle批量生成日期字尾的表儲存過程程式碼Oracle儲存過程
- 3dmax自動儲存的檔案在哪裡 3dmax自動存的檔案位置3D
- 帶輸出引數的儲存過程儲存過程
- 儲存過程入門初識儲存過程
- 用oracle procedure儲存過程實現自表(列存在null)查詢不等於輸入引數的記錄Oracle儲存過程Null
- MySQL儲存過程詳解 mysql 儲存過程MySql儲存過程
- 不要在儲存過程中控制事務儲存過程
- 分頁控制元件及儲存過程控制元件儲存過程
- mysql 儲存過程 procedure 批次建表MySql儲存過程
- Oracle自動新增資料檔案過程Oracle
- 在sqlplus中呼叫in out輸入輸出引數的儲存過程SQL儲存過程
- C#中呼叫SQL儲存過程(帶輸入輸出引數的例子)C#SQL儲存過程
- 網頁檔案自動下載入庫指令碼_shell_sqlldr網頁指令碼SQL
- 【MSSQL】sqlserver 各種判斷是否存在(表名、函式、儲存過程.......)SQLServer函式儲存過程
- 移動索引的儲存過程索引儲存過程