誰もが次のエラーを投げる断続的に続いほとんどの時間を動作するように固定されたクエリ(静的な最終文字列)を引き起こすことができるか知っているん:断続的ORA-00904:無効な識別子
Inner cause: java.sql.SQLException: ORA-00904: : invalid identifier
クエリがありますJDBC接続を介して実行されます。
ここで不思議なことは、識別子が空であり、クエリが断続的に機能することです。ログアウトされたSQLをplsqlデベロッパーで実行すると、すべて正常に動作します。
アイデア?
ここにクエリがあります。セキュリティ上の理由から難読化されています。
SELECT b.field1,
b.field2,
b.field3,
my_func(b.field4, ?, nvl2(b.field5, 1, 0)) cardnumber,
b.field6,
b.field7,
b.field8,
b.field9,
b.field10,
b.field11,
b.field12,
b.field13,
b.field14,
b.field15,
b.field16,
b.field17,
b.field18,
b.field19,
b.field20,
b.field21,
b.field22,
b.field23,
b.field24,
b.field25,
b.field26,
my_func(b.field27, ?, nvl2(b.field28, 1, 0)) account_number,
b.field29,
s.field30 source_name,
b.field31
from table1 b
left join table2 s
on b.source_id = s.source_id
where b.fieldx in
(select fieldx from tablex where fieldy = ?)
and customer_id = ?
and state not in (7, 12, 1, 3, 13)
UNION
SELECT b.field1,
b.field2,
b.field3,
my_func(b.field4, ?, nvl2(b.field5, 1, 0)) cardnumber,
b.field6,
b.field7,
b.field8,
b.field9,
b.field10,
b.field11,
b.field12,
b.field13,
b.field14,
b.field15,
b.field16,
b.field17,
b.field18,
b.field19,
b.field20,
b.field21,
b.field22,
b.field23,
b.field24,
b.field25,
b.field26,
my_func(b.field27, ?, nvl2(b.field28, 1, 0)) account_number,
b.field29,
s.field30 source_name,
b.field31
from table1 b
left join table2 s
on b.source_id = s.source_id
where b.field3 in
(select fieldx from table7 where fieldy = ?)
and customer_id = ?
and state in (1, 3)
AND (b.field1 not in
(select b.fieldx
from table1 b,
table3 sb,
table4 sba
where b.source_id = sb.source_id
and sb.attribute_id = sba.attribute_id
and sba.name = 'HIDE_IN_MENU'
and b.customer_id = ?))
あなたはSQLを投稿できますか? – gnuchu
あなたの識別子を特定させてもらえますか – V4Vendetta
難読化されたバージョンのSQLを追加しました – Ellis