tnsnames.ora
ネットサービスの接続情報を定義するファイル
① = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ②)(PORT = ③)) (CONNECT_DATA = (SERVICE_NAME = ④) ) )
①ネットサービス名(接続文字列)
任意の名前にする
この名前はsqlplus hoge/hoge@接続文字列 のようにアプリで使用される
②DBサーバのホスト名またはアドレス
例.localhostや192.168.111.222など
③DBサーバのポート番号
意図的に変更してなければ1521を指定する
④サービス名(接続識別子)
SID名やPDB名を指定
[ファイルの場所]
%ORACLE_HOME%\network\admin
CMDで「tnsping (ネットサービス名)」
SQL*Plus
概要
SQLを実行する
使い方
--パスワードを一緒に入力する方法 sqlplus ユーザ名/パスワード@接続文字列 --パスワードを非表示で入力する方法(パスワードを入力してください が表示される) sqlplus ユーザ名@接続文字列 --これでも可 sqlplus /nolog connect ユーザ名/パスワード@接続文字列
SQL*Loader
概要
外部ファイル(CSV, Text等)のデータを取り込む
使い方
sqlldr ユーザ名/パスワード@接続文字列 control='Sample.ctl'
コントロールファイル
OPTIONS(LOAD=-1, SKIP=0, ERRORS=0, ROWS=-1) LOAD DATA INFILE 'sample.csv' APPEND --PRESERVE BLANKS INTO TABLE sample_table WHEN (COL1 = 'A01') AND (COL2 != '10') FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"' TRAILING NULLCOLS ( COL1, COL2, COL3 )
【OPTIONS】
コマンドライン引数でも指定可能。コマンドライン引数が優先される
--省略した場合のデフォルトの設定値 OPTIONS(LOAD=-1, SKIP=0, ERRORS=50, ROWS=64) --コマンドライン引数で使用する場合 sqlldr usr/pass@db control='Sample.ctl' skip=1 rows=100
LOAD:読み込み件数(-1で全件)
SKIP:スキップする件数(1で1行目をスキップ)
ERRORS:エラー許容数(0でエラー許可しない、-1でエラー無視→ver11以下のみ)
ROWS:コミットするタイミング(1で1件ずつ、-1で全件一括)
【LOAD DATA 】
固定
【INFILE、BADFILE、DISCARDFILE】
INFILE 'sample2.csv' INFILE 'c:/sample.csv' BADFILE 'c:/sample.bad' DISCARDFILE '../data/sample.dsc'
INFILE:入力ファイル
BADFILE :(省略可能)入力できなかったデータを出力したファイル
DISCARDFILE:(省略可能)WHENではじかれたデータを出力したファイル
※入力ファイルを複数指定可能
※パスを指定しない場合はLoaderを実行したディレクトリを指す
※BADFILEとDISCARDFILEは出力対象が1件以上ある場合のみ出力される
【(ロードタイプ)APPEND、INSERT、REPLACE、TRUNCATE】
APPEND:テーブルにデータを追加。重複しないレコードのみが追加される
INSERT:テーブルにデータを追加。テーブルが空でない場合はエラー
REPLACE:テーブルのデータをすべて削除してから追加。エラー時はロールバックされる
TRUNCATE:テーブルのデータをすべて削除してから追加。エラー時はロールバックされない
※ロードタイプを指定しない場合はINSERTになる
【PRESERVE BLANKS】
通常空白文字は切り捨てられるが、これを行わないようにする場合に記述
カンマの前後の空白を除去しない(空白を残す)
【INTO TABLE】
INTO TABLE sample_table
ロード先のテーブル名を指定する
【WHEN】
WHEN (COL1 = 'A01') AND (COL2 != '10')
データのロード条件。使える条件は =、!=、AND
この条件によって廃棄されたデータは、DISCARDFILEに出力される
【FIELDS TERMINATED】
--カンマ区切りの場合 FIELDS TERMINATED BY "," --タブ区切りの場合 FIELDS TERMINATED BY X'09'
入力データの区切り文字を指定
※固定長ファイルの場合は不要
【OPTIONALLY ENCLOSED】
--ダブルクォーテーションで区切られている場合 OPTIONALLY ENCLOSED BY "'"
入力データの囲み文字を指定。囲まない場合は不要
【TRAILING NULLCOLS】
データの無い項目にNULLを入れる。NULLを入れない場合は不要
【(項目名)】
ロード先のテーブルの項目名
雛形(タブ区切り)
OPTIONS(LOAD=-1,SKIP=0,ERRORS=0,ROWS=-1) LOAD DATA INFILE 'sample.csv' --要確認 APPEND --要確認 INTO TABLE sample_table -要確認 FIELDS TERMINATED BY X'09' TRAILING NULLCOLS ( COL1, --要確認 COL2, COL3 )
雛形(カンマ区切り、ダブルクォーテーション区切りあり)
OPTIONS(LOAD=-1,SKIP=0,ERRORS=0,ROWS=-1) LOAD DATA INFILE 'sample.csv' --要確認 APPEND --要確認 INTO TABLE sample_table --要確認 FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"' TRAILING NULLCOLS ( COL1, --要確認 COL2, COL3 )
雛形(カンマ区切り、ダブルクォーテーション区切りなし)
OPTIONS(LOAD=-1,SKIP=0,ERRORS=0,ROWS=-1) LOAD DATA INFILE 'sample.csv' --要確認 APPEND --要確認 INTO TABLE sample_table --要確認 FIELDS TERMINATED BY "," TRAILING NULLCOLS ( COL1, --要確認 COL2, COL3 )