web-dev-qa-db-fra.com

Comment entrer des caractères spéciaux comme "&" dans la base de données Oracle?

Je veux insérer le caractère spécial & dans ma déclaration d'insertion. Mon insert est:

INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', 'Java_22 & Oracle_14');

Si j'essaie d'exécuter cette requête, une fenêtre contextuelle s'affiche et elle me demande de saisir une valeur pour Oracle_14.

Comment puis-je entrer des caractères spéciaux comme & dans l'instruction d'insertion pour Oracle db?

46
Rachel

Si vous êtes dans SQL * Plus ou SQL Developer, vous voulez exécuter

SQL> set define off;

avant d'exécuter l'instruction SQL. Cela annule la vérification des variables de substitution.

Les directives SET de ce type sont des instructions pour l'outil client (SQL * Plus ou SQL Developer). Ils ont une étendue de session, vous devez donc émettre la directive chaque fois que vous vous connectez (vous pouvez la placer dans le fichier glogin.sql de votre ordinateur client si vous souhaitez modifier le paramètre par défaut pour que DEFINE soit défini sur OFF). Il n'y a aucun risque que vous affectiez un autre utilisateur ou une autre session de la base de données.

60
Justin Cave

Essayez 'Java_22 '||'&'||' Oracle_14'

22
Eternal Noob

La réponse de Justin est la voie à suivre, mais en tant que FYI, vous pouvez également utiliser la fonction chr () avec la valeur ascii du caractère que vous souhaitez insérer. Pour cet exemple ce serait:

INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', 'Java_22 '||chr(38)||' Oracle_14'); 
12
Craig

vous pouvez simplement vous échapper et suivre un point. essaye ça:

INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', 'Java_22 &. Oracle_14');
6
Jerry

Insérer des valeurs contenant '&'. Utilisez le code suivant.

Set define off;

Begin

INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', 'Java_22 & Oracle_14');

End ;

Et appuyez sur la touche F5 d’Oracle pour les éditeurs Toad.

2
Chikku Jacob

Pour le jeu de caractères spéciaux, vous devez vérifier les graphiques UNICODE. Après avoir choisi votre personnage, vous pouvez utiliser l'instruction SQL ci-dessous,

SELECT COMPOSE('do' || UNISTR('\0304' || 'TTTT')) FROM dual;

-

d ō TTTT

0
Ender Akdoğan

Aussi, vous pouvez utiliser concat comme ceci: D

Insert into Table Value(CONCAT('Java ',CONCAT('& ', 'Oracle'));
0
Luis Cardoza Bird

strAdd = strAdd.replace ("&", "'||' & '||'");

0
Gank

Il y a 3 façons de le faire:

1) Faites simplement SET DEFINE OFF; puis exécutez l'insertion stmt.

2) Simplement en concaténant Word réservé entre guillemets simples et en le concaténant. Par exemple. Sélectionnez 'Java_22' || '&' || ':' || 'Oracle_14' de dual - (:) est une option.

3) En utilisant la fonction CHR avec la concaténation. Par exemple. Sélectionnez 'Java_22' || chr (38) || ' Oracle_14 'de dual

J'espère que cette aide !!!

0
SurajSingh444

Si un caractère d'échappement doit être ajouté au début ou à la fin, comme "Java", puis utilisez:

INSERT INTO STUDENT(name, class_id) VALUES ('Samantha', ''||chr(34)||'Java'||chr(34)||'');
0
Surya

Nous pouvons également utiliser un autre moyen, par exemple, pour insérer la valeur avec les caractères spéciaux 'Java_22 & Oracle_14' dans la base de données. Nous pouvons utiliser le format suivant.

'Java_22' || '&' || ' Oracle_14 '

Bien qu'il s'agisse de 3 jetons différents, nous n'avons aucune option, car la gestion de la séquence d'échappement fournie dans la documentation Oracle est incorrecte.

0
lakhcoool