• 締切済み

SQL>UPDATEと同時にその件数をCOUNTする方法

こんにちはtmgmです。 いまTANTOU_CDとTANTOU_NAMEという項目のある T_TANTOUというテーブルがあるとします。 TANTOU_CD_|_TANTOU_NAME_ _____1_|_担当者1___ _____2_|_担当者2___ _____3_|_担当者2___ 担当者2が二人いるのがわかりますか? ここでこの担当者2を”担当者3”に(どちらも)UPDATEしつつ、UPDATEした件数をCOUNTするSQL文の 書き方が分からずに困っています。 要するに UPDATE T_TANTOU SET TANTOU_NAME = '担当者3' WHERE TANTOU_CD = '担当者2' と SELECT COUNT(TANTOU_NAME) FROM T_TANTOU を同時にやりたいってことです。 どうすればよろしいでしょうか? ご返答よろしくお願いします。

みんなの回答

  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.4

こんにちわ。 #3 の方がPL/SQL での方法を紹介されているので、 私はPro*C (Oracle) の方法をご紹介します。 INSERT 文, UPDATE 文, DELETE 文, SELECT INTO 文を実行した時の処理件数は, sqlca.sqlerrd[2] で通知されます。 詳細は、Pro*C/C++ のマニュアルで確認して下さい。

すると、全ての回答が全文表示されます。
回答No.3

Oracle DB+PL/SQLであれば、以下のように出来ます。 CREATE TABLE tantou_tbl (tantou_cd NUMBER, tantou_name VARCHAR2(10)); INSERT INTO tantou_tbl VALUES (1,'担当者1'); INSERT INTO tantou_tbl VALUES (2,'担当者2'); INSERT INTO tantou_tbl VALUES (3,'担当者2'); SET SERVEROUTPUT ON DECLARE l_updated_count NUMBER; BEGIN UPDATE tantou_tbl SET tantou_name = '担当者3' WHERE tantou_name = '担当者2'; l_updated_count := SQL%ROWCOUNT; DBMS_OUTPUT.PUT_LINE(TO_CHAR(l_updated_count) || '行更新されました。'); END; /

参考URL:
http://otn.oracle.co.jp
すると、全ての回答が全文表示されます。
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

どのようにしてSQLを発行しているのですか? DBは?ミドルウェアは? 処理した件数って一緒に返されている場合が多いです。 たとえばDAOではExecuteの戻り値とか。

すると、全ての回答が全文表示されます。
回答No.1

使ってるソフトは何ですか? アクセスならば、重複クエリーウィザードで 重複対象をTANTOU_NAMEにすれば重複してる件数が 出ますよ。 これがUPDATE対象の件数になります。

すると、全ての回答が全文表示されます。

関連するQ&A