Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie bestimmt man den Typ der SQL-Abfrage für jdbcTemplate in JAVA?

in Oracle können Sie eine Abfrage parsen, bevor Sie sie ausführen

declare
    l_theCursor     integer default dbms_sql.open_cursor;
begin
    dbms_sql.parse(  l_theCursor,  'SELECT 1 FROM DUAL', dbms_sql.native );
end;

Dies ist sowieso eine gute Vorgehensweise, da Sie Ihr SQL von Benutzereingaben erhalten. wenn die Anweisung nicht gültig ist, erhalten Sie die entsprechende Fehlermeldung. Natürlich wird die Anweisung von obigem nicht ausgeführt.

Nachdem Sie die Anweisung analysiert haben, können Sie v$sql abfragen, um den Befehlstyp herauszufinden:

select command_type, sql_text
from v$sql t
where sql_text = 'SELECT 1 FROM DUAL';

Die verschiedenen Befehlstypen sind wie folgt:

2 - EINFÜGEN

3 -- AUSWÄHLEN

6 -- AKTUALISIEREN

7 - LÖSCHEN

189 -- MERGE

Sie können die vollständige Liste durch select * from audit_actions order by action abrufen

Hoffe das hilft :)