sql >> データベース >  >> RDS >> Oracle

where 句で txt ファイルからデータを取得するスクリプト

    Oracle 外部ディレクトリ のように聞こえます 仕事に最適です。これがユーザーが書き込むことができるテキスト ファイルである場合、このアプローチは困難を伴うことに注意してください。ユーザーは、エラーやその他 の原因となる可能性を信じられないほど多くのことを実行します。 .

    記事より:

    ディレクトリを作成する

    ディレクトリ data_dir の読み取りと書き込みを your_user に許可します。

    外部テーブルを作成する

    CREATE TABLE test_ext (
      test_code      VARCHAR2(5),
      test_name      VARCHAR2(50)
    )
    ORGANIZATION EXTERNAL (
      TYPE ORACLE_LOADER
      DEFAULT DIRECTORY ext_tab_data
      ACCESS PARAMETERS (
        RECORDS DELIMITED BY NEWLINE
        FIELDS TERMINATED BY ','
        MISSING FIELD VALUES ARE NULL
        (
          test_code      CHAR(5),
          test_name      CHAR(50)
        )
      )
      LOCATION ('test1.txt','test2.txt')
    )
    PARALLEL 5
    REJECT LIMIT UNLIMITED;
      

    次に、テーブルから読み取ります

    SELECT *
        FROM   test_ext
        ORDER BY test_name;
      

    編集:データベース サーバーに配置されていないディレクトリを使用してこれを行うことはできますが、より多くの作業が必要であり、これはデータベースのセキュリティとデータ品質に対するリスクがさらに大きくなることを表しています。このアプローチもスケーリングしません。新しいユーザーが追加されるたびに、新しいディレクトリを追加するつもりですか?

    Oracle が別のマシンにあるファイルにアクセスできるようにする手順 (Windows オペレーティング システムを想定)

    • アクセスしたいすべてのディレクトリでファイルの読み取り権限を持つ Windows ユーザーまたはドメイン ユーザーを作成します
    • データベース サーバーで services.msc を実行し、Oracle データベース サービスを実行するユーザーを新しいドメイン ユーザーに変更します。このユーザーをデータベース サーバーの ORA_DBA というローカル グループに追加します
    • 変更を有効にするためにデータベースを再起動します
    • //clientPc/sharedFolder のようなパスを使用して、データベースにディレクトリを作成します
    • データベース ユーザーに読み取り権限を付与する
    • クライアント マシンで、そのフォルダのドメイン ユーザーに読み取りを許可します
    • 接続を確認する UTLFILE を使用して クライアント PC でサンプル ファイルを読み取る



    1. MySQL-Pythonのインストールが終了ステータス1120で失敗しました

    2. psycopg2をインストールできないのはなぜですか? (Python 2.6.4、PostgreSQL 8.4、OS X 10.6.3)

    3. OracleSYS_REFCURSORは戻り型として使用できませんでした

    4. タイムスタンプデータで曜日と日付を表示する方法(PHP MYSQL)