• oracle 特殊字符 转义


    1、oracle 特殊字符 转义
    关键词: oracle    转义                                          
    环境:oracle 9i  plsql
    在plsql里边执行:
    update userinfo set pageurl='myjsp?page=1&pagesize=10' where id='test'
    这条sql语句往数据库的pageurl字段放进去了一个url地址,但是执行的时候却并非那么理想,因为这其中有一个oracle的特殊字符,需要进行转义,那就是字符'&'.
    怎么处理上例中的特殊字符?
    两个办法:
           1) update userinfo set pageurl='myjsp?page=1'||'&'||'pagesize=10' where id='test'
            2) update userinfo set pageurl='myjsp?page=1'||chr(38)||'pagesize=10' where id='test'
    其中||是连字符, chr(38)跟ASCII的字符转码是一致的。
    plsql中还可以set define off来关闭特殊字符,还可以用show define来查看有些特殊定义的字符。

    2、oracle 中如何转义 特殊字符
    问 : 如何转义 下划线 _
    select * from ng_values where name like 'lady_%'
    jieguo 结果显示 lady_test,lady_test,lady1
    正确结果应该是:lady_test,lady_test
    不包括 lady1
    请各位给出转义方法,3ks
    answer:
    select ... from ... where ... like '/_%' escape '/';

    3、
    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');
    /
    1 row created
     
    (方法二)
    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');
    1 row created.

    几个测试方法:
    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   row   inserted  
       
      SQL>   select   B   from   A   where   instr(b,'_a')>0;  
       
      B  
      ----------  
      _a   
      select   B   from   A   where   b   like   '%\_a%'   escape   '\'
    先启动转义符  
      set   escape   on  
      select   B   from   A   where   b   like   '%\_a%'   escape   '\';
    select   B   from   A   where   b   like   '%\_a%'   escape   '\'  

  • 相关阅读:
    Python map,zip,filter 函数
    Word 内存或磁盘空间不足,保存失败
    手机被“监听”了也不知道?这四个设置要关闭,避免隐私泄露
    查看笔记本电脑连接的WiFi密码
    一个登录论坛并上传帖子和文件的代码
    PyQt5 掩码字符
    PyQt5 控件交互与焦点控制
    PyQt5 QCommandLinkButton
    PyQt5 键盘事件
    PyQt5 qss样式
  • 原文地址:https://www.cnblogs.com/ungshow/p/1680675.html
Copyright © 2020-2023  润新知