PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
14940 | 01/04/04 09:20:07 | RE(9):PB6.5: ORACLE ロールバックセグメントの指定 By きん |
14938 | 01/04/03 22:40:20 | RE(8):PB6.5: ORACLE ロールバックセグメントの指定 By Taka |
14934 | 01/04/03 21:46:38 | RE(7):PB6.5: ORACLE ロールバックセグメントの指定 By M.M |
14933 | 01/04/03 21:17:04 | RE(6):PB6.5: ORACLE ロールバックセグメントの指定 By きん |
14929 | 01/04/03 16:02:41 | RE(5):PB6.5: ORACLE ロールバックセグメントの指定 By M.M |
14921 | 01/04/02 18:54:34 | RE(4):PB6.5: ORACLE ロールバックセグメントの指定 By きん |
14917 | 01/04/02 16:55:08 | RE(3):PB6.5: ORACLE ロールバックセグメントの指定 By エイ |
14911 | 01/04/01 16:29:41 | RE(2):PB6.5: ORACLE ロールバックセグメントの指定 By きん |
14910 | 01/04/01 15:02:44 | RE(1):PB6.5: ORACLE ロールバックセグメントの指定 By エイ |
14908 | 01/03/31 21:30:13 | PB6.5: ORACLE ロールバックセグメントの指定 By きん |
カテゴリ:データベース
日付:2001年04月03日 21:46 発信者:M.M
題名:RE(7):PB6.5: ORACLE ロールバックセグメントの指定
きんさん、こんばんは。
>大量のデータを更新する処理(月次更新)をロールバックセグメント指定で実行しようと、
>以下のようなスクリプトを記述しているのですが
>『ORA-01562: ロールバック・セグメント番号: 1を拡張できません。』
>『ORA-01628: 最大エクステント: 100に達しました(ロールバック・セグメント: RB1)。』
>のエラーになってしまいます(RB_IMPORTを指定しているはずなのに)
>どこが間違っているのでしょう?どなたかわかる方はいらっしゃいませんか
>
>---------Windowのユーザイベントに記述------------------------
>// ロールバックセグメントのONLINE
>l_SQL = \"ALTER ROLLBACK SEGMENT RB_IMPORT ONLINE\"
>EXECUTE IMMEDIATE :l_SQL USING SQLCA;
>If SQLCA.SQLCode <> 0 Then
> エラー処理 <----------------------- ここでエラーは発生していません
>End If
>
>// ロールバックセグメントの変更
>COMMIT USING SQLCA;
>l_SQL = \"SET TRANSACTION USE ROLLBACK SEGMENT RB_IMPORT\"
>EXECUTE IMMEDIATE :l_SQL USING SQLCA;
>If SQLCA.SQLCode <> 0 Then
> エラー処理 <----------------------- ここでエラーは発生していません
>End If
Oracle8iのマニュアルで確認したのですが、SQLのSET TRANSACTION文はトランザクション
の先頭に記述する必要があるそうです。
ですからCONNECT文の直後に実行しないと、SET TRANSACTION文の設定が無効になっている
のではないでしょうか?
もっともストアドプロシージャで実行すれば動作が確実とのことですので、そちらで回避
した方が確実かもしれません。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows NT 4.0
DBMS Oracle SQL*Net 8
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS Oracle 8.0
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.