Un guillemet double est utilisé pour désigner un identifiant entre guillemets , c'est-à-dire un nom d'objet qui ne se compose pas uniquement de caractères alphanumériques, $
et #
. En passant, il est recommandé de ne pas le faire utiliser des identifiants entre guillemets. C'est la raison de votre erreur ORA-00984 d'origine. Oracle suppose que "tes"
est une colonne, pas une chaîne, et vous ne pouvez pas utiliser un nom de colonne dans la clause VALUES d'une instruction INSERT, comme expliqué dans le message d'erreur
.
Pour insérer la chaîne "tes"
dans une table, vous devez vous assurer qu'elle est quote correctement
:
N'importe quel caractère peut faire partie d'une chaîne, donc pour insérer un guillemet double dans un tableau, vous devez le mettre entre guillemets simples.
insert into users (id, name, username)
values (null, '"tes"', '"hello"');
Voici un SQL Fiddle à démontrer.
Une chose supplémentaire à noter. Vous déclarez que cette requête est générée automatiquement, ce qui signifie que vous pouvez être vulnérable à l'injection SQL. Je recommanderais fortement de lire sur les variables de liaison dans Guarding Against Injection SQL .