Una doppia virgoletta viene utilizzata per denotare un identificatore tra virgolette , ovvero un nome oggetto che non è composto esclusivamente da caratteri alfanumerici, $
e #
. Per inciso, ti consigliamo di non utilizzare identificatori tra virgolette. Questo è il motivo del tuo errore ORA-00984 originale. Oracle presume che "tes"
è una colonna, non una stringa, e non è possibile utilizzare un nome di colonna nella clausola VALUES di un'istruzione INSERT, come spiegato nel messaggio di errore
.
Per inserire la stringa "tes"
in una tabella è necessario assicurarsi che sia quotato correttamente
:
Qualsiasi carattere può far parte di una stringa, quindi per inserire una virgoletta doppia in una tabella è necessario racchiuderla tra virgolette singole.
insert into users (id, name, username)
values (null, '"tes"', '"hello"');
Ecco un SQL Fiddle per dimostrare.
Un'altra cosa da notare. Affermi che questa query viene generata automaticamente, il che significa che puoi essere vulnerabile all'iniezione SQL. Consiglio vivamente di leggere le variabili di binding in Guarding Against Iniezione SQL .