我在Oracle SQL Developer中创建了一个select
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
但是当我把它放到Java中时我得到了一个错误:
ORA-00918: column ambiguously defined
Java代码:
private void Get_Data(){
String sql="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";
try{ pst=con.prepareStatement(sql);
rs= pst.executeQuery();
jTable1.setModel(DbUtils.resultSetToTableModel(rs));
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
答案 0 :(得分:0)
根据您发布的代码我最好的猜测,您似乎已经定义了
SZPITAL_DB.PACJENT,
SZPITAL_DB.LEKARZ,
SZPITAL_DB.PRZYJECIE_NA_ODDZIAL
FROM语句中的,但您似乎使用例如{。{}}的表名来引用它,而没有数据库名称。 SELECT语句中的PRZYJECIE_NA_ODDZIAL
。这同样适用于SZPITAL_DB.
和PACJENTID
。
正如@DanK所提到的,也许你的表名中有拼写错误?