这是查询:
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:
我发现还有一个更短的查询,但会导致相同的错误消息:
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 作为结果。