144

TSQLではSelect [table] from tablename、「テーブル」という名前の列を選択するようなものを使用できます。

Oracleの予約語に対してこれを行うにはどうすればよいですか?

編集:中括弧、二重引用符、一重引用符、および逆引用符を試しましたが、機能しません...

さらに明確にするために、誰かがコメントという名前の列があります。これは予約語であるため、オラクルはそれを使って選択しようとしてぐらついているので、クエリを解析するときに失敗します。テーブル名から「コメント」を選択してみましたが、うまくいきませんでした。ケースを確認して戻ってきます。

4

5 に答える 5

211

クイック検索から、Oracleは二重引用符("たとえば"table")を使用しているように見え、正しい大文字小文字が必要なようです。一方、MySQLは、互換性のために二重引用符を使用するように設定されている場合を除き、デフォルトでバッククォート( `)を使用します。

于 2009-07-22T00:05:30.820 に答える
37

Oracleでは通常、SQLステートメントの識別子の名前を区切るために二重引用符が必要です。

SELECT "MyColumn" AS "MyColAlias"
FROM "MyTable" "Alias"
WHERE "ThisCol" = 'That Value';

ただし、二重引用符を省略できるようになっています。その場合、識別子は静かに大文字に変換されます。

SELECT MyColumn AS MyColAlias
FROM MyTable Alias
WHERE ThisCol = 'That Value';

内部で次のようなものに変換されます。

SELECT "ALIAS" . "MYCOLUMN" AS "MYCOLALIAS"
FROM "THEUSER" . "MYTABLE" "ALIAS"
WHERE "ALIAS" . "THISCOL" = 'That Value';
于 2009-07-22T02:25:52.597 に答える
8

列名の1つとしてキーワードを使用した場合、Oracleでは二重引用符が機能しました。

例えば:

select t."size" from table t 
于 2017-03-30T14:36:14.150 に答える
4

Oracleは二重引用符を使用しますが、オブジェクト名を大文字にする必要があります(例:「TABLE」)。デフォルトでは、二重引用符なしでオブジェクトを作成する場合、たとえば

CREATE TABLE table AS ...

Oracleはオブジェクトを大文字で作成します。ただし、二重引用符を使用しない限り、参照では大文字と小文字は区別されません。

于 2009-07-22T00:19:28.857 に答える
-9

TABLEOracleによって予約されているため、列の名前を別の名前に変更する必要があります。

Oracleのすべての予約語は、Oracleビューで確認できますV$RESERVED_WORDS

于 2013-12-05T10:47:18.640 に答える