2011-07-20 16 views
2

にエラーとが必要ですこれは、クエリでは、Oracle SQLクエリ

ORA-00933: SQL command not properly ended 

間違っている可能性がどのような任意のアイデア?

編集:

values = [PropertyValue:8802745684882, PropertyValue:8796177006593, PropertyValue:8796201713665, 8796110520402, PropertyValue:8796125954190, PropertyValue:8796177006593, PropertyValue:8796201713665, 8796101705810] 

編集2:

クエスチョンマークは、それぞれの項目のPKのに置き換えられクエリは、いくつかの独自のソフトウェアシステムの奥深くに実行され

だから私はそれを実行するコードを正確には知らない。

編集3:

私は少し短いです1つの以上のクエリを見つけましたが、同じエラーメッセージで結果:

values = [PropertyValue:8799960601490, PropertyValue:8796177006593, 8796110520402] 

SELECT DISTINCT pprom.pk 
FROM 
( 
    SELECT 
     item_t0.SourcePK as pk 
    FROM 
     links item_t0 
    WHERE (? = item_t0.TargetPK AND item_t0.SourcePK in (?)) 
     AND (item_t0.TypePkString=?) 
) AS pprom 

は、次の値を使用して編集4

私は値を交換した後、DBに送信されるSQLコードが見つかりました:私はまた、内側のSELECT文を実行し、[OK]を実行し、その結果として、単一のPKを返すだけであることを試みた

SELECT DISTINCT pprom.pk 
FROM 
( 
    SELECT 
     item_t0.SourcePK as pk 
    FROM 
     links item_t0 
    WHERE (8801631769490 = item_t0.TargetPK AND item_t0.SourcePK in (8796177006593)) 
     AND (item_t0.TypePkString=8796110520402) 
) AS pprom 

を。

+1

は正しい方向への一歩になります= D –

+0

それらの疑問符は何ですか?特にこの部分: '(?、?)'? –

+0

このコマンドをどのように実行しますか? –

答えて

3

質問に明白な構文エラーが見つかりませんでしたので、?プレースホルダを実際の値に変換するために使用しているクライアントライブラリが問題であると推測します。あなたの質問の編集は、8つの整数があるが、6 PropertyValueの項目だけの一種のダンプを表示します。それが問題ではないことを確認してください。IN (?, ?)には2つのパラメータが必要です。

編集

あなたがサブクエリにエイリアスを割り当てるときASキーワードを削除してください:あなたのクエリが読みやすく

SELECT DISTINCT pprom.pk 
FROM 
( 
    SELECT 
     item_t0.SourcePK as pk 
    FROM 
     links item_t0 
    WHERE (8801631769490 = item_t0.TargetPK AND item_t0.SourcePK in (8796177006593)) 
     AND (item_t0.TypePkString=8796110520402) 
) AS pprom 
    ^^ 
+0

パラメータがない場合、ORA-00933エラーが発生しますか?私はそれがクエリの一般的な構文と関係するかもしれないと思った(しかし、あなたが推測したように私はOracleの専門家ではない)。 –

+0

確かに** **もしそれが欠けていたなら。あなたのアプリはそれを偽の値で埋めるかもしれません。 (私たちはあなたのコードについては何も知らない)。 –

+0

Álvaroが正しい。** AS AS pprom'の** AS' **が問題を引き起こしている。 –

関連する問題