これはクエリです:
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=? )
UNION
SELECT
item_t1.TargetPK as pk
FROM
cat2prodrel item_t1
WHERE ( item_t1.SourcePK in (? ) AND item_t1.TargetPK in (?,?))
AND (item_t1.TypePkString=? )
) AS pprom
そして、これはエラーです:
ORA-00933: SQL command not properly ended
何が間違っている可能性がありますか?
編集:
疑問符は、それぞれの項目の PK に置き換えられます。
values = [PropertyValue:8802745684882, PropertyValue:8796177006593, PropertyValue:8796201713665, 8796110520402, PropertyValue:8796125954190, PropertyValue:8796177006593, PropertyValue:8796201713665, 8796101705810]
編集2:
クエリは独自のソフトウェア システムの奥深くで実行されるため、クエリを実行するコードが正確にはわかりません。
編集3:
少し短いクエリをもう 1 つ見つけましたが、同じエラー メッセージが表示されます。
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
次の値を使用します。
values = [PropertyValue:8799960601490, PropertyValue:8796177006593, 8796110520402]
編集 4
値を置き換えた後にデータベースに送信される SQL コードを見つけました。
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
内部の SELECT ステートメントも実行しようとしましたが、それだけで問題なく実行され、結果として単一の PK が返されます。