• oracle转义符


    oracle转义符有:1、单引号,可以引用字符串或对自身转义;2、双引号,将非法的格式符包装起来;3、and符号,接连两个转义自身;4、Escape,指定一个非特殊符号为转义符。

    一、单引号

    在ORACLE中单引号有两个作用:1)引用字符串;2)对自身转义。

    引用字符串时,单引号是成对出现的;而对自身的转义,也必定是双数的。所以,一个sql语句中,单引号必定是成对的。

    Select 'abc' a,'' b, '''' c, ' '' ' d From Dual;

    结果:

    其中A为字符串,B为空字符串,C为单个引号(字符串),D为:空格单个引号空格(字符串)

    复杂转义字符串可用连接符||拆分,便于理解。连接符号‘||’左右的单引号没有任何的关系,除非‘||’是作为字符串的一部分(这在动态SQL中很常见)。

    Select 'name' || '''''' a, 'name''''' b From Dual;

    结果如下:

    select 'update sys_areas set LONGITUDE=''' || LONGITUDE || ''', LATITUDE=''' || LATITUDE || ''' where id =' || ID || ';' from sys_areas;

    其中,上述sql中,红色的引号为转义符。

    结果如下:

    二、双引号

    1、一般来说,字符串中的双引号仅仅被当作一个普通字符进行处理。

    Select 'hh24"小时""mi""分"""ss"秒"' Results From Dual;

    结果如下:

    2、当出现在to_char的格式字符串中时,双引号有特殊的作用,就是将非法的格式符包装起来,避免出现ORA-01821: date format not recognized错误。

    也就是说,去掉双引号和其包含的字符后,剩下的应该是一个合法的格式串。

    to_char在处理格式字符串时,会忽略双引号

    Select To_Char(Sysdate, 'hh24"小时"mi"分"ss"秒"') As "当前时间/时分秒" From Dual;

    结果:

    格式串为'hh24"小时"mi"分"ss"秒"';去掉双引号部分后,剩下的是'hh24miss',是一个合法的格式串。

    不过即使真不知道双引号的这个用法,也可以这样来处理,虽然麻烦一点

    Select To_Char(Sysdate, 'hh24') || '小时' || To_Char(Sysdate, 'mi') || '' || To_Char(Sysdate, 'ss') || '' As Result From Dual;

    三、&(and符号)

    用来识别/设置自定义变量,后需跟变量名;

    如需作为字符使用,需使用Chr(38);

    Select Chr(38) a, 'Tom&&Jerry' b, 'Gun ''N Roses' c From Dual;

    结果:

    四、Escape(指定转义符)

    指定一个非特殊符号为转义符,多用在通配符转义。

    Select Table_Name From User_Tables Where Table_Name Like 'B=_%=_%' Escape '=';

    结果:以B开头,至少有两个下划线。

  • 相关阅读:
    每日日报
    Java学习
    Java学习
    Java学习
    Java学习
    Java学习
    Java学习
    Java学习
    Java学习
    JAVA日报
  • 原文地址:https://www.cnblogs.com/zwh0910/p/16043907.html
Copyright © 2020-2023  润新知