アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは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

を同時にやりたいってことです。

どうすればよろしいでしょうか?
ご返答よろしくお願いします。

A 回答 (4件)

こんにちわ。



#3 の方がPL/SQL での方法を紹介されているので、
私はPro*C (Oracle) の方法をご紹介します。

INSERT 文, UPDATE 文, DELETE 文, SELECT INTO 文を実行した時の処理件数は,
sqlca.sqlerrd[2] で通知されます。
詳細は、Pro*C/C++ のマニュアルで確認して下さい。
    • good
    • 4

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
    • good
    • 0

どのようにしてSQLを発行しているのですか?


DBは?ミドルウェアは?

処理した件数って一緒に返されている場合が多いです。
たとえばDAOではExecuteの戻り値とか。
    • good
    • 1

使ってるソフトは何ですか?



アクセスならば、重複クエリーウィザードで
重複対象をTANTOU_NAMEにすれば重複してる件数が
出ますよ。
これがUPDATE対象の件数になります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A