6

古典的なエラーが発生しています:

ORA-00918: 列の定義があいまいです

通常、私はそれを解決する方法を知っていますが、今の問題は、700 行のクエリを使用していることです。

列を識別する方法はありますか?

4

5 に答える 5

7

二分探索を試みましたか?

例えば

元のクエリが次のようになっている場合

Select  col1 
       ,col2
       ,col3
       ,col4
from MyTable
  1. 後半のコメントから始めることができます
Select  col1
       ,col2
       /*,col3
       ,col4 */
from MyTable
  1. それでもエラーが発生する場合は、残りの半分の列にコメントを付けてクエリを再度実行します。
Select col1
       /*,col2 */
      ,col3
      ,col4
from MyTable

それでもエラーが発生する場合、問題は にあります。col1それ以外の場合は、変更する必要がありますcol2

于 2012-09-18T09:48:54.960 に答える
6

あいまいな列のエラー メッセージは、同じ列名を共有するクエリで 2 つ (またはそれ以上) の列を結合したことを示します。

これを解決する適切な方法は、クエリ内の各テーブルにエイリアスを付け、すべての列参照の前に適切なエイリアスを付けることです。このような大規模なクエリでは楽しくないことに同意しますが、前任者の怠惰さの代償を払わなければならないのではないかと心配しています。

于 2012-09-17T15:26:58.057 に答える