• Oracle查询包含单引号字段

    千次阅读 2018-07-05 10:36:38
    方法一select * from tab where col like '%'||chr(39)||'%';方法二select * from tab where col like '%''%';

    方法一

    select * from tab where col like '%'||chr(39)||'%';


    方法二

    select * from tab where col like '%''%';



    展开全文
  • oracle查询字段中含有单引号

    千次阅读 2019-01-10 11:04:11
    // 查询字段中含有单引号的数据 **单引号chr(39),双引号(34)** select * from test_tb where test_col like '%'||chr(39)||'%'; // 修改字段中首位含有单引号的数据 update test_tb set test_col=substr(test_col,2,...
    // 查询字段中含有单引号的数据 **单引号chr(39),双引号(34)**
    select * from test_tb where test_col like '%'||chr(39)||'%';
    // 修改字段中首位含有单引号的数据
    update test_tb set test_col=substr(test_col,2,length(test_col)) where id='****';
    

    其他字符ASCII码对应表

    chr(9) tab空格       chr(10) 换行      chr(13) 回车        Chr(13)&chr(10) 回车换行       chr(32) 空格符       chr(34) 双引号       chr(39) 单引号
    chr(33) !        chr(34) "        chr(35) #        chr(36) $        chr(37) %        chr(38) &        chr(39) '        chr(40) (        chr(41) )        chr(42) *
    chr(43) +        chr(44) ,        chr(45) -        chr(46) .        chr(47) /
    
    Chr(48) 0        Chr(49) 1        Chr(50) 2        Chr(51) 3        Chr(52) 4        Chr(53) 5        Chr(54) 6        Chr(55) 7        Chr(56) 8        Chr(57) 9
    chr(58)            chr(59) ;        chr(60) <        chr(61) =        chr(62) >        chr(63) ?        chr(64) @
    
    chr(65) A        chr(66) B        chr(67) C        chr(68) D        chr(69) E        chr(70) F        chr(71) G        chr(72) H         chr(73) I          chr(74) J
    chr(75) K        chr(76) L        chr(77) M        chr(78) N        chr(79) O        chr(80) P        chr(81) Q        chr(82) R        chr(83) S        chr(84) T
    chr(85) U        chr(86) V        chr(87) W        chr(88) X        chr(89) Y        chr(90) Z
    
    chr(91) [        chr(92) \        chr(93) ]        chr(94) ^        chr(95) _        chr(96) `
    
    chr(97) a        chr(98) b        chr(99) c        chr(100) d        chr(101) e       chr(102) f       chr(103) g       chr(104) h        chr(105) i
    chr(106) j        chr(107) k       chr(108) l        chr(109) m       chr(110) n       chr(111) o       chr(112) p        chr(113) q       chr(114) r
    chr(115) s       chr(116) t        chr(117) u       chr(118) v       chr(119) w       chr(120) x        chr(121) y       chr(122) z
    
    chr(123) {       chr(124) |       chr(125) }       chr(126) ~        chr(127)          chr(128)         chr(153)™        chr(169) ©          chr(174) ®
    
    展开全文
  • Oracle多个单引号的处理   在ORACLE中,单引号有两个作用,一是字符串是由单引号引用,二是转义。单引号的使用是就近配对,即就近原则。而在单引号充当转义角色时相对不好理解。   下面转载 1、从第二个单引号...

    Oracle多个单引号的处理

     

    在ORACLE中,单引号有两个作用,一是字符串是由单引号引用,二是转义。单引号的使用是就近配对,即就近原则。而在单引号充当转义角色时相对不好理解。

     

    下面转载

    1、从第二个单引号开始被视为转义符,如果第二个单引号后面还有单引号(哪怕只有一个)。

    SQL> SELECT '''' FROM DUAL;
     
    ''
    --
    '
     
    为了证实结果是被第二个单引号转义的第三个单引号(既:SELECT '''' FROM DUAL;),我们做如下两个测试
     
    SQL> SELECT ''' FROM DUAL;
    ERROR:
    ORA-01756: 括号内的字符串没有正确结束
     
     
    相信大家对这样的错误不陌生吧
     
    SQL> SELECT 'SDLF FROM DUAL;
    ERROR:
    ORA-01756: 括号内的字符串没有正确结束
     

       也就是说,当第二个单引号充当转义角色,第三个单引号被转义,(既:select '' ' from dual;)自然就缺少与第一个单引号匹配的单引号了,出现了孤立的单引号
    下面的两个实验就更加支持了上面的结论。
     
    SQL> SELECT ' '' ' FROM DUAL;
     
    ''''
    ------
    '
     
    SQL> SELECT '' '' FROM DUAL;
    SELECT '' '' FROM DUAL
              *
    ERROR 位于第 1 行:
    ORA-00923: 未找到预期 FROM 关键字
     
     
     
    对于第一个:SELECT ' '' ' FROM DUAL;
    对于第二个:不存在转义。
     
    上面的这两个实验其实也是单引号转义与非转义的一个性质:转义是密集的,也就是说,如果单引号出现在转义的位置上,而该单引号后面紧跟(紧跟的定义为:两个单引号之间是零距离的)的不是单引号,这个时候单引号就不在充当转义的角色,而是与它前面的配对。
     
    2、连接符‘||’导致了新一轮的转义:连接符号‘||’左右的单引号没有任何的关系,除非‘||’是作为字符串的一部分(这在动态SQL中很常见)。
     

    SQL> SELECT 'ORACLE'||'''' FROM DUAL;
     
    'ORACLE'||''
    ----------
    ORACLE'
     个人理解,'ORACLE'||'''' 后面的“''''”应该认为是一个字符串(即前后单引号,中间是“''”串,而中间又是密集单引号,因此第一个为转义功能)
    SQL> SELECT 'ORACLE''''' FROM DUAL;
     
    'ORACLE'''''
    ------------
    ORACLE''

    对于第一个,前两个单引号配对,后面四个单引号按照上面的第一条原则分配,既:SELECT 'ORACLE'||'''' FROM DUAL;
    对于第二个,由于第二个单引号后面存在单引号,所以就不与第一个配对,而是充当了转义的角色。既:SELECT 'ORACLE''''' FROM DUAL;

    如果第二个单引号后面紧跟着单引号,此时第二个单引号充当转义;同理,第四个单引号后面又紧跟着单引号,此时第四个单引号充当转义。


     

    有了上面的两条原则,我们就可以从容的面对复杂的动态SQL了。

    展开全文
  • ORACLE中,单引号有两个作用,一是字符串是由单引号引用,二是转义。单引号的使用是就近配对,即就近原则。而在单引号充当转义角色时相对不好理解   1、从第二个单引号开始被视为转义符,如果第二个单引号...
    在ORACLE中,单引号有两个作用,一是字符串是由单引号引用,二是转义。单引号的使用是就近配对,即就近原则。而在单引号充当转义角色时相对不好理解
     
    1、从第二个单引号开始被视为转义符,如果第二个单引号后面还有单引号(哪怕只有一个)。     
    select '''' from dual     ----output:'
     解释:第二个单引号被作为转义符,第三个单引号被转义,可将sql写成这样更好理解:
    select ' '' ' from dual ----output:'
     
    2、连接符‘||’导致了新一轮的转义:连接符号‘||’左右的单引号没有任何的关系,除非‘||’是作为字符串的一部分(这在动态SQL中很常见)。
    select 'name'||'''' from dual ----output:name' 
    理解:||后面的作为一个字符串,即前后是',中间又是一个密集型单引号串'',因此第一个为转义功能
    select 'name''''' from dual ----output:name''
    理解:第一个和最后一个单引号作为字符串引用符,中间四个单引号两两转义  。
     
    在举几个简单例子:
     
    一个单引号,是最正常的情况,比如:'asdfas',这代表一个字符串,显示的内容是 asdfas  ;
     
    两个单引号,一般成对出现在一个单引号之内,表示一个单引号之内的单引号,比如
    'sdfs''123''dfsdf',这种字符串显示的时候就是 sdfs'123'dfsdf
     
    三个或四个单引号的情况是在一个和两个的情况之上发展出来的,比如'asd'''||输入值||'''',它显示的时候内容就是:
    asd'输入值'。
    (把一对两个单引号分开了,一部分在||之前,一部分在||之后)
    (后面四个单引号分开看,中间两个是一对--代表一对单引号之内的一个单引号,外边两个是一对--代表一对单引号)
    展开全文
  • 直接查询会报:ora:00907缺失右括号的异常 1.可以使用转义的方式,匹配:you are' beautiful可以使用:'you are'' beautiful'的方式 2.可以使用替换字符的方式: sql = @"select * from table1 where replace...
  • oracle如何通过sql查询VARCHAR2字段含有的单引号?包括插入insert: 每个单引号前面加上一个单引号“跳过” 而不进行字符串结尾处理。 如下: SELECT * FROM "YZC"."SYS_ACTION" t where HTML=''; 在...
  • Oracle 多个单引号的处理

    千次阅读 2013-11-01 16:55:04
    一、发现问题 几个问题: SELECT 'N' from dual; SELECT '''N''' from dual;...1.在ORACLE中,单引号有两个作用,一是字符串是由单引号引用,二是转义。单引号的使用是“就近原则”。 eg:单引号引用
  • oracle 中使用单引号(')和双引号(")

    千次阅读 2016-08-08 13:20:53
    --在ORACLE中,单引号有两个作用: -- 1:字符串是由单引号引用 -- 2:转义。 --单引号的使用是就近配对,即就近原则。而在单引号充当转义角色时相对不好理解 --1.从第二个单引号开始被视为转义符,如果第二个单引号...
  • 1、用chr函数,找到单引号的asscii SQL> select * from test1 where description like '%'||chr(39)||'%';  ID DESCRIPTION ----------- --------------------------------------------------  11 hanj
  • 当sql中出现单引号,或双引号时,会出现错误。 做法是在java或其他语言中表示字符串时用...当查询条件含有单引号时,将单引号替换为两个单引号,如下,解决。 select * from t_ir_content where name like '%''%';
  • 如: strSql := 'select * from tb where name=''abc'''; abc两边各加两个单引号即可。
  • oracle 中表示字符串使用单引号

    千次阅读 2010-06-09 21:35:00
    oracle中表示字符串使用单引号   调试良久,悲   insert into tablename(field1, field2, ,,) values(value1, value2,,,,);     其中若有字符串类型, value应...
  • 引号的问题 : Orcle的如何选择使用 单引号与双引号的使用的选择:===&gt; 基本上,只要是(别名) 或者不需要Oracle解析的用 双引号,剩下的是使用单引号,比如(字符串)....
  • 今天初步学习了oracle后,发现了一些关键的小技巧 (1) 有关单引号的问题 在使用||进行字符串或者变量的拼接时,常常会用到单引号单引号有两个作用, 一个是用作单引号,一个是转义。单引号普通的使用不必多...
  • 今天写了个mapper做模糊查询name like '%${name}%'。如果输入的内容里单引号,像这个样子ce’shi,就会报mybatis异常。 最后使用name like concat('%',#{name},'%')解决问题 ...
  • Oracle数据库中,单引号' '和双引号" "两者都是可以表示字符串的,但是在使用时会有所区别。 在双引号" "中,一般在如下场合使用 表示其内部的字符串严格区分大小写 (比如用作字段别名时区分大小写) 用于特殊...
  • Oracle中,字段有单引号('),需要以('')就是两个单引号去替换,不然会出错。   附文:MYSQL到ORACLE程序迁移的注意事项  有很多应用项目, 刚起步的时候用MYSQL数据库基本上能实现各种功能需求,随着...
  • Oracle 在字符串中输入单引号或特殊字符 http://blog.csdn.net/shangboerds/article/details/46538579 -- Start 字符串是用单引号括起来的,如果想在字符串中输入单引号该怎么办呢?有两种方法。 ...
  •  而单引号则示意:这个加了单引号的字段是一个字类似字符串,并不区分大小写。 单引号用于标识字符与数字的区别  当指定字符串文本时,必须用单引号将字符串文本引住。  Oracle10g之前,假如字符串文本...
1 2 3 4 5 ... 20
收藏数 18,980
精华内容 7,592
关键字:

oracle 查询条件带单引号