免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2943 | 回复: 6
打印 上一主题 下一主题

求助:如何在sqlplus中执行含有&符号的视图脚本? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-06-02 20:17 |只看该作者 |倒序浏览
在创建视图的脚本中含有&,请问如何才能让脚本在sqlplus中正常执行?
如下:
CREATE OR REPLACE VIEW "VIEW_H" (
    replace(replace(replace(replace(replace(b.DCXML,'&','&am;'),'<','&lt;'),'>','&gt;'),'#lt;','<'),'#gt;','>') as "DCXML",  
……

[ 本帖最后由 idiotlpy 于 2006-6-2 20:19 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-06-02 21:09 |只看该作者
在前面加\,进行转换

论坛徽章:
0
3 [报告]
发表于 2006-06-02 23:42 |只看该作者

回复 2楼 snowboys 的帖子

我已经试过了,不行!仍然提示输入变量值。
另外,使用chr(38 )的办法我也用了,但执行后chr(38 )并没有替换为&,即
CREATE OR REPLACE VIEW "VIEW_H" (
    replace(replace(replace(replace(replace(b.DCXML,chr(38 ),chr(38 )||'am;'),'<',chr(38 )||'lt;'),'>',chr(38 )'gt;'),'#lt;','<'),'#gt;','>') as "DCXML",  
……
执行后在生成的视图查询文本中看到的仍然是
    replace(replace(replace(replace(replace(b.DCXML,chr(38 ),chr(38 )||'am;'),'<',chr(38 )||'lt;'),'>',chr(38 )'gt;'),'#lt;','<'),'#gt;','>') as "DCXML",  
……
我希望的效果是:
    replace(replace(replace(replace(replace(b.DCXML,'&','&am;'),'<','&lt;'),'>','&gt;'),'#lt;','<'),'#gt;','>') as "DCXML",  
……


不知道有没有其他的办法!请各位大侠指点!

[ 本帖最后由 idiotlpy 于 2006-6-2 23:44 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2006-06-04 08:45 |只看该作者
method 1。用sqlplus执行,先执行
set define off
然后再运行脚本

method 2。用toad,plsql developer等工具执行。

论坛徽章:
0
5 [报告]
发表于 2006-06-06 00:00 |只看该作者

回复 4楼 pelyxp 的帖子

除了4楼给出的意见,请问有没有其他办法了?谢谢!

论坛徽章:
0
6 [报告]
发表于 2006-06-06 14:08 |只看该作者
为什么要除掉?
不是很简单的解决方法吗?

原帖由 idiotlpy 于 2006-6-6 00:00 发表
除了4楼给出的意见,请问有没有其他办法了?谢谢!

论坛徽章:
0
7 [报告]
发表于 2006-06-13 16:17 |只看该作者
明白了,谢谢!
define:识别命令中的变量前缀符,缺省为on,也就是'&',碰到变量前缀符,后面的字符串作为变量处理

如果待更新内容包含'&'(在URL中很常见),而define设为on,sqlplus会把'&'后面紧跟的字符串当成变量,提示 输入,这里必须重新输入'&'和那个字符串,才能实现正常更新。将define设为off,就不再进行变量判断。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP