P/L SQLで値が更新されない。
次のようなプログラムを作成しましたが、ORDER_INFテーブルのKANRYO_DAYの値が更新されません。どこが間違っているのでしょうか。
BEGIN
DECLARE
CURSOR r_search IS SELECT * FROM ord_search_pattern;
BEGIN
FOR r IN r_search LOOP
UPDATE ORDER_INF t1
SET t1.KANRYO_DAY = r.KANRYO_DAY
WHERE t1.ORDER_NO = r.ORDER_NO;
COMMIT;
END LOOP;
END;
No.1ベストアンサー
- 回答日時:
ただのコピペのミスかもしれませんが、とりあえず1行目のBEGINはいらないです。
と言うかあるとエラーになって実行できないですよね。
プログラム的には間違ってないと思います。
ORDER_NOが一致するデータがないか、KANRYO_DAYの値が同一とかですかね。
LOOP内でdbms_outputなどをつかってデバッグしてみては?
No.2
- 回答日時:
SQL> create table ord_search_pattern
2 (
3 ORDER_NO varchar2(5),
4 KANRYO_DAY varchar2(8)
5 );
表が作成されました。
SQL> create table ORDER_INF
2 (
3 ORDER_NO varchar2(5),
4 KANRYO_DAY varchar2(8)
5 );
表が作成されました。
SQL> insert into ord_search_pattern values('A','20100820');
1行が作成されました。
SQL> insert into ORDER_INF values('A',null);
1行が作成されました。
SQL> select * from ord_search_pattern ;
ORDER KANRYO_D
----- --------
A 20100820
SQL> select * from ORDER_INF ;
ORDER KANRYO_D
----- --------
A
SQL>
SQL> DECLARE
2 CURSOR r_search IS SELECT * FROM ord_search_pattern;
3 BEGIN
4 FOR r IN r_search LOOP
5 UPDATE ORDER_INF t1
6 SET t1.KANRYO_DAY = r.KANRYO_DAY
7 WHERE t1.ORDER_NO = r.ORDER_NO;
8 COMMIT;
9 END LOOP;
10 END;
11 /
PL/SQLプロシージャが正常に完了しました。
SQL> select * from ord_search_pattern ;
ORDER KANRYO_D
----- --------
A 20100820
SQL> select * from ORDER_INF ;
ORDER KANRYO_D
----- --------
A 20100820
更新されますが?
データの整合性の問題では?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle SQL update方法 2 2022/06/22 14:07
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PostgreSQL SQLで検索結果の記事を表示したい 1 2022/04/28 21:03
- MySQL PhpMyAdminで作成して実行せよ。 東京23区を、皇居を中心とした4つのエリア(南東, 南西, 1 2023/06/11 11:58
- Visual Basic(VBA) VBAで実行時エラー'424' オブジェクトが必要ですと出る 2 2022/10/07 09:25
- その他(プログラミング・Web制作) .htaccessファイルの修正がこれで問題ないかどうか 1 2022/04/21 08:42
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- Oracle SQLについて教えて下さい。 主キーを持ったカラムを主キーの機能を持たせたまま カンマ区切りで文字列 1 2023/03/27 22:47
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ORACLEで一番最初の結果だけを...
-
Oracleのビュー作成時に「指定...
-
抽出結果を1件ずつ次の抽出条件...
-
Access フィールドに入力した数...
-
Oracle SQLにて固定長でデータ...
-
時間の重複を加味した連続時間S...
-
sqlplusで日本語入力
-
Excel 2019 のピボットテーブル...
-
「直需」の意味を教えてください
-
エクセルVBAで5行目からオート...
-
作番ってどういう意味でしょうか?
-
Oracle 2つのDate型の値の差を...
-
INSERT INTO ステートメントに...
-
Accessでテーブルの値をテキス...
-
Accessでテーブル名やクエリ名...
-
テーブルの存在チェックについて
-
Access テキスト型に対する指定...
-
Accessのフィールド数が255しか...
-
ACCESSで和暦を西暦に・・・
-
【Access】フォームで自動計算...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Oracleのビュー作成時に「指定...
-
ORACLEで一番最初の結果だけを...
-
ROWNUMについて
-
Oracle SQLにて固定長でデータ...
-
DB2でREPLACEによる文字列の置換
-
抽出結果を1件ずつ次の抽出条件...
-
ある値以上の空き番の最小値を...
-
sqlplusで日本語入力
-
時間の重複を加味した連続時間S...
-
P/L SQLで値が更新されない。
-
PL/SQL 複数件同じ値で更新す...
-
UPDATE文でこのような更...
-
distinct で抽出したレコード件数
-
WITH句で複数テーブルを定義す...
-
VBAのRows.Selectについて
-
ACCESS クエリーから件数取得
-
group by でselect
-
SQL文の書き方
-
sqlの条件文に関して
-
効率のいい集計SQL文
おすすめ情報