2017-05-08 1 views
2

は私がSQL Developerでそれを実行すると、OracleのSQL DeveloperのORA-00918:あいまいJavaで定義された列は、SQL Developerは

select PRZYJECIE_NA_ODDZIAL.PRZYJECIEID as Numer_przyjęcia, 
     PRZYJECIE_NA_ODDZIAL.PACJENTID as ID_pacjęta, 
     PACJENT.PACJENTIMIE as Imię, 
     PACJENT.PACJENTNAZWISKO as Nazwisko, 
     PACJENT.PESEL as PESEL, 
     PRZYJECIE_NA_ODDZIAL.ROZPOZNANIE AS DIAGNOZA, 
     PRZYJECIE_NA_ODDZIAL.NAZWAODDZIALU as ODDZIAŁ, 
     PRZYJECIE_NA_ODDZIAL.DATAPRZ as DATA_PRZYJĘCIA, 
     LEKARZ.LEKARZIMIE as Imię_lekarza, 
     LEKARZ.LEKARZNAZWISKO as Nazwisko_lekarza, 
     PRZYJECIE_NA_ODDZIAL.UWAGI 
    from SZPITAL_DB.PACJENT, SZPITAL_DB.LEKARZ, SZPITAL_DB.PRZYJECIE_NA_ODDZIAL 
where PRZYJECIE_NA_ODDZIAL.PACJENTID = PACJENT.PACJENTID 
    and PRZYJECIE_NA_ODDZIAL.LEKARZID = LEKARZ.LEKARZID 

で選択を作成した作品は非常に良い作品: enter image description here

しかしとき

ORA-00918: column ambiguously defined 

Javaコード:

0123私はエラーを得たのJavaにそれを置きます
+0

編集が便利ですが、2つのリクエストが同じであることを確認するのがより難しくなりましたので、ここに入れておきます:** **私が確認したところ、**以前はまったく同じでしたが、これは簡単なタイプミスではありません。そして編集済みの書式設定では、すべての接頭辞の前に接頭辞が付いていることが分かります。したがって、あいまいさはありません。 –

+0

各列参照で明示的にテーブルを定義しているので、このエラーは発生しません。つまり、どこかにタイプミスがあるか、使用しているJavaライブラリにエラーがあることがわかりました。私は最終的にデータベースに渡されているコールをインターセプトしようとすることをお勧めします。実際には、SQL Developerを使用しているJavaを介して実際に同じスクリプトを送信しているわけではありません。 – DanK

+0

SQL文をできるだけ小さくしてください。問題を分析するために完全な文が必要です。読み込み/比較/分析が容易になるようにフォーマットします。 – miracle173

答えて

0

あなたが投稿したコードからの私の最高の推測で、次の文から

SZPITAL_DB.PACJENT, 
SZPITAL_DB.LEKARZ, 
SZPITAL_DB.PRZYJECIE_NA_ODDZIAL 

が定義されているように見えていますが、例えばのためのテーブル名を使用して、それを参照するように見えますPRZYJECIE_NA_ODDZIALのようなデータベース名なし。 SELECTステートメントのSZPITAL_DB.PACJENTIDLEKARZIDについても同様です。

@DanKに記載されているように、おそらくあなたの表名にスペルミスがありますか?

+1

'FROM'句で完全修飾されている場合、選択リストのスキーマを繰り返す必要はありません。**カラム**があいまいに定義されることはありません。 –

+0

正直、十分にありがとう! – Koshux

関連する問題