![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
Oracleのプロシージャについて教えてください。
現在、Aテーブル(カラム1、カラム2、カラム3、カラム4):件数40万件
Bテーブル(カラムA、カラムB、カラムC):件数50件
と言うテーブルがあります。
この中でデータ置換を行う必要があり、
Aテーブルのカラム2とBテーブルのカラムBが一致したらAテーブルの
カラム3にBテーブルのカラムCで更新するプロシージャを作成しています。
通常のUpdate文で3000件単位でCommitを切るようにしていますが時間がかかります。
皆さんはこういう場合どういう手法でやられていますか?
ご教授ください。
ちなみに、
サーバOS:Windows2008SERVER
クライアントOS:Windows7
Oracle11
です。
No.2ベストアンサー
- 回答日時:
こんな感じではだめですか?
begin
loop
update テーブルA set カラム3 = ( select カラムc from B where テーブルA.カラム2=テーブルB.カラムB )
where exists ( select 1 from テーブルB where テーブルA.カラム2=テーブルB.カラムB )
and rownum <= 5000;
commit;
exit when (sql%rowcount < 5000);
end loop;
end;
/
ご丁寧に記載して頂きありがとうございます。
5000件ずつで上記のやり方もあるんですね。
勉強になります。
試してみたいと思います、ありがとうございます。
No.1
- 回答日時:
update A
set Col3=(select ColC from B where Col2=ColB)
where exist ( select 1 from B where Col2=ColB )
;
のような1文で処理したらダメなんですかね?
索引の有無や更新の対象量など、不明な点が多いので、
何が合理的な方法なのか答えにくいんですが。
ありがとうございます。
Loopdで取得した情報を基にして、一度Selectを切って取得した値で
UpDateの処理を行っていました。
教えて頂いた方法で試してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle sql(oracle)で質問です。 テーブルAのカラム名、日付(yyyymmdd)の値を テーブルB 2 2023/01/06 10:31
- Oracle SQL update方法 2 2022/06/22 14:07
- Oracle 参照関係のフィールドについて 1 2023/05/27 17:49
- PostgreSQL 列が存在しないと言われる 2 2023/02/10 18:33
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- Oracle SQLの書き方について 1 2023/04/13 09:54
- MySQL SELECT my_items.item_name, carts.count カンマ, の意味? 2 2023/01/23 07:12
- PostgreSQL postgreSQL カラムの全ての値を取得したい 3 2022/10/07 12:33
- MySQL sqlにおけるテーブル名と各カラム名って 具体的に何ですか? 私は良くphpmyadminを使います 3 2023/05/18 14:10
- MySQL テーブル作成時のカラムについて 2 2022/08/27 21:48
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
sqlplusで表示が変なので、出力...
-
テーブルから数値をSELECTする...
-
Oracleのプロシージャについて
-
複数の行を集約するSQLについて
-
SQL*LoaderでCSVから指定した列...
-
テーブル属性変更後のデータ移動
-
SQLでSUMなどの関数でデータが...
-
特定のカラムが更新されたとき...
-
SQLで漢字名称を都道府県や市区...
-
まるいテーブル 円い 丸い 漢字...
-
オフ会の席替えについて(8人...
-
SQLあってますか?こう?
-
お金持ちのテーブル
-
【PHP】SQL文のSUM関数で出力し...
-
男性と2人で飲食店に行きテーブ...
-
L2SWはARPテーブルを持っている?
-
処理の途中で停止させ、再開さ...
-
【エクセル】データテーブルの...
-
少人数披露宴のテーブル
-
SQL 外部結合
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テーブル名をカラムとして取得...
-
SQL、2つのテーブルで条件一致...
-
update文で改行を入れる
-
ROWNUMでUPDATEをしたいのです...
-
SQL*LoaderでCSVから指定した列...
-
SQLでSUMなどの関数でデータが...
-
sqlplusで表示が変なので、出力...
-
カラム位置変更
-
件数とデータを同時に取得する...
-
SQL 複数テーブルのupdate
-
特定のカラムが更新されたとき...
-
OracleのSQLで同テーブルのカラ...
-
数値をNUMBER型にするかCHAR型...
-
UPDATE文
-
LONG型の先頭250バイトを Varch...
-
SQLで違うテーブルの値を比較し...
-
DELETE文とロックについて
-
PLSQLのNumber型の初期化
-
SQL(oracle)でご助言いただきた...
-
半角英数文字の抽出がしたい。
おすすめ情報