Intermittierende ORA-00904: : Ungültiger Bezeichner
Weiß jemand was das sein könnte verursacht eine Feste Abfrage (static final String) arbeiten die meisten der Zeit, und dann zeitweise werfen die folgende Fehlermeldung:
Innere Ursache: java.sql.SQLException: ORA-00904: : Ungültiger Bezeichner
Die Abfrage ausgeführt wird durch eine JDBC-Verbindung.
Das merkwürdige ist hier, dass die id leer ist, und natürlich, dass die Abfrage funktioniert nur zeitweise. Wenn ich den sql-ausgeloggt wurde, und führen Sie es durch plsql-developer hat alles Prima funktioniert.
Irgendwelche Ideen?
Hier ist die Abfrage. Es verschleiert wurde, aus Gründen der Sicherheit.
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 = ?))
Könntest du poste den sql?
Sie lassen uns erkennen Sie Ihre Kennung
Hinzugefügt eine verschleierte version des sql
Sie lassen uns erkennen Sie Ihre Kennung
Hinzugefügt eine verschleierte version des sql
InformationsquelleAutor Ellis | 2011-02-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie wird die Anweisung ausgeführt ?
Wenn es irgendeine form der Verkettung, anstatt die Bindung von Variablen, die ein Problem verursachen können. Vielleicht bind-Werte nicht definiert sind, oder es sind einige junk-Werte.
Könnte der Fehler kommt aus der Ausführung von MY_FUNC anstatt der aufrufenden Anweisung.
InformationsquelleAutor Gary Myers
Sieht aus wie eine Art Fehler 5355253, 5458021, 5717746 etc.
Versuchen zu Spülen, Gemeinschaftspool, dies hilft in den meisten Fällen. Wenn es nicht funktioniert, können Sie zusätzliche Infos wie die DBMS-version und Plattform.
Finden Sie mehr info über oracle support-portal
Geschafft, jemanden zu finden, logge mich in ein portal... der Mangel Beschreibungen suchen über Recht, insbesondere angesichts der Tatsache, dass das beobachtete Verhalten wird unterbrochen. Wird versuchen Sie die empfohlenen Vorgehensweisen für die Spülung der shared pool, wenn es Nächstes passiert, um einzugrenzen, die Ursache, und update-mit Ergebnissen. Vielen Dank für die Hinweise so weit.
Nur um zu aktualisieren, - wenn dies geschah letzten Zeit bat ich den shared-pool gespült werden, aber das hatte keinen Effekt.
InformationsquelleAutor Lev Khomich
Ich hatte ein ähnliches problem mit Oracle 10g und java, die die Verwendung von PesonID in der folgenden Zeile die den Fehler verursacht wurde.
aber wenn ich Folgendes funktionierte es gut.
der Schlüssel ist also, die zusätzlichen Anführungszeichen.
InformationsquelleAutor Richipal