0

このクエリの何が問題なのかわかりません。「コマンドが正しく終了していません」というコンパイル時エラーが発生します。

内部クエリで 4 つのレコードが返されます。

select WGN3EVENTPARTICIPANT.EVENTUID 
from 
    (Select WGN_V_ADDRESS_1.ADDRESSUID1 as add1,
            WGN_V_ADDRESS_1.ADDRESSUID2 as add2 
     from WGN3USER inner join 
          WGN_V_ADDRESS_1 on WGN_V_ADDRESS_1.USERID=wgn3user.USERID 
      where WGN3USER.USERNAME='FIRMWIDE\khuraj'
    ) as ta
    ,WGN3EVENTPARTICIPANT 
 where (ta.ADDRESSUID1=WGN3EVENTPARTICIPANT.ADDRESSUID1) AND    
       (ta.ADDRESSUID2=WGN3EVENTPARTICIPANT.ADDRESSUID2)

Oracleで実行しています。

4

4 に答える 4

1

他の人が指摘したように、元のコード サンプルにはいくつかのバグが含まれています。ただし、報告している特定のエラー (ORA-00933) の原因はこれです。

Oracleでは、のエイリアスASにのみ使用されます。したがって、次のようにインライン ビューにエイリアスを設定する必要があります。

... where WGN3USER.USERNAME='FIRMWIDE\khuraj'
    )  ta
于 2012-10-31T11:03:38.753 に答える
1

フィールド エイリアスを使用するように where 句を変更する必要があります。

 where (ta.add1=WGN3EVENTPARTICIPANT.ADDRESSUID1) AND    
       (ta.add2=WGN3EVENTPARTICIPANT.ADDRESSUID2)

編集済み

asテーブル エイリアスの予約語を削除してみてください。

) as ta -> ) ta
于 2012-10-31T10:59:13.927 に答える
0
select WGN3EVENTPARTICIPANT.EVENTUID 
from 
    (Select WGN_V_ADDRESS_1.ADDRESSUID1 as add1,
            WGN_V_ADDRESS_1.ADDRESSUID2 as add2 
     from WGN3USER inner join 
          WGN_V_ADDRESS_1 on WGN_V_ADDRESS_1.USERID=wgn3user.USERID 
      where WGN3USER.USERNAME='FIRMWIDE\khuraj'
    ) as ta
    left outer join WGN3EVENTPARTICIPANT on 
 ta.ADDRESSUID1=WGN3EVENTPARTICIPANT.ADDRESSUID1 AND
       ta.ADDRESSUID2=WGN3EVENTPARTICIPANT.ADDRESSUID2
于 2012-10-31T11:05:06.183 に答える
0

「\」はエスケープする必要があるエスケープ文字です:

'FIRMWIDE\khuraj'で変更'FIRMWIDE\\khuraj'

そして、外側の where 句は間違ったエイリアスを参照しています:ta.ADDRESSUID1代わりにta.add1ta.ADDRESSUID2代わりにta.add2

于 2012-10-31T11:01:49.717 に答える