`
jimmy9495
  • 浏览: 300598 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

oracle转义字符

阅读更多
oracle转义字符(转贴)(2007-12-27 14:42:31)转载标签:it

今天要在字段里查找'%',涉及到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

转义字符为'\';


SQL> select * from test where test like 'sdd=_%' escape '=';

TEST
--------------------
sdd_kk

        转义字符为'=';

SQL> select * from test where test like 'sdd/_%' escape '/';

TEST
--------------------
sdd_kk

          转义字符为'/';

SQL> select * from test where test like 'sddd_%' escape 'd';

未选定行

        转义字符为d,没有实现转义功能;

SQL> select * from test where test like '%\_%' escape '\';

TEST
--------------------
sdd_kk

        查找包含所有'_'的字段。

        同理:通过这种方法查找含有'%'的所有字段:

SQL> select * from test where test like '%\%%' escape '\';

TEST
--------------------
dffa%asfs
1%2345
1%54321
2%54321
%%54321

        但是'&'不能通过转义字符查找:

SQL> select * from test where test like '%\&%' escape'\';
select * from test where test like '%\&%' escape'\'
                                   *
第 1 行出现错误:
ORA-01424: 转义符之后字符缺失或非法

        可以通过另外的方式进行转义:

SQL> select ascii('&') from dual;

ASCII('&')
----------
        38

SQL> select * from test where test like '%'||chr(38)||'%';

TEST
--------------------
A&B

           '''的转义:

SQL> select * from test where test like '%''%';

TEST
--------------------
d'd

特殊符号的数据的插入

SQL> insert into test values('test&test');
输入 test 的值: test
原值    1: insert into test values('test&test')
新值    1: insert into test values('testtest')          -虽然插入,但是数据不对。

已创建 1 行。

SQL> show define
define "&" (hex 26)
SQL> set define off
SQL> show define
define OFF
SQL> insert into test values('test&test');

已创建 1 行。

SQL> show escape
escape OFF
SQL> set escape on
SQL> show escape
escape "\" (hex 5c)
SQL> insert into test values('test\&test');

已创建 1 行。

SQL> select * from 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

已选择13行。

SQL> commit;

提交完成。

SQL> select * from 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

已选择13行。

SQL> insert into test values('test\%test');

已创建 1 行。

SQL> insert into test values('test\_test');

已创建 1 行。

SQL> insert into test values('test\'test);
insert into test values('test'test)
                              *
第 1 行出现错误:
ORA-00917: 缺失逗号


SQL> insert into test values('test''test');

已创建 1 行。

SQL> select * from 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'test

已选择16行。


分享到:
评论

相关推荐

    Oracle中转义字符的详细介绍

    在Oracle数据库中,转义字符是用来表示特殊含义的字符,特别是在字符串中,当需要在文本中插入单引号(')或者其他特殊字符时,转义字符就显得尤为重要。Oracle的转义字符是单引号自身,也就是说,如果你要在字符串...

    浅谈oracle中单引号转义

    在Oracle数据库中,单引号(')...总结来说,理解和正确使用单引号转义是编写Oracle SQL查询时的关键技能,尤其是在处理动态SQL和字符串操作时。了解双引号在特定情况下的特殊含义也有助于编写更灵活和准确的SQL语句。

    SQL中的转义字符

    然而,对于模糊查询的占位符 `%` 和 `_`,Oracle使用反斜杠 `\` 作为它们的转义字符。当你想要在查询中查找实际的百分号 `%` 或下划线 `_` 时,你需要在它们前面加上反斜杠,如 `'%\%%'` 或 `'%\_'`。这里的 `ESCAPE...

    oracle exp query参数 转义符的各个操作系统通用解决方法

    Oracle EXP_Query参数转义符是指在使用Oracle EXP工具导出数据时,query参数中的特殊字符需要进行转义,以避免引发错误。在不同的操作系统平台上,EXP_Query参数转义符的处理方法略有不同,但通过使用parfile文件,...

    oracle插入字符串数据时字符串中有'单引号问题

    总的来说,处理Oracle数据库中字符串含有单引号的问题,主要通过转义单引号或者使用参数化查询来解决。在编写SQL语句时,应当注意这类可能导致语法错误的特殊字符,并采取相应的预防措施,确保数据的正确插入和系统...

    Oracle中插入特殊字符:&和'的解决方法汇总

    还有一种方法是连续写两个单引号,如`'test '''`,第二个和第三个单引号构成一个转义字符,第四个单引号是实际内容。 3. **方法三:使用`CHR(39)`替换`'`** 类似于处理`&`字符,也可以通过`CHR(39)`来代表单引号...

    Oracle中的正则表达式

    * 字符转义与字符类:字符转义是指通过元字符“\”与其他字符进行组合,从而实现特殊字符的匹配。 * 字符组:字符组是指将模式中的某些部分作为一个整体,可以使用量词来修饰字符组,从而提高正则表达式的灵活性。 ...

    oracle数字转换中文

    1. **初始化变量**:首先定义了几个用于存储中间计算结果和最终输出结果的变量,包括`c_money`用于存储数字字符串,`b_string`用于构建最终的中文大写字符串,以及其他辅助变量如`l_money`、`l_sign`等。 2. **...

    Oracle 11g OCP 051

    在Oracle数据库中,ESCAPE子句可以用来定义转义字符,这样就可以在LIKE模式中搜索包含特殊字符的字符串。这表明了在SQL编程中,字符匹配和转义的技巧,这对于编写复杂查询语句非常重要。 根据提供的内容,我们详细...

    oracle 讲义

    - 转义字符用于特殊字符处理,如`\%`用于在`like`中匹配百分号。 - `escape`关键字定义自定义转义字符,如`escape '$'`。 以上是Oracle数据库的基础知识,包括客户端工具使用、用户管理、数据查询、数据过滤、...

    Oracle字符串怎样连接单引号

    在Oracle数据库中,处理字符串和单引号的连接是一个常见的任务,特别是在编写SQL查询和存储过程时。以下是一些关于如何在Oracle中正确连接和转义单引号的知识点: 1. **字符串识别标识**:在Oracle SQL中,单引号...

    马士兵oracle笔记

    12. **转义字符**:在`like`操作中,`%`和`_`是特殊字符,若要匹配它们本身,需要使用转义字符,如`ename like '%$%%' escape '$'`和`ename like '%/%%'`。 13. **排序**:`order by`子句用于对结果集进行排序,`...

    oracle常用问题解答

    **解答**: 在Oracle中查询包含特殊字符如通配符%与_的数据时,需要使用转义字符来避免这些字符被解释为通配符。通常使用的转义字符是反斜杠(\)或双写该字符。 - **示例**: 如果要查找包含百分号(%)的名字,可以使用...

    Oracle OCA 1Z0-051认证题库

    这些题目覆盖了SQL语言的基础用法,包括表的创建、视图的创建以及使用SQL查询中的通配符和转义字符等知识点。通过这些练习题的学习,可以帮助考生更好地掌握Oracle数据库中的SQL语言基础,并为参加Oracle OCA 1Z0-...

    oracle实现换行

    除了使用转义字符,Oracle还提供了一些内置函数来格式化输出,例如`DBMS_OUTPUT.PUT_LINE()`,这是一个在PL/SQL环境中用于打印多行信息的实用程序。以下是一个示例: ```sql BEGIN DBMS_OUTPUT.PUT('第一行 '); ...

    mysql转换到oracle数据库

    - **转义字符处理**: - 单引号`'`需要被转义为`''`。 - 特殊字符如` `等需转换为其对应的ASCII码或直接输入相应字符。 - 字符串中的逗号`,`需要被正确转义。 #### 二、程序处理中的关键差异 **1. 自动...

Global site tag (gtag.js) - Google Analytics