今天遇到一个insert语句,在SQL Tools(链接Oracle数据库)插入的某列值为“Computer Hardware & Software>>CPU",这样执行会有问题,因为"&"是一个特殊符号。符号(&) 在Oracle里有特殊含义,是一个宏变量标识符;在Oracle中,& 是从需要外部输入输入的变量。PS:MySqL中可以直接用"P&G"这样的字符串,故不存在本文所说的问题。要想插入带有&符号的列,需要用如下的方法(当然,用PL/SQL Developer的for update语句也是可的,但我一般不用此工具)。
如下SQL语句就不能正确运行:
select 'Alibaba&Taobao' from dual;
处理方法:
用Oracle的字符串处理函数chr处理。chr(38)表示 &符号
如:select chr(38) from dual;
结果:&
select 'Alibaba'||chr(38)||'Taobao' from dual;
结果:Alibaba&Taobao
其他不能处理的特殊符合,也用类似的方式处理。如果不知道该特殊符号的ascii值,可以调用ascii函数处理,
如:select ascii('&') from dual;
结果:38
再附一个单引号(')的例子(I'm OK):
1. SELECT 'I' || '''m OK' from dual;
2. SELECT 'I''m OK' from dual;
3. SELECT 'I'||Chr(39)||'m OK' FROM dual;
1、2两个都是转义字符(只是用不用连接符||的区别),第3中是一个字符替换。
PS:我用字符替换来弄and符号(&)就没有成功了。
- 浏览: 104469 次
相关推荐
SQL 中存储过程中 SQL 语句的单引号和双引号问题 在 SQL 中,单引号和双引号的问题是一个常见的混淆点,特别是在存储过程中编写 SQL 语句时。下面将对此问题进行详细的解释和总结。 一、单引号和双引号的基本概念 ...
在SQL语句中,单引号和双引号的处理方式是至关重要的,尤其是在处理字符串、数字、日期和布尔值时。以下是对SQL语句中单引号和双引号处理方法的详细解释: 1. **插入字符串型数据**: 当你需要插入字符串类型的...
在本文中,我们将详细介绍 Oracle 中常用的 SQL 语句,包括数据控制语句(DML)、数据定义语句(DDL)和其他相关知识点。 一、数据控制语句(DML) 数据控制语句用于操作数据库中的数据,包括插入、删除、更新等...
标题“Sql语法转换为Oracle语法”涉及到的主要知识点是SQL Server与Oracle数据库之间的SQL语句转换。这通常是因为在系统迁移或跨平台开发时,需要将SQL Server的查询语句适应Oracle数据库的语法。 描述中提到的...
3. **字符串转义**:在某些情况下,为了确保SQL语句的正确性,需要对字符串中的特殊字符进行转义处理,如将单引号转为两个连续的单引号。 4. **数据库驱动**:用于连接应用程序和数据库之间的软件层,它负责转换...
### Oracle SQL语句大全教程知识点解析 #### 一、表结构描述 - **知识点1:DESC 命令** - `DESC` 是一个非常有用的命令,用于查看表的结构,包括字段名称、数据类型等。 - **示例:** - `DESC EMP`: 描述名为 `...
在SQL语句中,单引号(')用于表示字符串的起始和结束,因此当字符串内容本身包含单引号时,直接嵌套会导致语法错误。这是因为解析器会错误地认为内部的单引号提前结束了字符串。为了避免这个问题,我们需要正确地...
例如,对于VARCHAR和CHAR类型的列,数据会被包围在单引号中;对于非字符串类型,如INT,数据将直接插入。注意,时间戳、图像、文本、N文本以及SQL_VARIANT类型的数据在此处理中未被考虑,因为它们可能涉及复杂的数据...
在使用INSERT语句时,字符串类型的字段值必须使用单引号括起来,并且如果值中包含单引号,则需要将单引号进行转义,即使用两个单引号来代替。日期字段的值可以使用系统时间SYSDATE或者TO_DATE函数进行转换,以满足...
在Oracle数据库中,当尝试插入包含单引号(')的字符串数据时,通常会出现语法错误,因为单引号被用来标记字符串的开始和结束。Oracle SQL解析器会将单个单引号视为字符串的边界,如果字符串内部出现单引号,它会认为...
在Oracle数据库中,有时我们需要插入包含特殊字符的数据,如URL中的`&`和文本中的单引号`'`。这些字符在SQL语句中具有特定含义,因此直接插入可能会导致语法错误或解析问题。本文将详细介绍如何处理和插入这些特殊...
对于字符串,需用单引号包围,如果字符串中包含单引号,需要使用两个单引号表示。日期字段可以用`SYSDATE`获取当前系统时间,或通过`TO_DATE()`函数转换字符串。`TO_DATE()`支持多种日期格式。注意,单个INSERT语句...
### Oracle常用SQL语句详解 #### 数据控制语句(DML) **1. INSERT语句** 插入数据到表中的操作通过`INSERT`语句实现。基本语法如下: ``` INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...)...
下面的代码片段展示了如何在动态SQL中处理含有单引号的字符串: ```sql DECLARE vv_name VARCHAR2(200) := ''; vv_cnt NUMBER(10) := 0; vv_sql VARCHAR2(2000) := ''; BEGIN FOR usr IN (SELECT str_sql FROM ...
Oracle SQL语句是数据库开发中的基础工具,它用于在Oracle数据库中进行数据查询、更新、删除等操作。本文主要探讨了几个重要的SQL概念和技术,包括`DISTINCT`、`NULL`处理、字符串连接以及`LIKE`操作符的使用。 1. ...
在处理复杂的查询时,需要注意字符串连接符号(||)的使用,以及在连接文本和数值时正确地使用单引号。此外,DESCRIBE命令可用于在SQL*Plus中查看表的结构,以了解字段信息。 总结来说,Oracle SQL的简单查询语句...
这种方法能够确保在达梦数据库中执行的SQL语句与Oracle数据库中的行为一致。 #### 二、数据类型差异 数据类型的处理也是两者之间的一个重要区别。以`COUNT(*)`为例: - **Oracle数据库**:`COUNT(*)`的结果可以...
在Oracle数据库中,转义字符是用来表示特殊含义的字符,特别是在字符串中,当需要在文本中插入单引号(')或者其他特殊字符时,转义字符就显得尤为重要。Oracle的转义字符是单引号自身,也就是说,如果你要在字符串...
7. **SQL执行顺序**:在SQL语句中,`FROM`子句首先执行,确定数据源;然后是`WHERE`子句,过滤满足条件的行;接着是`SELECT`,选择需要的列;最后是`ORDER BY`,对结果进行排序。 对于初学者来说,理解和掌握这些...
4. **避免转义问题**:相比于手动替换特殊字符(如单引号),参数化查询可以自动处理这些问题,减少错误的可能性。 #### 总结 综上所述,在实际开发中应尽量避免使用字符串拼接的方式构建SQL语句,而应优先考虑...