実際の二重引用符をエスケープするために二重引用符を使用してテーブルを作成すると、Oracle の SQL 構文では機能しないようです。
CREATE TABLE "MyTable" (
"Col""umn 1" varchar(168)
);
上記は失敗します。'Col"umn 1' を作成するために二重引用符をエスケープする方法はありますか?
それはいけません。ドキュメントによると:
引用符で囲まれていない識別子には、データベースの文字セットの英数字と、アンダースコア(_)、ドル記号($)、ポンド記号(#)のみを含めることができます。データベースリンクには、ピリオド(。)と「at」記号(@)を含めることもできます。Oracleでは、引用符で囲まれていない識別子に$と#を使用しないことを強くお勧めします。
引用符で囲まれた識別子には、スペースだけでなく、任意の文字や句読点を含めることができます。ただし、引用符で囲まれた識別子と引用符で囲まれていない識別子のどちらにも、二重引用符またはヌル文字(\ 0)を含めることはできません。
もちろん、ユニコードを使用することもできます!
SELECT
1 "“Unicode Rocks”",
2 "ʺSooo cooolʺ",
3 ""My co-workers love me""
FROM DUAL
たぶんこれが役立つでしょう...しかし、そのような列を持つテーブルを作成しないでください:
CREATE TABLE DropMe AS
SELECT rpad('X', 168, ' ') "Col''umn1" FROM dual
/
SELECT * FROM DropMe
/
SQL>
Col"umn1
-------------------------------------.....
X