感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

Oracleでデータのインポート、エクスポートする構文

スポンサーリンク

OracleのEXPORTの構文

EXP ユーザ名/パスワード
	TABLES = エクスポートする表の名前
	FILE = 出力するファイル名
	OWNER = ユーザ名
	FULL = y(すべてをエクスポートする場合)

個々の表をエクスポートする場合は「TABLES=エクスポートする表の名前」
ユーザーを単位としてエクスポートする場合は「OWNER=ユーザ名」
データベースのすべてをエクスポートする場合は[FULL=y」を記述する。

例)パスワードが[1234] ユーザー[mizky]が表tb1を[C:\\hoge\hoge.dmp]というファイルにエクスポートする場合

EXP mizky/1234 TABLES=tb1 FILE=C:\\hoge\hoge.dmp

これをコマンドプロンプトで入力する。
SQL*Plusで入力するのではない。

データベース全体をバックアップ対象とする場合

EXP mizky/1234 FILE=C:\\hoge\hoge.dmp FULL=y


OracleのIMPORTの構文

IMP ユーザー名/パスワード
	TABLES = インポートする表の名前
	FILE = ファイル名
	FULL = y(すべてをインポートする場合はこれをつける)

例)パスワードが[1234] ユーザーが[mizky]の表tb1を「C:\\hoge\hoge.dmp」というファイルからインポートする場合

IMP mizky/1234 TABLES=tb1 FILE=C:\\hoge\hoge.dmp

例)データベース全体をインポートする場合

IMP mizky/1234 FILE=FILE=C:\\hoge\hoge.dmp FULL=y

クライアント側からIMPORT,EXPORTを実行する場合はユーザー名・パスワードに接続識別子をつけること。

EXP mizky/1234@接続識別子 TABLES=tb2

接続識別子とは、クライアントからサーバーに接続するときに必要な情報の記述につけた名前のこと。

SQL*Plusで実行結果をファイルに書きだす

SPOOL ファイル名

OracleでSELECTした結果をCSVファイルに書き出す
まずはフィールド間の区切り文字を設定する

SET COLSEP '区切り文字'

手順

1.区切り文字を変更
SET COLSEP ','
2.出力ファイルを指定してSPOOL開始
SPOOL C:\\data\out.csv
3.表の内容を表示
SELECT * FROM TABLE;
4.SPOOLを停止する
SPOOL OFF

CSVファイルをインポートするにはSQL*Loaderを使う
「SQLLDR」と入力すれば使える。

SQL*Loaderを利用してデータを読み込む場合、制御ファイルを作成し、その制御ファイルを指定してSQLLDRを実行する必要がある。

制御ファイルの記述方法

LOAD DATA
	INFILE '読み込むファイル名'
	APPEND または TRUNCATE
	INTO TABLE データを挿入する表の名前
	FIELDS TERMINATED BY '項目どうしを区切る文字'
	(column1,column2,column3)

例)

①制御ファイルを作成
LOAD DATA 
	INFILE 'C:\\hoge\data.csv'
	APPEND
	INTO TABLE tb1
	FIELDS TERMINATED BY ','
(column1,column2,column3)

→.ctlファイルができる。
②「SQLLDR」を実行
SQLLDR mizky/1234 CONTROL=C:\\hoge\data_in.ctl

<参考>

基礎からのOracle (DVD付) (プログラマの種シリーズ)

基礎からのOracle (DVD付) (プログラマの種シリーズ)