oracle的转义字符是什么
时间:2022-01-25 14:12
在oracle中的转义字符:1、单引号,用于引用字符串或对自身转义;2、双引号,用于将非法的格式符包装起来;3、“&”也就是and符号,用于接连两个转义自身;4、Escape,用于指定一个非特殊符号为转义符。 本教程操作环境:Windows10系统、Oracle 11g版、Dell G3电脑。 1、Oracle 特殊字符 转义 关键词:oracle 转义 环境:oracle9i plsql 在plsql里边执行: 这条sql语句往数据库的pageurl字段放进去了一个url地址,但是执行的时候却并非那么理想,因为这其中有一个oracle的特殊字符,需要进行转义,那就是字符'&'. 怎么处理上例中的特殊字符? 两个办法: 1) update userinfo setpageurl='myjsp?page=1'||'&'||'pagesize=10' where id='test' 2) update userinfo setpageurl='myjsp?page=1'||chr(38)||'pagesize=10' where id='test' 其中||是连字符, chr(38)跟ASCII的字符转码是一致的。 plsql中还可以set define off来关闭特殊字符,还可以用show define来查看有些特殊定义的字符。 2、oracle 中如何转义 特殊字符 问: 如何转义 下划线 _ jieguo 结果显示 lady_test,lady_test,lady1 正确结果应该是:lady_test,lady_test 不包括lady1 请各位给出转义方法,3ks answer: 3、 (方法一) 例:插入特殊字元'&' / 1 row created (方法二) 1 row created. ; 几个测试方法: 1 row inserted 先启动转义符 set escape on 注意 在Oracle中双引号”不是转义字符,因此存储直接存储就可以了,不需要转义了。 oracle转义符有: 1,单引号 在ORACLE中单引号有两个作用:1)引用字符串;2)对自身转义。 引用字符串时,单引号是成对出现的;而对自身的转义,也必定是双数的,所以,一个sql语句中,单引号必定是成对的. 复杂转义字符串可用连接符||拆分,便于理解。连接符号‘||’左右的单引号没有任何的关系,除非‘||’是作为字符串的一部分(这在动态SQL中很常见)。 2,双引号 1)一般来说,字符串中的双引号仅仅被当作一个普通字符进行处理。 此时,双引号不需要成对出现: 2)当出现在to_char的格式字符串中时,双引号有特殊的作用,就是将非法的格式符包装起来,避免出现ORA-01821: date format not recognized错误。 也就是说,去掉双引号和其包含的字符后,剩下的应该是一个合法的格式串。 to_char在处理格式字符串时,会忽略双引号: Select To_Char(Sysdate, 'hh24"小时"mi"分"ss"秒"') As "当前时间/时分秒" From Dual; Output:09小时05分08秒 --别名中也有此应用 格式串为'hh24"小时"mi"分"ss"秒"'; 去掉双引号部分后,剩下的是'hh24miss',是一个合法的格式串。 不过即使真不知道双引号的这个用法,也可以这样来处理,虽然麻烦一点: Select To_Char(Sysdate, 'hh24') || '小时' || To_Char(Sysdate, 'mi') || '分' || To_Char(Sysdate, 'ss') || '秒' As Result From Dual; Output:09小时05分08秒 3,&(and符号) 用来识别/设置自定义变量,后需跟变量名;如需作为字符使用,需使用Chr(38),或者接连两个&&(转义自身) 4, Escape(指定转义符) 指定一个非特殊符号为转义符,多用在通配符转义 推荐教程:《Oracle视频教程》 以上就是oracle的转义字符是什么的详细内容,更多请关注gxlsystem.com其它相关文章!oracle的转义字符是什么
update userinfo set pageurl='myjsp?page=1&pagesize=10' where id='test'
select * from ng_values where name like 'lady_%'
select ... from ... where ... like '/_%' escape '/';
insert into t(col) values(chr(ascii('&'))) ;
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');
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');
SQL> select B from A where instr(b,'_a')>0;
B
----------
_a
select B from A where b like '%\_a%' escape '\'
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;
Select 'name' || '''''' a, 'name''''' b From Dual;
Output:name'' name''
Select 'hh24"小时""mi""分"""ss"秒"' Results From Dual;
Output:hh24"小时""mi""分"""ss"秒"
Select Chr(38) a, 'Tom&&Jerry' b, 'Gun ''N Roses' c From Dual;
Output:& Tom&Jerry Gun 'N Roses
Select Table_Name From User_Tables Where Table_Name Like 'TB=_%=_%' Escape '=';
Output:TB_STUDENT_SCORE--筛选以TB开头,中间有两个_的表名