ich muss auf eine "fremde" Oracle-DB zugreifen um hier ggf. einen Datensatz zu löschen.
Jetzt hat der "Erfinder" der Tabllen die tolle Idee gehabt, ein Tabellenfeld (das Schlüsselfeld) den als FILENAME zu definieren.
Wenn ich jetzt einen Datensatz löschen möchte:
TRY.
EXEC SQL.
DELETE FROM DB.Tabelle
WHERE FILENAME = iv_filename.
ENDEXEC.
CATCH cx_sy_native_sql_error INTO lo_error.
ENDTRY.
Erhalte ich einen ORA-01747 invalid user.table.column, table.column, or column specification.
Meine Vermutung liegt darin, das FILENAME auch ein Oracle - Wort ist und deshalb das so nicht funktionieren wird.
Oder ist einfach meine Syntax falsch ?
Wenn ich
EXEC SQL.
DELETE FROM DB.Tabelle
WHERE FILENAME = iv_filename.
ENDEXEC.
versuche, bekomme ich einen
ORA-00919: invalid function
zurück.
Wenn du auf eine fremde Datenbank zugreifen willst, dann musst du diese erst in der DB02 oder DBACOCKPIT unter Systemlandscape --> Database Connections definieren. Dann kannst du mit exec SQL connect eine Verbindung herstellen (siehe online Doku "Statements for establishing database Connections").
Danke für den Hinweis, das mache ich zuvor auch .
Select , Update und Insert funktioniert auch ohne Probleme , nur der Delete meint es nicht gut mit mir .
Dele , du bist mein Held des bisherigen Jahres .
Das war es ! Man bin ich dämlich . Ich habe 2 Std alles probiert , aber den Punkt habe ich nicht gesehen .
Danke