VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2365|回复: 9

如何转义&

[复制链接]

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-3-12 22:00:02 | 显示全部楼层 |阅读模式
SELECT *   FROM A where A.col1 = 'F&ORG'

用shell调sqlplus,要查的是col1值为'F&ORG',但是总是提示输入变量&org
回复

使用道具 举报

0

主题

71

帖子

50.00

积分

新手上路

Rank: 1

积分
50.00
发表于 2020-6-8 22:00:01 | 显示全部楼层
SQL> insert into test000 values('scott'||chr(38)||'tiger');

1 row inserted

SQL> commit;

Commit complete

SQL> select * from test000;

username
----------------------------------------
scott&tiger
回复

使用道具 举报

0

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-6-9 03:30:01 | 显示全部楼层
SELECT *   FROM A where A.col1 = 'F' || chr(38) ||'ORG'
回复

使用道具 举报

0

主题

39

帖子

23.00

积分

新手上路

Rank: 1

积分
23.00
发表于 2020-6-9 07:00:01 | 显示全部楼层
where A.col1 ='F'||'&'||'ORG'

这样行不
回复

使用道具 举报

0

主题

71

帖子

50.00

积分

新手上路

Rank: 1

积分
50.00
发表于 2020-6-9 12:15:01 | 显示全部楼层
同样可以的

SQL> insert into test000 values('F'||'&'||'ORG');

1 row inserted

SQL> commit;

Commit complete

SQL> select * from test000;

username
----------------------------------------
scott&tiger
F&ORG
回复

使用道具 举报

0

主题

39

帖子

23.00

积分

新手上路

Rank: 1

积分
23.00
发表于 2020-6-9 12:30:01 | 显示全部楼层
CREATE TABLE t_01(col1 VARCHAR2(20))
INSERT INTO t_01 VALUES ('F'||'&'||'ORG')
SELECT * FROM t_01
SELECT * FROM t_01 WHERE col1='F'||'&'||'ORG'

我这里这样倒是可以的
回复

使用道具 举报

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-6-9 13:15:01 | 显示全部楼层
没有转义符吗。。。
这样拼凑很麻烦阿
回复

使用道具 举报

0

主题

71

帖子

50.00

积分

新手上路

Rank: 1

积分
50.00
发表于 2020-6-9 20:30:01 | 显示全部楼层
SQL> select * from test000 where "username"='scott'||chr(38)||'tiger';

username
----------------------------------------
scott&tiger

SQL> select * from test000 where "username"='F'||'&'||'ORG';

username
----------------------------------------
F&ORG
回复

使用道具 举报

0

主题

39

帖子

23.00

积分

新手上路

Rank: 1

积分
23.00
发表于 2020-6-10 13:45:02 | 显示全部楼层
zt

回复: 请教:SQL语句中转义符是那个?


我知道了,在sql*plus中使用转义符'\',要首先修改环境变量
set escape on
随后就可以使用转义符'\'了,例如
SQL>set escape on
SQL>select count(*) from employees where name='\[$1']
   COUNT(*)
----------
          0
SQL>select count(*) from employees where name='&1';
  
输入 1 的值:  a
  
原值    1: select count(*) from employees where name='&1'
新值    1: select count(*) from employees where name='a'
  
  COUNT(*)
---------
         0
回复

使用道具 举报

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-6-22 01:30:02 | 显示全部楼层
楼上正解

SQL> set escape on
SQL> select 'F&org' from dual;
Enter value for org:
old   1: select 'F&org' from dual
new   1: select 'F' from dual

'
-
F

SQL> select 'F\&org' from dual;

'F&OR
-----
F&org

SQL>


谢谢大家回答
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表