0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Oracle] [SQL] 実行~DBへのデータ登録まで

Last updated at Posted at 2022-03-31

実行時に使用 SQLPlusとは

 Oracle Databeseに付属しているソフト
 SQLを実行するためのユーティリティーソフトで、クライアントツールとして標準装備されている

起動方法

  sqlplus ユーザー名/パスワード@接続文字列

実行方法

  @ファイルパス

SQLおすすめの書き方

  1. FROM テーブル名 + 結合するテーブルから書いていく (設計書をみて)
2. WHERE区の中の抽出条件を書く (設計書をみて)
  3. 最後にSELECT句を書く
  *最後に;
       COMMIT;
       QUIT
を忘れない様に

test1.sql
  TRUNCATE TABLE test --testテーブルをTRUNCATEする
  INSERT INTO test (
    bg --番号
   ,id --ID
   ,start --開始日
   ,end  --終了日
   ,kingaku --金額
   ,biko --備考
   ,cd --コード
  )
  SELECT
    '0'|| col002 AS bg --番号の先頭に0を付ける
    ,cnvt(col005) AS id -- ファンクションでidを変換
    ,substr(col006,1,10) AS start --開始日を切り取り 
    ,substr(col006,1,10) AS end -- 終了日を切り取り
    ,CASE
       WHEN col014 = '2' THEN col011
       ELSE NULL
      END AS kingaku
     ,col026 AS biko
     ,'1' AS cd --1を固定でセット
   FROM
     testtest
   WHERE
    col005 IN (SELECT DISTINCT col001 FROM tes WHERE col013 IS NOT NULL) --副問い合わせ
    AND ((substr(col007,1,10) >= '2018/04/01') OR col0007 IS NULL) 
    ;
    COMMIT;
    QUIT

データを格納する時に使用 SQLLoaderとは

 大量のデータを高速にテーブルへ格納するためのOracle Database付属ツール
 CSVファイルを元にまとめてデータを取り込むことが可能
 直接テーブルにデータを書き込み高速に処理できることが特長

使用の流れ

  テーブルの作成⇒CSVファイルの作成⇒制御ファイル(.ctl)で読み込み
  

テーブルの作成方法

create.sql
   CREATE TABLE テーブル名(
         カラム名 型,
         カラム名 型,--ex col001 VARCHAR2(400)
      )
       --COMMENT ON COLUMN テーブル名.カラム名 IS '';
       --でテーブルのヘッダーに任意の名前を付けることができる

  

制御ファイルの役割

   制御ファイルの役割は投入元のCSVファイルと投入先のテーブルのマッピング
    

制御ファイルの書き方

test.ctl
   OPTIONS(SKIP=1)
   Load data
    infile 'ファイルパス' 
    badfile 'ファイルパス'
    truncate into table テーブル名
   FIELDS TERMINATED BY ","OPTIONALLY ENCLOSED BY '"' TRAILING NULLCOLS
          (
           カラム名,
           カラム名
           )

起動方法

  sqlloader
 ユーザー名/パスワード@接続文字列

実行方法

  @ファイルパス(コントロールファイル)

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?