次のようなテーブルがあります (テーブル名 IDN_CONSUMERS)、
| USER_ID | USERNAME |
| 001A | ABC/Anne |
| 034K | ABC/John |
| DF23 | ABC/Peter |
すべてのユーザー名の ABC/ 部分を削除し、変更された値をテーブルに戻す必要があるため、最終結果は次のようになります。
| USER_ID | USERNAME |
| 001A | Anne |
| 034K | John |
| DF23 | Peter |
次のスクリプトを試しましたが、理解できない理由で機能しません。誰でもこれで私を助けてもらえますか?
DECLARE
NEWUSERNAME VARCHAR2(512);
BEGIN
FOR ID IN (SELECT USER_ID FROM IDN_CONSUMERS) LOOP
SELECT SUBSTR((SELECT USERNAME FROM IDN_CONSUMERS WHERE USER_ID='||ID||'), 4) INTO NEWUSERNAME FROM DUAL;
UPDATE IDN_CONSUMERS SET USERNAME='||NEWUSERNAME||' WHERE USER_ID='||ID||';
END LOOP;
END;