ほとんどの場合、固定クエリ (静的な最終文字列) が機能し、断続的に次のエラーがスローされる原因を知っている人はいますか?
内部原因: java.sql.SQLException: ORA-00904: : 無効な識別子
クエリは 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 = ?))