0

私はオラクルが初めてです。データベースにレコードがなく、*max(col_name)* を取得しようとしていますが、無効な識別子の値が返されます。それに対処する方法は?

4

1 に答える 1

1

Oracleは関数と式を二重引用符でSTRINGとして要求します

一般的にはそうしません...確かに、のような標準の組み込み関数名ではそうではありませんMAX

引用符で囲まれた識別子で定義されたオブジェクト名を二重引用符で囲むだけで済みます。

あなたのコメントから、あなたのテーブルは次のように作成されたようです:

create table "TABLENAME" ("sub_id" number, ...);

...これは、参照するたびに、列名を常に二重引用符で囲む必要があることを意味します。これは引き続き苦痛であり、問​​題の原因となるため、大文字と小文字が混在する名前や、そのような引用が必要な名前は使用しないことを強くお勧めします。

引用符で囲まれていない識別子が使用されている場合 (または引用符で囲まれた名前が のように大文字で"SUB_ID"ある場合)、Oracle は大文字と小文字を区別せず、これらのいずれかが有効になります。

select max(sb_id) from ...
select max(SB_ID) from ...
select max(Sb_Id) from ...

于 2013-05-04T06:32:54.680 に答える