Ett dubbelt citattecken används för att beteckna en citerad identifierare , det vill säga ett objektnamn som inte enbart består av alfanumeriska tecken, $
och #
. För övrigt rekommenderar vi att du inte gör det använda citattecken. Detta är anledningen till ditt ursprungliga ORA-00984-fel. Oracle antar att "tes"
är en kolumn, inte en sträng, och du kan inte använda ett kolumnnamn i VALUES-satsen i en INSERT-sats, som förklaras i felmeddelandet
.
För att infoga strängen "tes"
i en tabell måste du se till att den är citerad korrekt
:
Alla tecken kan vara en del av en sträng, så för att infoga ett dubbelcitattecken i en tabell måste du omsluta det inom enkla citattecken.
insert into users (id, name, username)
values (null, '"tes"', '"hello"');
Här är en SQL-fiol att demonstrera.
Ytterligare en sak att notera. Du uppger att den här frågan genereras automatiskt, vilket betyder att du kan vara sårbara för SQL-injektion. Jag skulle starkt rekommendera att läsa om bindningsvariabler i Guarding Against SQL-injektion .