LoginSignup
0
0

More than 3 years have passed since last update.

一時テーブル作成

Posted at

一時テーブル作成

リモートでOracleデータベースへ接続し、データ抽出する際に
検索対象をOracleの一時テーブルに保存する場面が良くあります。
以下は自分が一時テーブルを作成する際によく使うスクリプトです。
1)一時テーブル作成
・exe.bat
・create.sql

2)データ取込
・_sqldr.bat
・ctrl.ctl
・data.aaa

実行する順番は、exe.bat →_sqldr.bat

exe.batについて

# sqlplus {ユーザー}/{パスワード}@{接続文字列} 実行するSQL
# 接続文字列は「tnsnames.ora」に設定された名称である。
sqlplus user/pw@pdb @create.sql

create.sqlについて

内容は一時テーブルを定義する。
以下の例文はテーブルに3項目を定義する

set echo on
spool ./log/CREATE_.log

DROP TABLE 一時テーブル;

CREATE TABLE 一時テーブル (           
field1 varchar2(5),
field2 varchar2(4),
field3 varchar2(2)
)
PCTFREE 10
MAXTRANS 255
TABLESPACE TBL01
STORAGE(INITIAL 1M NEXT 1M MINEXTENTS 1 MAXEXTENTS 4096 BUFFER_POOL DEFAULT)
NOCACHE
LOGGING
/   
spool off
exit

_sqldr.bat

sqlldr user/pw@pdb data= ".\data.aaa" control="ctrl.ctl" log="log\log_.log" bad="bad\bad_.bad" 

ctrl.ctl

# 取込ファイルに対する解析ルール
OPTIONS(BINDSIZE=10000000,SKIP=0,ROWS=1000) 
LOAD DATA 
APPEND 
INTO TABLE 一時テーブル名
FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"' 
TRAILING NULLCOLS 
(
field1,
field2,
field3
)

data.aaa

aaa1,bbb,ccc
aaa2,bbb,ccc
aaa3,bbb,ccc

以上です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0