L'insertion d'une chaîne de caractères entre guillemets dans une table
Je suis en utilisant Oracle 10g et je vais avoir un problème de l'insertion d'une chaîne de caractères entre guillemets dans une table. C'est ma déclaration
INSERT INTO USERS (ID, NAME, USERNAME) VALUES (NULL, "tes", "hello");
La requête ci-dessus échoue avec l'erreur "Oracle colonne qui n'a pas permis ici".
Si je change des guillemets pour les guillemets simples, comme ci-dessous le communiqué de succès.
INSERT INTO USERS (ID, NAME, USERNAME) VALUES (NULL, 'tes', 'hello');
Mais, je veux insérer des guillemets dans la table.
Est-il possible d'avoir des guillemets doubles dans des chaînes dans une instruction insert? Je ne veux pas utiliser REPLACE() parce que ma requête est automatiquement généré à partir d'un tableau.
Vous devez insérer la valeur
avez-vous essayé de s'échapper?, par exemple "\"tes\"" , cela fonctionne t'il?
"tes"
droit?avez-vous essayé de s'échapper?, par exemple "\"tes\"" , cela fonctionne t'il?
OriginalL'auteur Loren Ramly | 2013-02-02
Vous devez vous connecter pour publier un commentaire.
Une double citation est utilisée pour désigner une identificateur entre guillemets, c'est à dire un nom d'objet qui n'est pas uniquement composé de caractères alphanumériques,
$
et#
. En aparté, il est recommandé que vous ne pas utilisent des identificateurs entre guillemets. C'est la raison de votre origine ORA-00984 erreur. Oracle est en supposant que"tes"
est une colonne, pas une chaîne de caractères, 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 le chaîne
"tes"
dans une table, vous devez vous assurer qu'il est cité correctement:N'importe quel caractère peut être une partie d'une chaîne afin d'insérer un guillemet double dans une table, vous devez joindre à l'intérieur de guillemets simples.
Voici un SQL Violon à démontrer.
Une autre chose à noter. Vous dites que cette requête est générée automatiquement, ce qui signifie que vous peut être vulnérable à une injection SQL. Je recommande fortement la lecture sur les variables de liaison dans La protection Contre l'Injection SQL.
OriginalL'auteur Ben
C'est possible. Dans Oracle, vous citez les littéraux de chaîne d'utiliser des guillemets simples.
Si vous souhaitez insérer
test
dans la base de données, alors vous devez citer que'test'
.Si vous souhaitez insérer
"test"
dans la base de données, alors vous devez citer que'"test"'
.Vous pouvez insérer n'importe quel caractère, mais vous devez utiliser des guillemets simples autour d'eux.
-1 bien sûr, c'est possible!
Jeffrey, je sais qu'il est possible d'insérer un devis en tant que texte dans la base de données. Mais il n'est pas possible d'utiliser des guillemets doubles comme délimiteur de chaîne de caractères.
OriginalL'auteur Alen Oblak
Essayer d'emballage les valeurs à l'intérieur des guillemets simples.
OriginalL'auteur TechDo