ホームページ >データベース >mysql チュートリアル >Oracleのtranslate関数とreplace関数の詳細説明

Oracleのtranslate関数とreplace関数の詳細説明

小云云
小云云オリジナル
2017-12-11 13:31:472161ブラウズ

translate は、from_string 内のすべての文字が to_string 内の対応する文字に置き換えられる expr を返します。また、replace 関数は、char 内のすべての文字列 search_string を文字列 replace_string に変換します。この記事では、Oracle のtranslate 関数について説明します。 replace 関数の使い方を見てみましょう。皆さんのお役に立てれば幸いです。

translate 関数の構文:

translate(expr, from_strimg, to_string)translate(expr, from_strimg, to_string)

简介:

translate返回expr,其中from_string中的每个字符的所有出现都被to_string中的相应字符替换。expr中不在from_string中的字符不会被替换。如果expr是一个字符串,那么你必须把它放在单引号中。 from_string的参数可以包含比to_string更多的字符。在这种情况下,from_string末尾的多余字符在to_string中没有对应的字符。如果这些额外的字符出现在字符中,那么它们将从返回值中移除。

您不能使用to_string的空字符串从返回值中删除from_string中的所有字符。Oracle数据库将空字符串解释为空,如果此函数具有空参数,则返回null。

translate提供了与replace函数相关的功能。 replace让你用一个字符串替换另一个字符串,以及删除字符串。 translate允许您在一个操作中进行多个单字符,一对一的替换。

该函数不直接支持CLOB数据。但是,CLOB可以通过隐式数据转换作为参数传递。

例子:

以下语句将一句话转换为具有下划线分隔的字符串。from_string包含四个字符:井号,美元符号,空格,星号。to_string只包含一个@符号和两个下划线。 这使得from_string中的第四个字符没有相应的替换,所以星号从返回的值中删除。

SELECT TRANSLATE('itmyhome#163.com$is my* email', '#$ *', '@__') from dual
----------
itmyhome@163.com_is_my_email

replace函数

语法:

REPLACE(char, search_string,replacement_string)

概要:

translate は expr を返します。from_string 出現箇所内のすべての文字は次のように置き換えられます。 to_string 内の対応する文字。 from_string にない expr 内の文字は置換されません。 expr が文字列の場合は、一重引用符で囲む必要があります。 from_string への引数には、to_string よりも多くの文字を含めることができます。この場合、from_string の末尾の余分な文字には、to_string 内に対応する文字がありません。これらの余分な文字が文字内に現れる場合、それらは戻り値から削除されます。

to_string の空の文字列を使用して、戻り値から from_string 内のすべての文字を削除することはできません。 Oracle Databaseは空の文字列をnullとして解釈し、この関数に空のパラメータがある場合はnullが返されます。

translate は、replace 関数に関連する関数を提供します。 replace を使用すると、ある文字列を別の文字列に置き換えたり、文字列を削除したりできます。 translation を使用すると、1 回の操作で複数の単一文字を 1 対 1 で置換できます。

この関数は CLOB データを直接サポートしません。ただし、CLOB は暗黙的なデータ変換を使用してパラメータとして渡すことができます。

例:

次のステートメントは、文をアンダースコア区切り文字を含む文字列に変換します。 from_string には、ポンド記号、ドル記号、スペース、アスタリスクの 4 つの文字が含まれます。 to_string には @ 記号が 1 つとアンダースコアが 2 つだけ含まれます。 これにより、from_string の 4 番目の文字が対応する置換なしのままになるため、戻り値からアスタリスクが削除されます。

SQL> select REPLACE('fgsgswsgs', 'fk' ,'j') 返回值 from dual;
      返回值
      ---------
      fgsgswsgs
      SQL> select REPLACE('fgsgswsgs', 'sg' ,'eeerrrttt') 返回值 from dual;
      返回值
      -----------------------
      fgeeerrrtttsweeerrrttts

replace関数

構文:

REPLACE(char, search_string,replacement_string)

使用法:

char search_string 内の文字列はすべてです文字列 replace_string に変換されます。


例:

select translate('itmyhome#163%com', '#%', '@.') from dual;
select replace('itmyhome#163%com', '#%', '@.') from dual;
---------
itmyhome@163.com
itmyhome#163%com

分析:

最初の例では、「fgsgswsgs」に「fk」に一致する文字列がないため、

🎜したがって、戻り値は依然として「fgsgswsgs」です。 ️ 2 番目の例では、「fgsgswsgs」内のすべての文字列「sg」が「eeerrrttt」に変換されます。要約: 要約すると、replace と translation は両方とも置換関数 🎜🎜 ですが、replace のみが文字列を対象とし、Translate は単一の文字です。 🎜🎜🎜🎜とreplace関数の違い🎜🎜🎜🎜🎜rrreee🎜🎜🎜上記のtranslate関数は#を@に、%を.🎜🎜に置き換えますが、#%全体が見つからないためreplaceではこの効果は得られません。 🎜🎜の関連推奨事項: 🎜🎜🎜🎜Oracleの基本学習子クエリ🎜🎜🎜🎜Oracle—distinctの使用法🎜🎜🎜🎜Oracleにおけるテーブル関数のアプリケーションの簡単な分析🎜🎜

以上がOracleのtranslate関数とreplace関数の詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。