`

SQL语句中&、单引号等特殊符号的处理(Oracle)

阅读更多

今天遇到一个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符号(&)就没有成功了。

分享到:
评论

相关推荐

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

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

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

    处理方法:判断一下val1,val2中是否含有单引号,若含单引号,则将单引号’替换成两个单引号”。 将字段与字段值组织到一个HashTable中,再抽象出一个组织sql语句的函数getSqlByHashTable(): HashTable ht =new ...

    SQL,条件加逗号神器

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

    Oracle中转义字符的详细介绍

    由于数据库中有多张表,我不想一条一条的语句写,希望能够通过sql语句直接生成所有的语句,所以写了如下sql: select 'update ' || table_name || ' set flag = 'I'' || ';' from user_tables 这个时候运行,“报错...

    震撼推出超方便实用的Oracle开发工具 - Oracle SQL Handler,双语界面,智能SQL编辑器,免装Oracle客户端,能运行于Windows, 双语界面

    监控批量SQL语句的运行(在运行中可暂停、更正);不需要安装 Oracle 客户端;占用系统资 源极少;能运行于所有的主流平台包括 Windows、Linux、Unix 及 Mac OS;多线程多连接。所有这些 功能特性在同类工具中表现...

    一个oracle客户端(oracle sql handler)

    支持批量SQL语句的运行:用监控器监控每条语句的运行,在运行过程中可以中断/暂停/继续正在运行的语句,甚至可以更正出错误的语句 o 方便高效的块操作,以满足特殊需求: (1)“Format SQL” 按钮能将语句块中...

    Oracle开发工具 - Oracle SQL Handler(功能强大,超方便好用, 免装客户端, Windows / Linux)

    监控批量SQL语句的运行(在运行中可暂停、更正);不需要安装 Oracle 客户端 ;占用系统资源极少;能运行于所有的主流平台包括 Windows、Linux 、Unix 及 Mac OS; 多线程多连接。所有这些功能特性在同类工具中表现...

    历史上最强的sql FAQ for Oracle

    [Q]如何插入单引号到数据库表中 [A]可以用ASCII码处理,其它特殊字符如&也一样,如 insert into t values('i'||chr(39)||'m'); -- chr(39)代表字符' 或者用两个单引号表示一个 or insert into t values('I''m'); --...

    根据表名及字段,自动生成insert,update,select语句

    首先在数据库中创建存储过程和方法,然后调用创建好的存储过程,生成带有与表名及字段相关的insert,update,delete语句,变量与表字段名相同,例如: "insert into temp (col1,col2,col3) values ('"+col1+"','"+col2...

    ORACLE 常用的SQL语法和数据对象

    如果字段值里包含单引号’ 需要进行字符串转换, 我们把它替换成两个单引号’’。字符串类型的字段值超过定义的长度会出错,最好在插入前进行长度校验,日期字段的字段值可以用当前数据库的系统时间SYSDATE,精确到秒...

    2009达内SQL学习笔记

    在处理SQL语句时,其中所有的空格都被忽略(空格只用来分开单词,连续多个空格当一个用)。 SQL语句可以在一行上写出,建议多行写出,便于阅读和调试。 多条SQL语句必须以分号分隔。多数DBMS不需要在单条SQL语句后...

    最全的oracle常用命令大全.txt

    如果我们想知道user_indexes表各字段名称的详细含义,可以用下面这条SQL语句: SQL>select column_name,comments from dict_columns where table_name='USER_INDEXES'; 依此类推,就可以轻松知道数据字典的详细...

    MySQL Oracle的SQL大对比

      MySQL和Oracle的SQL语句有时候写起来不一样,比如什么地方用单引号 ‘,什么地方用双引号 “,甚至还有反引号 ` 等等令人挺纠结的问题,所以我来总结一下。 字段类型对比   MySQL的字段类型,和Oracle的字段...

    PL/SQL 基础.doc

    'tom''s pen' ''为2个单引号(标识转义) 为tom's pen 2)数字型 123 -4 +56 0 9.0 1.23E5 9.8e-3 3)布尔型 TRUE FALSE NULL 7. 变量声明 语法 Var_name [CONSTANT](标识常量,可选) type [NOT NULL](标识为not-...

    尚学堂视频笔记-oracle

    select ename || "abcd" 如果连接字符串中含有单引号,用两个单引号代替一个单引号。 第五课:distinct select deptno from emp; select distinct deptno from emp; select distinct deptno from emp; select ...

    Java开发基于rmi的数据库中间件设计源码.zip

    Java开发基于rmi的数据库中间件设计源码。分布式对象技术课程实践:基于rmi的数据库中间件...根据表名自动获取数据类型,从而在拼装SQL语句时决定数值是否加单引号; 提供事务确认和回滚处理。 接口设计如下表所示:

    基于 RMI 技术的数据库操作中间件设计学生、教师消费记录管理系统【100011197】

    根据表名自动获取数据类型,从而在拼装 SQL 语句时决定数值是否加单引号; 提供事务确认和回滚处理。 ②Web 应用: 利用Web 技术构建一个学生、教师消费记录管理系统,通过系统可以: 学生、教师信息的查询、增加、...

    超详细的SQL语句语法汇总

    字符串类型的字段值必须用单引号括起来, 例如: ‘GOOD DAY’如果字段值里包含单引号’ 需要进行字符串转换, 我们把它替换成两个单引号”. 字符串类型的字段值超过定义的长度会出错, 最好在插入前进行长度校验. 日期...

    Oracle9i的init.ora参数中文说明

    说明: 在 SQL 语句中, 应避免使用繁琐的 NLS_SORT 进程。正常情况下, WHERE 子句中进行的比较是二进制的, 但语言比较则需要 NLSSORT 函数。可以使用 NLS_COMP 指定必须根据NLS_SORT 会话参数进行语言比较。 值范围:...

Global site tag (gtag.js) - Google Analytics