sql >> データベース >  >> RDS >> Sqlserver

STRING_ESCAPE()関数がSQL Server(T-SQL)でどのように機能するか

    SQL Serverでは、T-SQL STRING_ESCAPE() 関数は、テキスト内の特殊文字をエスケープし、エスケープされた文字を含むテキストを返します。

    関数を呼び出すときに、引数としてテキストとエスケープタイプを指定します。

    構文

    構文は次のようになります:

    STRING_ESCAPE( text , type )

    text エスケープする文字を含むテキストであり、 type 適用するエスケープルールを決定します。

    現在、 typeでサポートされている唯一の値 引数は'json'

    例1-基本的な使用法

    仕組みの例を次に示します。

    SELECT STRING_ESCAPE('\', 'json') AS Result;

    結果:

    +----------+
    | Result   |
    |----------|
    | \\       |
    +----------+
    

    スラッシュをエスケープする例を次に示します。

    SELECT STRING_ESCAPE('/', 'json') AS Result;

    結果:

    +----------+
    | Result   |
    |----------|
    | \/       |
    +----------+
    

    そして、もう少しテキストを追加した例を次に示します。

    SELECT STRING_ESCAPE('Free beer/wine with every lambo!', 'json') AS Result;

    結果:

    +-----------------------------------+
    | Result                            |
    |-----------------------------------|
    | Free beer\/wine with every lambo! |
    +-----------------------------------+
    

    例2–無効なタイプ

    執筆時点では、 typeでサポートされている唯一の値 パラメータは'json'です 。サポートされていない値を指定すると、次のようになります。

    SELECT STRING_ESCAPE('\', 'oops') AS Result;

    結果:

    An invalid value was specified for argument 2.
    

    エスケープ可能な文字

    執筆時点では、STRING_ESCAPE() 関数は、次の表にリストされているJSON特殊文字のみをエスケープできます。

    特殊文字 エンコードされたシーケンス
    引用符( ") \ "
    逆スラッシュ(\) \ |
    ソリドゥス(/) \ /
    バックスペース \ b
    フォームフィード \ f
    改行 \ n
    キャリッジリターン \ r
    水平タブ \ t
    制御文字 エンコードされたシーケンス
    CHAR(0) \ u0000
    CHAR(1) \ u0001
    CHAR(31) \ u001f

    1. 名前が不明なPostgreSQLドロップ制約

    2. SQL Serverで時間を比較するにはどうすればよいですか?

    3. OracleDatabaseでのOracleJDeveloper12cの使用、パート1

    4. ストリーミングレプリケーションとMariaDB10.4を使用した大規模なトランザクションの処理