電子書籍の厳選無料作品が豊富!

お世話になります。


LONG型のカラムに長い文字列がセットされてるのですが、その文字列の中からある特定の文字列を別の文字に置換したいのです。

SELECT ~ REPLACEを使おうと思ったのですが、LONG型では使えないらしく、PLSQLにて以下のように作成しました。


DECLARE
CURSOR CURSOR1 IS SELECT * FROM T_テーブル;
HIGH_VALUE_WORK VARCHAR2(32760);
BEGIN
FOR REC_CURSOR1 IN CURSOR1 LOOP
HIGH_VALUE_WORK := REC_CURSOR1.カラム;
HIGH_VALUE_WORK := REPLACE(HIGH_VALUE_WORK, 'あああ', '   ');
REC_CURSOR1.カラム := HIGH_VALUE_WORK;
END LOOP;
END;
/


しかしテーブルを確認しても変更されてませんでした。
更新直後に試しにセレクトかけてDBMS_OUTPUTすると正しく更新されてました。

Oracleは10gR2です。


ご存知の方どうかよろしくお願いします。

A 回答 (1件)

Updateしてないようですけど。


CURSOR CURSOR1 IS SELECT * FROM T_テーブル FOR UPDATE;
として、
REC_CURSOR1.カラム := HIGH_VALUE_WORK;
ではなく、
UPDATE T_テーブル SET .カラム = HIGH_VALUE_WORK WHERE CURRENT OF CURSOR1 ;
では
    • good
    • 0

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

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