これを試すことができます。最初にそれが動作するかどうか試してみてください。
文字のzを文字列に変更する場合は、翻訳機能を使用します。translate(text_string, 'z', 'j')
。私は文字zとjを使う必要はありません。代わりに、私はtranslate(text_string, chr(122), chr(106)
を書くことができます - 文字コードを見つけるために、私はselect ascii('z') from dual;
を使用します。例:
SQL> select translate('banzo', chr(122), chr(106)) from dual;
TRANS
-----
banjo
これは、text_stringのzからjまでのすべての出現を変更します。
変更する文字のコード( "from"と "to"の両方の文字)をキャラクタセットで見つける必要があります。データベースキャラクタではなく、セッションキャラクタセットにする必要がありますセット。少なくとも、私はこれが正しいと思います。それを試してみてください。また、CHRのドキュメントを読んでいるのかもしれません。もしTRANSLATEがセッション文字セットを使用していると思わない限り、CHRはDATABASE文字セットの文字コードを返します。
関数ascii
は、非ASCII文字では機能しない場合もありますが、文字セットの名前をGoogleに渡すと、その文字セットで使用できるすべての文字のコードを示す文字セットテーブルが見つかります。これが動作するかどうか
次に、あなたが一発で変換を行うことができます - translate(text_string, 'abcd', 'qrst')
を変更するすべての「」などの「R」へとchr(...)
と「Q」は、すべての「B」、代わりの'abcd'
へchr(97) || chr(98) || chr(99) || chr(100)
と書くことができます。