&如何进行转义

[复制链接]
查看11 | 回复5 | 2010-3-1 11:19:07 | 显示全部楼层 |阅读模式
例如我想查询:
ETL@dwtest194>select * from scott.emp where ename='gh&e';
Enter value for e: e
oracle会把e当成一个变量,如何把'gh&e'当成一个值,把&转义一下?
使用set define off的方法我已经知道了,我想知道别的方法。
回复

使用道具 举报

千问 | 2010-3-1 11:19:07 | 显示全部楼层
select chr('38') from dual
回复

使用道具 举报

千问 | 2010-3-1 11:19:07 | 显示全部楼层
1. 字符串链接方式
[php]
JACKY@orcl > select * from scott.emp where ename='gh&e';
输入 e 的值:a
原值1: select * from scott.emp where ename='gh&e'
新值1: select * from scott.emp where ename='gha'
未选定行
JACKY@orcl > select * from scott.emp where ename='gh'||'&'||'e';
未选定行
JACKY@orcl >
[/php]
2. 改变define标识符
JACKY@orcl > show define
define "&" (hex 26)
JACKY@orcl > set define "##"
字符串 ""##"" 太长, 最长为 1 个字符。
JACKY@orcl > set define "@"
JACKY@orcl > select * from scott.emp where ename='gh&e';
未选定行
JACKY@orcl > show define
define "@" (hex 40)
[ 本帖最后由 jackywood 于 2010-2-5 14:41 编辑 ]
回复

使用道具 举报

千问 | 2010-3-1 11:19:07 | 显示全部楼层
In SQL Window: select '&&' from dual
In command window: select '\&' from dual;
[ 本帖最后由 szusunny 于 2010-2-5 13:53 编辑 ]
回复

使用道具 举报

千问 | 2010-3-1 11:19:07 | 显示全部楼层
高人的确多,谢谢了!
回复

使用道具 举报

千问 | 2010-3-1 11:19:07 | 显示全部楼层
原帖由 szusunny 于 2010-2-5 13:50 发表
In SQL Window: select '&&' from dual
In command window: select '\&' from dual;

escape 选项要设为 on

SQL> select '\&abc' from dual;
Enter value for abc: abc
old 1: select '\&abc' from dual
new 1: select '\abc' from dual
'\AB
----
\abc
[ 本帖最后由 jackywood 于 2010-2-5 15:51 编辑 ]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行