sqlplusでテキストデータをインポートする方法は何ですか?
テキストデータをSQL*Plusでインポートするためには、次の手順を使用できます。
- テキストデータファイルをインポートする準備をして、ファイルの形式が正しいことを確認し、各行が1つのデータレコードを表し、フィールドはコンマまたはタブで区切られていることを確認してください。
- コマンドプロンプトまたはターミナルウィンドウを開き、SQLPlusコマンドを入力してデータベースにログインします。たとえば、次のコマンドを入力してOracleデータベースにログインします:
- ネイティブに日本語でパラフレーズすると、以下のようになります:
sqlplus ユーザー名/パスワード@データベース - usernameは、データベースのユーザー名であり、passwordはパスワードであり、databaseはデータベースへの接続文字列です。
- SQL*Plusの画面にアクセスした後、以下のコマンドを入力してインポートしたデータを保存するための一時テーブルを作成します:
- temp_tableというテーブルを作成してください。カラム1とカラム2を設定してください。
- 実際のテーブルのフィールド名や対応するデータ型に従って、column1、column2などを置き換えてください。
- sqlldrコマンドを使用してテキストデータをインポートします。以下のコマンドを入力してください:
- sqlldrを使用して、username/password@databaseに接続し、control_file.ctlを制御ファイルとして実行します。
- ユーザ名はデータベースのユーザ名、パスワードはパスワード、データベースはデータベースの接続文字列、control_file.ctlは制御ファイルのパスとファイル名です。
- コントロールファイルは、データファイルやターゲットテーブルなどの情報を指定するテキストファイルです。以下に示すのはコントロールファイルの例です。
- data_file.txtというファイルからデータを読み込み、temp_tableという表にカンマで区切られたフィールドを挿入してください。フィールド値は必要に応じてダブルクォーテーションで囲んでください。(column1、column2、…)
- コントロールファイルで、INFILEでデータファイルを指定し、INTO TABLEでターゲットテーブルを指定し、FIELDS TERMINATED BYでフィールド間の区切り文字を指定し、OPTIONALLY ENCLOSED BYでフィールド値の囲み文字を指定し、括弧で囲まれたフィールド名を指定します。
- sqlldrは、インポートコマンドを実行すると、制御ファイルとデータファイルを読み込んでデータを一時テーブルにインポートします。インポートが完了したら、一時テーブルをSQLでクエリしたり、データを他のテーブルに挿入したりできます。
- インポートが完了したら、リソースを解放するために一時テーブルを削除してください。以下のコマンドを使用して一時テーブルを削除することができます:
- 一時的なテーブルを削除します。
SQLPlusを使用してテキストデータをインポートする手順について説明しました。具体的なデータベースとデータファイルの形式によっては、適切なコマンドやパラメータを調整する必要があります。