Caractères d'échappement dans Oracle : 1. Guillemets simples, utilisés pour citer des chaînes ou s'échapper ; 2. Guillemets doubles, utilisés pour envelopper des caractères de format illégal ; 3. "&" est le symbole et, utilisé pour connecter deux échappements eux-mêmes ; . Escape, utilisé pour spécifier un symbole non spécial comme caractère d'échappement.
L'environnement d'exploitation de ce tutoriel : système Windows 10, version Oracle 11g, ordinateur Dell G3.
1. Échappement de caractère spécial Oracle
Mots clés : échappement oracle Exécuter en sql :
update userinfo set pageurl='myjsp?page=1&pagesize=10' where id='test'
Cette instruction SQL va à l'URL de la page de la base de données. Une adresse URL est saisie dans le champ, mais l'exécution n'est pas si idéale car il y a un caractère spécial d'Oracle qui doit être échappé, c'est le caractère '&'
Comment gérer les caractères spéciaux dans l'exemple ci-dessus ?
Deux méthodes :
1) mettre à jour les informations utilisateur setpageurl='myjsp?page=1'||'&'||'pagesize=10' où id='test'
2) mettre à jour les informations utilisateur setpageurl='myjsp page ? =1'||chr(38)||'pagesize=10' où id='test'
où || est un trait d'union, chr(38) est cohérent avec le transcodage des caractères ASCII.
Dans plsql, vous pouvez également désactiver la définition pour désactiver les caractères spéciaux, et vous pouvez également utiliser show definition pour afficher certains caractères spécialement définis.
2. Comment échapper aux caractères spéciaux dans Oracle
Q : Comment échapper au soulignement_
select * from ng_values where name like 'lady_%'
jieguo Le résultat montre lady_test, lady_test, lady1
Le résultat correct devrait être : lady_test, lady_test
excluant lady1
S'il vous plaît tout le monde Donnez la méthode d'échappement, 3ks
réponse :
select ... from ... where ... like '/_%' escape '/';
3,
insert into t(col) values(chr(ascii('&'))) ;
(Méthode 1)
Exemple : insérer des caractères spéciaux '&'
SQL> SHOW DEFINE define "&" (hex 26) ? <--- DEFINE的default值是 ‘&’ SQL> SET DEFINE OFF SQL> SHOW DEFINE define OFF SQL> INSERT INTO <table_name> VALUES ('AT&T');
/
1 ligne créée
(Méthode 2)
dd Non un caractère d'échappement, afin qu'il puisse être stocké directement sans s'échapper.Les caractères d'échappement Oracle sont :
1, guillemets simples
Les guillemets simples ont deux fonctions dans ORACLE : 1) Les caractères d'échappement ; Lorsque vous citez une chaîne, les guillemets simples apparaissent par paires ; et s'échapper doit être un nombre pair, donc dans une instruction SQL, les guillemets simples doivent être par paires.SQL> SHOW ESCAPE escape OFF <--- ESCAPE的default值是 OFF SQL> SET ESCAPE ON SQL> SHOW ESCAPE escape "\" (hex 5c) SQL> INSERT INTO temp_table VALUES ('select * from emp where ename =\&1');
SELECT 'myjsp?page=1&pagesize=10' FROM dual; SELECT 'myjsp?page=1&pagesize=10' FROM dual; SQL> create table a (b varchar2(10)); Table created SQL> insert into a values('_a');
1) De manière générale, les guillemets doubles dans les chaînes ne sont traités que comme des caractères ordinaires.
Pour le moment, les guillemets doubles ne sont pas requis. Apparaissent par paires : SQL> select B from A where instr(b,'_a')>0;
B
----------
_a
select B from A where b like '%\_a%' escape '\'
En d'autres termes, après avoir supprimé les guillemets doubles et les caractères qu'ils contiennent, ce qui reste devrait être une chaîne de format légal. to_char ignorera les guillemets doubles lors du traitement de la chaîne de format :
Sélectionnez To_Char(Sysdate, 'hh24" Hours"mi"minutes"ss"seconds"') comme "Heure actuelle/Heures, minutes et secondes" de Dual ;
Sortie : 09 heures, 05 minutes et 08 secondes - cette application est également disponible sous l'alias
La chaîne de format est 'hh24"hour" mi"minutes"ss"seconds"' ;
Après avoir supprimé les guillemets doubles, ce qui reste est 'hh24miss', qui est une chaîne au format légal Mais même si vous ne connaissez vraiment pas l'utilisation des guillemets doubles, vous pouvez toujours l'utiliser comme ceci. Traitement, bien qu'un peu plus gênant :
. Sélectionnez To_Char(Sysdate, 'hh24') || 'Hour' || To_Char(Sysdate, 'mi') || To_Char(Sysdate, 'ss') ||
Sortie : 09 heures, 05 minutes et 8 secondes3, & (et symbole)
est utilisé pour identifier/définir des variables personnalisées, suivi du nom de la variable si elle doit être utilisée comme caractère, vous ; besoin d'utiliser Chr(38) ou de connecter deux && (échapper lui-même)select B from A where b like '%\_a%' escape '\'; select B from A where b like '%\_a%' escape '\';
Select 'abc' a,'' b, '''' c, ' '' ' d From Dual;
Tutoriel vidéo Oracle
"Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!