【Oracle】Oracle中使用转义字符

1、Oracle 特殊字符 转义
关键词:oracle    转义                                          
环境:oracle9i plsql
在plsql里边执行:
update userinfo set pageurl=‘myjsp?page=1&pagesize=10‘ where id=‘test‘
这条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 中如何转义 特殊字符
问: 如何转义 下划线 _
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   ‘\‘;

注意:

在Oracle中双引号”不是转义字符,因此存储直接存储就可以了,不需要转义了。

时间: 2024-10-25 07:39:56

【Oracle】Oracle中使用转义字符的相关文章

Oracle数据库中scott用户不存在的解决方法

SCOTT用户是我们学习Oracle过程中一个非常重要的实验对象,在我们建立数据库的时候,如果是选择定制模式的话,SCOTT用户是不会默认出现的,不过我们可以通过使用几个简单命令来使这个用户出现.以下是解决方法(基于windows): 1.开始--运行--cmd 输入:sqlplus / as sysdba 连接到数据库 SQL>conn scott/tiger 如果scott不存在,会报ORA-01017的错误,并会断开连接 2.我们以SYS用户重新连接 SQL>conn sys/密码 as

oracle 11g 中 (oracle 10g) crsctl 的 替换命令

 oracle 11g 中 (oracle 10g) crsctl 的 替换命令 Deprecated Command Replacement Commands crs_stat  ---集群状态检查 crsctl check cluster -all crsctl stat res -t crs_register  --集群资源注冊 crsctl add resource crsctl add type crsctl modify resource crsctl modify type c

Oracle RAC中的几个IP

oracle11g开始,设置了SCAN ip,除此之外还有public ip,virtual ip,private ip,容易让人犯晕. 下面逐一解释: public ip: 类似与单实例的oracle数据库ip,主要用于管理\访问. virtual ip(vip): oracle在rac架构中专用,这个vip用于实现故障转移,当一个节点发生故障时,其vip会"浮动"到另外一个正常的节点,也即该正常节点对应着两个vip了. SCAN: Single Client Access Name

关于Oracle GoldenGate中Extract的checkpoint的理解 转载

什么是checkpoint? 在Oracle 数据库中checkpoint的意思是将内存中的脏数据强制写入到磁盘的事件,其作用是保持内存中的数据与磁盘上的数据一致.SCN是用来描述该事件发生的准确的时间点. 而GoldenGate中出现的checkpoint有着不同的含义.简单的说就是position,位置的意思.它记录了Extract进程在抽取事务时的进度.使用INFO showch 命令可以查看当前正在运行的Extract进程中所记录的checkpoint. 当GoldenGate被计划内或

如何在oracle 12c中创建普通用户

-------如何在oracle 12c中创建普通用户------- [[email protected] ~]$ sqlplus / as sysdba SQL*Plus: Release 12.1.0.2.0 Production on Sun Nov 29 21:43:50 2015 Copyright (c) 1982, 2014, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edit

Native Oracle Barcode Generator可以添加条形码到Oracle Reports中而不用安装特定的字体库

Native Oracle Barcode Generator条形码控件是一个可以被嵌入到Oracle Reports中用于创建条码图像的一个对象.一旦安装后,不需要安装其它的任何组件或字体库来创建条码:它是完整的条码生成器. 具体功能: 轻松地添加条形码到Oracle Reports中而不用安装特定的字体库. 包括正在申请专利的技术在其他任何公司都是无法获得的. 在一个编译好的PLL库中提供一个完整的Oracle 条码生成器对象. 创建的本地和纯PL/SQL 代码的源代码是可用的. 多地区设置

Oracle Sqlplus中上下键出现^[[A乱码问题

安装rlwrap 下载:http://utopia.knoware.nl/~hlub/uck/rlwrap/ 或者 百度云盘:http://pan.baidu.com/s/1ntM8YXr 需要先安装readline,否则会报一下错误:You need the GNU readline library(ftp://ftp.gnu.org/gnu/readline/ ) to build this program! 如下: [[email protected] ~]# cd /opt/ [[ema

如何处理Oracle数据库中的坏块问题

本文主要介绍如何去处理在Oracle数据库中出现坏块的问题,对于坏块产生在不同的对象上,处理的方法会有所不同,本文将大致对这些方法做一些介绍.因为数据库运行时间长了,由于硬件设备的老化,出现坏块的几率会越来越大,因此,做为一个DBA,怎么去解决数据库出现的坏块问题就成了一个重要的议题了. 一:什么是数据库的坏块   首先我们来大概看一下数据库块的格式和结构 数据库的数据块有固定的格式和结构,分三层:cache layer,transaction layer,data layer.在我们对数据块进

给Oracle数据库中CLOB字段插入空值

遇到往ORACLE数据库中插入数据时总是报ORA-01084 invalid argument in OCI call错误,经分析是因为表中的一个字段类型为CLOB,并且可为空,当在给该字段插入空值时引发的该错误.后来判断是否为空值,如果为空值使用DBNull.Value,以此解决了该问题. Null 指的是无效的对象引用:而 DBNull 是一个类, DBNull.Value 是它唯一的实例 .DBNull 的实例 DBNull.Value是数据库表中的空数据在 .Net 代码中的表现形式.我

Oracle存储过程中异常Exception的捕捉和处理

Oracle存储过程中异常的捕捉和处理 CREATE OR REPLACE Procedure Proc_error_process ( v_IN in Varchar2, v_OUT Out Varchar2) AUTHID CURRENT_USER AS --声明异常 some_kinds_of_err EXCEPTION; -- Exception to indicate an error condition v_ErrorCode NUMBER; -- Variable to hold