- 浏览: 312390 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (118)
- oracle (16)
- java (13)
- jquery (16)
- hibernate (2)
- spring (14)
- struts (2)
- eclipse (1)
- birt (5)
- integrated skill (13)
- linux (9)
- css+html (5)
- redis (1)
- jqgrid (4)
- mybatis (2)
- multithreading (3)
- jvm (1)
- mvn (3)
- php (2)
- jms (2)
- photoshop (1)
- springmvc (3)
- cluster (1)
- cache (1)
- jquery-ui (2)
- 英语词根 (0)
- svn (0)
- ide (1)
- mysql (3)
- rich-text (1)
- golang (8)
- mac 10 (1)
- android (1)
- react (0)
- bootstrap (2)
- css (2)
- 1 (0)
- beego (1)
- pictures (1)
- java小生转战 (0)
- 转站通知 (0)
- 转站通知,,,啊啊啊 (1)
- threeperson (1)
- unity (1)
最新评论
-
zld406504302:
aaaddddddd
java小生转站threeperson博客 -
zld406504302:
aaaaaddd
java小生转站threeperson博客 -
zld406504302:
aaaaaaaaaaaa
java小生转站threeperson博客 -
乌发舞天:
UEditor 实例 -
van_2013:
请问这是订阅模式的配置吗?
SPRING JMS 整合ACTIVEMQ
今天要在字段里查找'%',涉及到oracle的转义字符,现总结如下:
SQL> select * from test;
TEST
--------------------
sdd_kk
d'd
dfsfsa
dffa%asfs
12345
1%2345
1%54321
2%54321
%%54321
A&B
已选择9行。
其中包含特殊的字符分别为%,_,&,有可能包含这些字符的数据含有错误,或者需要查找包含这些字符的数据。
SQL> select * from test where test like 'sdd _%' escape ' ';
TEST
--------------------
sdd_kk
转义字符为' ';
SQL> select * from test where test like 'sdd\_%' escape '\';
TEST
--------------------
sdd_kk
转义字符为'\';
TEST 转义字符为'='; SQL> select * from test where test like 'sdd/_%' escape '/'; TEST 转义字符为'/'; SQL> select * from test where test like 'sddd_%' escape 'd'; 未选定行 转义字符为d,没有实现转义功能; SQL> select * from test where test like '%\_%' escape '\'; TEST 查找包含所有'_'的字段。 同理:通过这种方法查找含有'%'的所有字段: SQL> select * from test where test like '%\%%' escape '\'; TEST 但是'&'不能通过转义字符查找: SQL> select * from test where test like '%\&%' escape'\'; 可以通过另外的方式进行转义: SQL> select ascii('&') from dual; ASCII('&') SQL> select * from test where test like '%'||chr(38)||'%'; TEST '''的转义: SQL> select * from test where test like '%''%'; TEST 特殊符号的数据的插入 SQL> insert into test values('test&test'); 已创建 1 行。 SQL> show define 已创建 1 行。 SQL> show escape 已创建 1 行。 SQL> select * from test; TEST TEST 已选择13行。 SQL> commit; 提交完成。 SQL> select * from test; TEST TEST 已选择13行。 SQL> insert into test values('test\%test'); 已创建 1 行。 SQL> insert into test values('test\_test'); 已创建 1 行。 SQL> insert into test values('test\'test); 已创建 1 行。 SQL> select * from test; TEST TEST 已选择16行。 连接符‘||’导致了新一轮的转义:连接符号‘||’左右的单引号没有任何的关系,除非‘||’是作为字符串的一部分(这在动态SQL中很常见)。 SQL> SELECT 'ORACLE'||'''' FROM DUAL; http://hi.baidu.com/fuguoliang/blog/item/1e67bf03ecae7d743812bb7b.html
SQL> select * from test where test like 'sdd=_%' escape '=';
--------------------
sdd_kk
--------------------
sdd_kk
--------------------
sdd_kk
--------------------
dffa%asfs
1%2345
1%54321
2%54321
%%54321
select * from test where test like '%\&%' escape'\'
*
第 1 行出现错误:
ORA-01424: 转义符之后字符缺失或非法
----------
38
--------------------
A&B
--------------------
d'd
输入 test 的值: test
原值 1: insert into test values('test&test')
新值 1: insert into test values('testtest') -虽然插入,但是数据不对。
define "&" (hex 26)
SQL> set define off
SQL> show define
define OFF
SQL> insert into test values('test&test');
escape OFF
SQL> set escape on
SQL> show escape
escape "\" (hex 5c)
SQL> insert into test values('test\&test');
--------------------
sdd_kk
d'd
dfsfsa
dffa%asfs
12345
1%2345
1%54321
2%54321
%%54321
A&B
testtest
--------------------
test&test
test&test
--------------------
sdd_kk
d'd
dfsfsa
dffa%asfs
12345
1%2345
1%54321
2%54321
%%54321
A&B
testtest
--------------------
test&test
test&test
insert into test values('test'test)
*
第 1 行出现错误:
ORA-00917: 缺失逗号
SQL> insert into test values('test''test');
--------------------
sdd_kk
d'd
dfsfsa
dffa%asfs
12345
1%2345
1%54321
2%54321
%%54321
A&B
testtest
--------------------
test&test
test&test
test%test
test_test
test'test
'ORACLE'||''
----------
ORACLE'
个人理解,'ORACLE'||'''' 后面的“''''”应该认为是一个字符串(即前后单引号,中间是“''”串,而中间又是密集单引号,因此第一个为转义功能)
SQL> SELECT 'ORACLE''''' FROM DUAL;
'ORACLE'''''
------------
ORACLE''
对于第一个,前两个单引号配对,后面四个单引号按照上面的第一条原则分配,既:SELECT 'ORACLE'||'''' FROM DUAL;
对于第二个,由于第二个单引号后面存在单引号,所以就不与第一个配对,而是充当了转义的角色。既:SELECT 'ORACLE''''' FROM DUAL;
发表评论
-
java 调用oracle 管道表函数
2013-07-10 22:11 2059需求:用户导入100万白名单 ... -
sql实现多行数据比对更新或插入操作
2013-05-29 14:41 4941Merge语法 MERGE [hint] INTO [sche ... -
oracle conn /as sysdba 找不到实例
2013-03-07 11:47 1020oracle conn /as sysdba 找不到实例 ... -
oracle 维护、监控、优化常用sql
2013-03-06 09:46 9341) sql监控 SELECT SE.sid, schema ... -
oracle 编码修改
2013-03-05 15:40 684SQL> shutdown immediate; ... -
oracle10 用户无法连接到指定实例
2013-03-05 14:32 1296问题1:tns:could‘not find the iden ... -
oracle10 千万级数据存取优化
2013-02-27 21:34 6240[list] 今天对一个存有1000万数据的大表进 ... -
获得每个班的前两名学生
2012-06-27 12:33 967群里有个朋友问了一个是sql查询的问题:“获得每个班的两名学 ... -
oracle procdure loop 内异常后继续下一次循环
2012-05-21 22:35 22691)oracle procdure 内异常处理 ... -
java调用 数组作为参数的管道表函数
2012-05-03 17:29 495需求:用户导入100万白 ... -
oracle tkprof 分析sql执行计划
2012-03-26 18:49 988oracle tkprof 分析sql ... -
oracle sql执行计划autotrace 安装
2012-03-23 14:25 933小生对or ... -
oracle 管道表函数2
2012-01-06 15:47 1038由于上一篇关于管道表函数写的有些粗糙,追 ... -
oracle 管道表函数
2011-05-24 17:24 1102------创建一个类型 create or r ... -
oracle 函数返回一个集合
2011-01-10 23:23 1026create or repla ... -
oracle 存储过程
2011-01-06 11:20 866create or replace procedure ...
相关推荐
SQL的过程中对调用者传进的SQL进行转换后再执行,就基本完成了整个系统的SQL语法从SQL Server到Oracle的 兼容,呵呵,听起来有点不可思议。系统已经于3个月前上线,目前运行很稳定。 如果有人用得着或发现什么...
根据提供的文档信息,本文将对《ORACLE SQL 语句(典型应用总结)》中的关键知识点进行详细解读与总结。 ### 第一章 基本SELECT语句 #### 1. SQL语法要求 在Oracle中编写SQL语句时,需要注意以下几点: - **大小写...
此外,了解其他常见的SQL转义字符也很重要。例如,在某些SQL方言中,反斜杠(\)用于转义,但Oracle并不使用反斜杠。在Oracle中,如果你需要在字符串中插入反斜杠,也需要使用两个反斜杠(\\)来表示一个实际的反...
Oracle SQL是Oracle数据库中使用的标准SQL语言,它包括数据定义语言(DDL)、数据操作语言(DML)和数据控制语言(DCL)等。Oracle SQL的核心是用于数据查询和操作的一组命令,这些命令广泛应用于数据库的增删改查操作。 ...
对于单引号 `'` 的转义,Oracle中仍然只接受双单引号 `''` 的方式,而MySQL提供了两种选择:双单引号 `''` 或者反斜杠加单引号 `'\''`,这在编写跨数据库兼容的SQL语句时需要特别注意。 总的来说,了解SQL中的转义...
Oracle SQL是用于管理和操作Oracle数据库的关键工具,涵盖了数据查询、数据操纵、数据定义等多种功能。以下是对Oracle SQL语法的详细解析: **一、数据控制语句 (DML)** 1. **INSERT**: 插入数据到表中。有两种...
【Oracle SQL笔记详解】 Oracle SQL是用于访问和操作Oracle数据库的强大工具,涵盖了各种查询、更新和管理数据的方法。以下是对笔记中提及的一些关键知识点的详细解释: 1. **登录Oracle数据库**:通常以超级管理...
ORACLE 单引号转义: 在ORACLE中,单引号有两个作用: 1:字符串是由单引号引用 2:转义。 单引号的使用是就近配对,即就近原则。而在单引号充当转义角色时相对不好理解 1.从第二个单引号开始被视为...
根据提供的文档内容,我们可以归纳并深入探讨Oracle SQL的相关知识点,主要围绕SELECT语句及其使用方法展开。 ### Oracle-SQL培训-V1.0 #### 第一单元:SELECT语句 **SELECT语句的作用** - **列选择**:通过指定...
Oracle SQL 是一种强大的数据库查询语言,它用于在Oracle数据库系统中检索、操作和管理数据。以下是一些关于Oracle SQL的基本知识点,这些知识点来自于所给的文件摘要: 1. **简单查询语句**: - `SELECT`语句常...
根据提供的文件信息,以下是从标题、描述和部分内容中提取的关于Oracle经典SQL案例的知识点: 标题知识点: - Oracle经典SQL案例:这部分表明文档内容是围绕Oracle数据库系统中的SQL语句展开的,涵盖了多种SQL用法...
Oracle SQL是一种强大的数据库查询语言,广泛应用于数据管理和分析。以下是从《从实践中学习 oracle/SQL》一书第一章和第二章中提取的知识点: 1. **简单查询语句**:基本的查询语句由`SELECT`和`FROM`构成,如`...
Oracle SQL是数据库管理中用于操作和管理Oracle数据库的重要工具,主要包含数据控制语言(DML)和数据定义语言(DDL)两大类。以下将详细解释这两个部分的主要知识点。 一、数据控制语言(DML) 1. INSERT INSERT...
Oracle数据库是世界上最流行的数据库管理系统之一,它提供了丰富的SQL语法用于数据操作、定义和管理。本文将详细介绍Oracle中常用的SQL命令,特别关注数据控制语句(DML)和数据定义语句(DDL)。 1. 数据控制语句 ...
### Oracle SQL 培训笔记知识点详解 #### 一、常用 SQL 语句 1. **聚合查询(Group By)** - **语法**: `SELECT name, COUNT(*) FROM table WHERE ... GROUP BY name;` - **说明**: 使用 `GROUP BY` 子句对指定...
这里使用了通配符`%`和转义字符`\`。 **2. 分页查询** 使用`ROWNUM`进行分页查询,例如: ```sql SELECT * FROM (SELECT * FROM EMP ORDER BY HIREDATE DESC) WHERE ROWNUM ; ``` **3. 联合查询** 联合两个或多...