1

N文字列リテラルを Unicode として修飾するには、Transact-SQL で接頭辞を付ける必要があることがわかっています。私の質問は、これが ANSI SQL などの標準の一部であるかどうかです。他のデータベース プラットフォームはこれを理解しますか?

アップデート:

私のMig#での実際の実験では、Unicode リテラルを操作するために次のことを示しています。

  • SQL Server (T-SQL) のすべてのエディション: プレフィックスが必要
  • MySql: 接頭辞はオプション
  • SQLite: プレフィックスはサポートされていません
  • Oracle: プレフィックスはサポートされていますが、追加の構成が必要になる場合があります (「NCHAR 文字列リテラルの置換」および「Unicode データを Oracle に保存する方法」を参照してください) 。
  • Teradata: Unicode はサポートされていません
4

2 に答える 2

7

T-SQL の定数に関する MSDN ドキュメントによると、N'プレフィックスは "SQL-92" 標準の一部です。

Unicode 文字列の形式は文字列に似ていますが、先頭に N 識別子が付きます (N は SQL-92 標準の National Language を表します)。

ウィキペディアによると、「国別キャラクター」文字列がそのバージョンの標準に追加されました。その記事は、実際の標準ドキュメントのように見えるものを参照していますhttp://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txtそこには次のように書かれています:

<key word> の NATIONAL CHARACTER は、特定の実装定義の文字レパートリーを持つ文字列データ型を指定するために使用されます。その文字レパートリーでリテラルを表すために、特別な構文 (N'string') が用意されています。

ですから、はい、それは間違いなく標準の一部であるようです.

アップデート:

Damien_The_Unbeliever がここのコメントで指摘したように、上記のリンクの標準ドキュメントは実際には草案です(実際の標準ドキュメントは公開されていないと思われます) が、私の意見では、少なくとも国民性N重視、それが基準です。

于 2015-07-07T13:54:04.403 に答える
1

セクションの下

4.2 文字列

SQL92 仕様 ( http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt )

s NATIONAL CHARACTER は、特定の実装定義の文字レパートリーを持つ文字列データ型を指定するために使用されます。その文字レパートリーでリテラルを表すために、特別な構文 (N'string') が用意されています。

はい、最も広く使用されている仕様によると、標準の ANSI です。

于 2015-07-07T13:59:14.267 に答える