私のようなクエリがあります:
SELECT column as averyveryveryverylongalias (more than 30 characters)
FROM Table_name
エラーを返しますORA-00972識別子が長すぎます、エイリアスを短くせずに動作させるヒントはありますか?
ありがとう
いいえ、Oracleバージョン12.2より前では、識別子は30文字を超えることはできません。 Oracle SQL言語リファレンス を参照してください。
ただし、 バージョン12.2からは最大128バイトの長さにすることができます (注:文字ではなくバイト)。
このエラーは、引用符と単一引用符の風変わりな処理によっても発生します。クエリ内に単一引用符を含めるには、doubled単一引用符を使用します。
これは機能しません
select dbms_xmlgen.getxml("Select ....") XML from dual;
またはこれ
select dbms_xmlgen.getxml('Select .. where something='red'..') XML from dual;
しかし、これは動作します
select dbms_xmlgen.getxml('Select .. where something=''red''..') XML from dual;
Oracleが識別子の名前を保存するオブジェクト(たとえば、ユーザーのテーブル名はUSER_TABLESという名前のテーブルに保存され、ユーザーの列名はUSER_TAB_COLUMNSという名前のテーブルに保存されます)には、NAME列(たとえばTABLE_NAME var_char2(30)のサイズのUSER_TABLES)...そして、オブジェクトまたは識別子のすべてのシステムテーブルを通じて均一です-
DBA_ALL_TABLES ALL_ALL_TABLES USER_ALL_TABLES
DBA_PARTIAL_DROP_TABS ALL_PARTIAL_DROP_TABS USER_PARTIAL_DROP_TABS
DBA_PART_TABLES ALL_PART_TABLES USER_PART_TABLES
DBA_TABLES ALL_TABLES USER_TABLES
DBA_TABLESPACES USER_TABLESPACES TAB
DBA_TAB_COLUMNS ALL_TAB_COLUMNS USER_TAB_COLUMNS
DBA_TAB_COLS ALL_TAB_COLS USER_TAB_COLS
DBA_TAB_COMMENTS ALL_TAB_COMMENTS USER_TAB_COMMENTS
DBA_TAB_HISTOGRAMS ALL_TAB_HISTOGRAMS USER_TAB_HISTOGRAMS
DBA_TAB_MODIFICATIONS ALL_TAB_MODIFICATIONS USER_TAB_MODIFICATIONS
DBA_TAB_PARTITIONS ALL_TAB_PARTITIONS USER_TAB_PARTITIONS
Argosレポートシステムをフロントエンドとして使用し、Oracleを使用しています。このエラーが発生したのは、先頭に二重引用符があり、末尾に単一引用符がある文字列が原因でした。二重引用符を単一引用符に置き換えると、問題が解決しました。
最近springbootを1.4.3にアップグレードした場合、ymlファイルに変更を加える必要がある場合があります。
1.3のyml:
jpa:
hibernate:
namingStrategy: org.hibernate.cfg.EJB3NamingStrategy
1.4.3のyml:
jpa:
hibernate:
naming: physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl