sql >> データベース >  >> RDS >> Oracle

ORA-00918:SELECTであいまいに定義された列*

    クエリのプロジェクションは、指定された名前のインスタンスを1つだけ持つことができます。 WHERE句が示すように、IDという列を持つテーブルがいくつかあります。 *を選択しているため 投影にはIDと呼ばれるいくつかの列があります。あるいは、コンパイラがORA-00918を投げつけていなかったとしたら。

    解決策は非常に簡単です。名前付きの列を明示的に選択するには、射影を拡張する必要があります。次に、重複する列を除外して、(たとえば)COACHES.IDだけを保持するか、列エイリアスを使用することができます:coaches.id as COACHES_ID

    おそらくそれは多くのタイピングとしてあなたを襲うでしょう、しかしそれは唯一の方法です。よろしければ、SELECT * 実稼働コードでは悪い習慣と見なされています。明示的に名前が付けられた列の方がはるかに安全です。



    1. OracleでSQLServerのIsNull()関数に相当するものは何ですか?

    2. SQLiteで2つの日付の差を計算する方法

    3. バックエンドデータベースが新しい場所に移動した後、Access2016でリンクされたテーブルを更新する方法

    4. EclipseでGlassfishサーバーを手動で構成する方法