2 Stimmen

Was würde dazu führen, dass diese Abfrage nicht mehr funktioniert?

Ich arbeite mit einer Legacy-Java-App, die Daten aus Oracle abruft. Eine der Abfragen scheint nicht mehr zu funktionieren:

select {hier.*} from ecadmin.dept_hier_cache hier
connect by prior parent_deptid = deptid
start with deptid = '1234';

Wenn ich die '{}' Klammern um hier.* entferne, funktioniert alles wie gewohnt. Nun, soweit ich das beurteilen kann, hat sich die App seit über einem Jahr nicht geändert, das bedeutet, dass eine Änderung an Oracle der wahrscheinlichste Übeltäter ist. Irgendwelche Ideen, was sich geändert haben könnte? Versionsupgrade, eine Einstellung wurde geändert, etwas anderes?

4voto

Gary Myers Punkte 34373

Soweit ich das beurteilen kann, hätte das nie funktioniert. Es war niemals gültige Syntax, und ich kann nicht verstehen, warum jemand überhaupt geschweifte Klammern im Code verwenden würde.

Vorausgesetzt, Sie haben eine Versionskontrolle, würde ich überprüfen, ob der Code jemals eine Version ohne die Klammern hatte. Wenn ja, würde ich vermuten, dass der Code im Quelltext geändert wurde, aber nie übernommen wurde.

Möglicherweise wurde der String gefiltert/bereinigt, bevor er ausgeführt wurde.

Können Sie sagen, wann es aufgehört hat zu funktionieren und was um dieses Datum herum passiert ist?

0voto

Doug Porter Punkte 7611

Das einzige, was ich über die geschweifte Klammersyntax mit Oracle und JDBC sehe, ist hier unter Embedded SQL92 Syntax. Wie Gary sagt, würde ich nicht erwarten, dass diese Abfrage sofort ausgeführt wird.

Aber hat möglicherweise der zugrunde liegende Oracle-Treiber oder die Oracle-Version geändert? Haben sich die Spalten in dieser Tabelle dept_hier_cache so verändert, dass das .* jetzt etwas ganz anderes zurückgibt als früher?

Ist dept_hier_cache eine Ansicht? Wenn ja, hat sich die Ansicht oder die Berechtigungen der Benutzer bezüglich dieser Ansicht geändert?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X