2

実際の二重引用符をエスケープするために二重引用符を使用してテーブルを作成すると、Oracle の SQL 構文では機能しないようです。

CREATE TABLE "MyTable" (
"Col""umn 1" varchar(168)
);

上記は失敗します。'Col"umn 1' を作成するために二重引用符をエスケープする方法はありますか?

4

3 に答える 3

9

それはいけません。ドキュメントによると:

引用符で囲まれていない識別子には、データベースの文字セットの英数字と、アンダースコア(_)、ドル記号($)、ポンド記号(#)のみを含めることができます。データベースリンクには、ピリオド(。)と「at」記号(@)を含めることもできます。Oracleでは、引用符で囲まれていない識別子に$と#を使用しないことを強くお勧めします。

引用符で囲まれた識別子には、スペースだけでなく、任意の文字や句読点を含めることができます。ただし、引用符で囲まれた識別子と引用符で囲まれていない識別子のどちらにも、二重引用符またはヌル文字(\ 0)を含めることはできません。

于 2013-01-24T12:05:37.740 に答える
2

もちろん、ユニコードを使用することもできます!

SELECT
    1 "“Unicode Rocks”",
    2 "ʺSooo cooolʺ",
    3 ""My co-workers love me""
FROM DUAL
于 2015-07-23T19:49:26.493 に答える
0

たぶんこれが役立つでしょう...しかし、そのような列を持つテーブルを作成しないでください:

CREATE TABLE DropMe AS
SELECT rpad('X', 168, ' ') "Col''umn1" FROM dual
/

SELECT * FROM DropMe
/

SQL>

Col"umn1
-------------------------------------.....
X           
于 2013-01-24T13:38:48.543 に答える