小さな PL/SQL ラッパーは、アンダースコアがなくなるまで変換を繰り返し実行できます。会社のキャメルケース規則 (頭文字が大文字で大文字の "ID") に合わせて、いくつかのステートメントを追加しました。
UPDATE md_field SET NAME = lower(NAME) WHERE NAME LIKE '%\_%' ESCAPE '\';
UPDATE md_field SET NAME = upper(substr(NAME, 1, 1))||substr(NAME, 2) WHERE NAME LIKE '%\_%' ESCAPE '\';
UPDATE md_field SET NAME = REPLACE(NAME, 'id', 'ID') WHERE NAME LIKE '%\_%' ESCAPE '\';
DECLARE
vsql LONG;
v_cnt NUMBER;
BEGIN
LOOP
vsql := 'UPDATE md_field SET NAME = substr(NAME, 1, instr(NAME, ''_'')-1)||upper(substr(NAME, instr(NAME, ''_'')+1, 1))||substr(NAME, instr(NAME, ''_'')+2) WHERE NAME LIKE ''%\_%'' ESCAPE ''\''';
EXECUTE IMMEDIATE vsql;
SELECT COUNT (*) INTO v_cnt FROM md_field WHERE NAME LIKE '%\_%' ESCAPE '\';
EXIT WHEN v_cnt = 0;
END LOOP;
END;
/