目的
- 業務効率化
- お勉強メモ
利用DB
oracle 11g
使用ツール
- SQLDeveloper
- A5SQL
SQL*Loader ってなに?
SQLLoader制御ファイルは、SQLLoaderジョブ用のデータ定義言語(DDL)命令を含むテキスト・ファイルです。
SQL*Loader制御ファイルとは
- SQL*Loaderによってロードされるデータの位置
- SQL*Loaderによるデータ書式設定の方法
- データのロード時のSQL*Loaderの設定(メモリー管理、拒否レコード、ロード処理の中断など)
- SQL*Loaderによるロード中のデータの処理方法
サンプル制御ファイルを作成して実行してみる
事前準備
- oracleインストール&データベース作成まで行う
- 空のテーブルをcreate tableする
- csvデータを作成
実践編
sample2.ctl
LOAD DATA CHARACTERSET UTF8
INFILE 'TEST2.csv'
BADFILE 'TEST2.BAD'
DISCARDFILE 'TEST2.DSC'
-- APPEND INTO TABLE TEST2
TRUNCATE INTO TABLE TEST2
-- REPLACE INTO TABLE TEST2
-- INSERT INTO TABLE TEST2
(
TESTCD POSITION(1:4) CHAR,
TESTNM POSITION(5:13) CHAR
)
TEST2.csv
0001あああ
0002いいい
0003かかか
0004かええ
0005おおお
コマンド実行
CMD
sqlldr TESTUSER/Test1234@orcl CONTROL=C:\work\xxx\csv\20210208_172118\sample2.ctl LOG=C:\work\xxx\csv\20210208_172118\TEST2.log
CMD
SQL*Loader: Release 11.2.0.1.0 - Production on 火 2月 9 20:31:31 2021
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
コミット・ポイントに達しました。 - 論理レコード件数4
コミット・ポイントに達しました。 - 論理レコード件数5
C:\work\xxx\csv\20210208_203131>
日時を取り扱う場合の例
事前準備
実践
sample2.1.ctl
LOAD DATA CHARACTERSET UTF8
INFILE 'TEST2.1.csv'
BADFILE 'TEST2.1.BAD'
DISCARDFILE 'TEST2.1.DSC'
TRUNCATE INTO TABLE TEST6
FIELDS TERMINATED BY ','
TRAILING NULLCOLS
(
TESTNM,
NOCOLUMN FILLER,
TESTNOTE CONSTANT 'XXXXX',
TESTDATE1 SYSDATE,
TESTDATE2 CHAR "TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS')"
)
TEST2.1.csv
あああ,dummy
いいい,dummy
ううう,dummy
えええ,dummy
おおお,dummy
コマンド実行
CMD
sqlldr TESTUSER/Test1234@orcl CONTROL=C:\work\xxx\csv\20210208_172118\sample2.1.ctl LOG=C:\work\xxx\csv\20210208_172118\TEST2.1.log
CMD
SQL*Loader: Release 11.2.0.1.0 - Production on 火 2月 9 20:50:45 2021
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
コミット・ポイントに達しました。 - 論理レコード件数4
コミット・ポイントに達しました。 - 論理レコード件数5
C:\work\xxx\csv\20210208_205500>
おまけ1
初回起動について
→JVMは32bitを指定すること。64bit選択すると、起動してくれませんので注意!!
おまけ2
表領域の容量確認
query.sql
SELECT * FROM dba_free_space;
TABLESPACE_NAME FILE_ID BLOCK_ID BYTES BLOCKS RELATIVE_FNO
------------------------------ ---------------------- ---------------------- ---------------------- ---------------------- ----------------------
SYSTEM 1 87968 786432 96 1
SYSTEM 1 88448 9437184 1152 1
SYSAUX 2 66768 29753344 3632 2
UNDOTBS1 3 4096 58720256 7168 3
UNDOTBS1 3 11392 7340032 896 3
UNDOTBS1 3 12416 3145728 384 3
USERS 4 600 327680 40 4
EXAMPLE 5 480 1966080 240 5
EXAMPLE 5 1408 589824 72 5
EXAMPLE 5 10392 19726336 2408 5
USERS 4 584 65536 8 4
USERS 4 568 65536 8 4
USERS 4 528 65536 8 4
USERS 4 576 65536 8 4
USERS 4 520 65536 8 4
15 rows selected
スキーマ一覧を取得
query2.sql
SELECT DISTINCT owner FROM all_objects order by owner;
・
・
・
TESTUSER
WMSYS
XDB
・
・
・
30 rows selected
DBの文字コード確認
query3.sql
SELECT VALUE FROM nls_database_parameters
WHERE parameter='NLS_CHARACTERSET'
VALUE
----------------------------------------
JA16SJISTILDE
1 rows selected