Een dubbel aanhalingsteken wordt gebruikt om een geciteerde identifier , d.w.z. een objectnaam die niet alleen uit alfanumerieke tekens bestaat, $
en #
. Even terzijde, het wordt aanbevolen dat u niet . doet gebruik identifiers tussen aanhalingstekens. Dit is de reden voor uw oorspronkelijke ORA-00984-fout. Oracle gaat ervan uit dat "tes"
is een kolom, geen tekenreeks, en u kunt geen kolomnaam gebruiken in de VALUES-clausule van een INSERT-instructie, zoals uitgelegd in de foutmelding
.
Om de string . in te voegen "tes"
in een tabel zet, moet u ervoor zorgen dat deze geciteerd is correct
:
Elk teken kan deel uitmaken van een tekenreeks, dus om een dubbel aanhalingsteken in een tabel in te voegen, moet u het tussen enkele aanhalingstekens plaatsen.
insert into users (id, name, username)
values (null, '"tes"', '"hello"');
Hier is een SQL Fiddle demonstreren.
Een extra ding om op te merken. U geeft aan dat deze zoekopdracht automatisch wordt gegenereerd, wat betekent dat u mag kwetsbaar zijn voor SQL-injectie. Ik zou het ten zeerste aanbevelen om over bindvariabelen te lezen in Guarding Against SQL-injectie .