`
123003473
  • 浏览: 1064381 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Oracle中的 单引号 和 双引号

 
阅读更多
双引号的作用是:假如建立对象的时候,对象名、字段名加双引号,则示意 Oracle将严格区分大小写,否则Oracl都默认大写。

  而单引号则示意:这个加了单引号的字段是一个字类似字符串,并不区分大小写。

单引号用于标识字符与数字的区别

  当指定字符串文本时,必须用单引号将字符串文本引住。

  Oracle10g之前,假如字符串文本里含有单引号,那么必须运用两个单引号示意。例如:I'm a String!

  字符串文本则为:string_var:='I''m a String!'

  在oracle10g中可以运用其它分隔符(<>,[],{}等),留心,运用这些分隔符时,不仅要在分隔符前后加单引号,还要带有前缀q.例:string_var:=q'[I''m a String!]';

  例如

  select * from table_name where id=1;这种代表查询的是数字

  select * from table_name where id='1';这种代表查询的是字符

  假如是双引号是这样,假如你有个表的字段叫sysdate,因为sysdate属于oracle中的特有字符,但你要查询这个字段的时候

  select "sysdate" from table_name;

  但是你要是用

  select 'sysdate' from table_name;

  那么你查出来的就是字符串,结果是sysdate

  运用如下的更新语句不可以:update device set dept='select * from message where name='tom' ' ;

  处理要领:

  update device set dept='select * from message where name=' 'tom' ' where id=3' ;

  执行成功。

  原来,两个'' 示意了一个'


单引号在 Oracle 中有三种身份:

      1. 用来引用一个字符串常量,也就是界定一个字符串的开始和结束
      2. 转义符,对紧随其后出现的字符(单引号)进行转义
      3. 表示它本身,也就是它作为一个字符串的一部分而出现在一个字符串常量中
当具有不同身份的单引号紧挨着一起出现在 sql 语句中时常常令人迷惑不解,下面我将以自己总结出来的经验为基础,结合具体实例来告诉大家如何弄清每个单引号的含义。

总结经验:
1. 出现在表达式开头和结尾的这两个单引号的含义肯定是表示引用一个字符串,界定字符串的开始和结束
2. 如果单引号出现在表达式中间(即非表达式开头和结尾的单引号),且多个单引号之间没有任何其他字符,那么当我们从左向右分析时,第一对单引号中的第一个是转义符,它对紧随其后的第二个单引号进行转义,以使第二个单引号作为一个字符出现在一个字符串常量中。第二队,第三队,以此类推......
下面用实例来验证自己的经验总结:

示例一:


select '''' from dual;

result '

上图中,表达式 '''' 中第1、4个单引号表示引用一个字符串常量,表达式的剩余部分我们从左往右分析,由于中间是一对单引号,故此对中的第一个是转义符,其对第二个进行转义,使第二个表示单引号本身。分析得出这里有一个字符串常量,其中只有一个单引号字符。sql 语句的运行结果与我们的分析结果一致。


示例二:

select 'exit''''' from dual

result exit''


上图中,表达式 'exit''''' 中第一个和最后一个单引号表示引用一个字符串常量,表达式的剩余部分我们依然从左往右分析。剩余部分中,遇到的第一个单引号后面紧随一个单引号,我们将其作为一对,根据示例一,这一对的解析结果为一个单引号字符本身;然后继续向右走,又遇到一对紧挨着的单引号,同理,他们的解析结果也是一个单引号字符本身。分析得出这里的字符串常量包含exit和两个单引号字符。sql 语句的运行结果与我们的分析结果一致。

分享到:
评论

相关推荐

    SQL中存储过程中SQL语句的单引号和双引号问题[总结].pdf

    SQL 中存储过程中 SQL 语句的单引号和双引号问题 在 SQL 中,单引号和双引号的问题是一个常见的混淆点,特别是在存储过程中编写 SQL 语句时。下面将对此问题进行详细的解释和总结。 一、单引号和双引号的基本概念 ...

    浅谈oracle中单引号转义

    在ORACLE中,单引号有两个作用:   1:字符串是由单引号引用   2:转义。  单引号的使用是就近配对,即就近原则。而在单引号充当转义角色时相对不好理解  1.从第二个单引号开始被视为转义符,如果第二个单...

    sql语句中单引号,双引号的处理方法

    此外,不同的数据库管理系统(DBMS)可能有不同的语法要求,例如,MySQL使用`"`而不是`'`来定义字符串,而Oracle支持双引号和单引号,但推荐使用双引号。 总之,理解和正确使用SQL中的单引号和双引号是编写安全、...

    精彩编程与编程技巧-如何在表中保存单引号?...

    本篇文章将重点讨论如何在不同的数据库环境中(例如Access和Oracle)正确地存储包含单引号的数据。通过一个具体的VB6示例代码来展示这一过程。 #### 关键概念解释 1. **SQL Injection(SQL注入)**:是一种常见的...

    Oracle字符串怎样连接单引号

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

    Oracle中转义字符的详细介绍

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

    oracle与mysql的区别

    MySQL 里可以用双引号包起字符串,Oracle 里只可以用单引号包起字符串。在插入和修改字符串前必须做单引号的替换:把所有出现的一个单引号替换成两个单引号。 4. 翻页的 SQL 语句的处理 MySQL 处理翻页的 SQL 语句...

    达梦和oracle的差异说明

    为了解决这个问题,可以使用双引号将这些关键字括起来,如`"BEGIN"`和`"END"`。 示例代码: ```sql SELECT c.contractid, CONTRACTNO, c.contractname, c.type, sum, "BEGIN", "END", state, userid, service...

    Oracle中常用的通配符

    `'(` 和 `')'`(单引号) - **含义**:在某些情况下,单引号用于表示特殊字符本身,而非其字面意义。 - **示例**: - `SELECT * FROM table_name WHERE column_name LIKE '%''%'`:查找包含单引号的所有记录。 #...

    mysql和Oracle命令的区别

    在 MySQL 中,字符串可以被双引号或单引号包围,但在 Oracle 中,只能使用单引号。这在编写 SQL 查询时需要特别注意。在 Oracle 中,如果字符串中包含单引号,需要将单引号加倍以正确转义。 3. 翻页查询(LIMIT 和...

    mysql和oracle区别.pdf

    - MySQL 允许使用双引号或单引号包围字符串,而 Oracle 只接受单引号。在处理 Oracle 的字符串时,需要确保单引号的正确处理,例如,将所有单引号替换为两个单引号。 4. **分页查询**: - MySQL 使用 LIMIT 子句...

    mysql和oracle区别.docx

    MySQL 允许使用双引号来包围字符串,而 Oracle 只接受单引号。在 Oracle 中,如果字符串内部含有单引号,需要使用两个单引号来转义。 4. **分页查询**: MySQL 使用 LIMIT 子句轻松实现分页,如 `LIMIT 开始位置,...

    Sql语法转换为Oracle语法

    1. 数据库对象命名:在SQL Server中,表和列名通常用方括号包围(如 `[TableName]` 和 `[ColumnName]`),而在Oracle中,它们用双引号包围(如 `"TableName"` 和 `"ColumnName"`)。 2. 语句开头:SQL Server通常以...

    oracle常用问题解答

    **解答**: 在Oracle中,如果要在字符串中包含单引号,可以通过在两个单引号之间插入另一个单引号来实现。 - **示例**: 假设需要将字符串"John's"插入到某个字段中: ```sql INSERT INTO table_name (column_name)...

    Oracle快速参考手册

    3. 可以包含字母(大小写不区分,除非在双引号内)、数字、下划线、井字符和美元符号。 4. 名称不区分大小写,除非被双引号包围,双引号内的名称保持大小写敏感。 5. 双引号内的名称不能包含内置引号。 接着,我们...

    SQL,条件加逗号神器

    可以快速将字符串转化为大小写、加引号和逗号便于查询 可以快速将字符串转化为大小写、加引号和逗号便于查询

    MYSQL到ORACLE程序迁移的注意事项

    MySQL允许字符串使用双引号,而Oracle则要求使用单引号。在处理字符串时,需要将所有的单引号替换为两个单引号,例如`' -&gt; ''`。 3. **翻页SQL语句的处理**: MySQL的分页查询使用`LIMIT`,而在Oracle中,需要...

    oracle通过dblink链接 mysql和mssql例子

    - 用户名和密码需要使用双引号,以防止Oracle自动转大写,可能导致登录失败。 - 登录PL/SQL的账号需要具有创建DBLink的权限,或者是具有数据库管理员权限。 以上步骤展示了如何通过Oracle数据库中的DBLink连接MySQL...

    Oracle到mysql转换的问题总结.doc

    - 单引号和双引号的使用:Oracle仅接受单引号包围字符串,而MySQL则允许单引号或双引号。 - 子查询结果集别名:MySQL要求在`FROM`后立即跟上别名,如`FROM (SELECT...) AS alias`。 - `DELETE`语句:MySQL不支持...

Global site tag (gtag.js) - Google Analytics