免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: zhyuh
打印 上一主题 下一主题

往sql*plus传递参数时碰到的问题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2004-12-14 18:25 |只看该作者

往sql*plus传递参数时碰到的问题

谢谢guangzongy,这或许是个好办法

不过还有点问题
SQLSTR="dbms_output.put_line('${DB_CHAR}')"
echo $SQLSTR

返回结果是dbms_output.put_line(' b'),注意b前面有个空格。而在sql*plus中出错的好像就是这个空格。
有没有办法把空格去掉?
谢谢!

论坛徽章:
0
12 [报告]
发表于 2004-12-14 18:36 |只看该作者

往sql*plus传递参数时碰到的问题

我认为传入变量没有问题,也不必组合语句,问题是你传入的变量究竟是不是你想要的字符串,用test测试此变量是否为你想要的才是正途。

论坛徽章:
0
13 [报告]
发表于 2004-12-14 18:36 |只看该作者

往sql*plus传递参数时碰到的问题

原帖由 "zhyuh" 发表:

返回结果是dbms_output.put_line(' b'),注意b前面有个空格。而在sql*plus中出错的好像就是这..........


现在测试发现,b前面的空格其实有个回车符,所有错误都是这个回车符引起的。

就是不知道怎么把它去掉    :em12:

论坛徽章:
0
14 [报告]
发表于 2004-12-14 18:38 |只看该作者

往sql*plus传递参数时碰到的问题

[quote]原帖由 "一梦如是"]我认为传入变量没有问题,也不必组合语句,问题是你传入的变量究竟是不是你想要的字符串,用test测试此变量是否为你想要的才是正途。[/quote 发表:


传入的变量是我想要的,就是传入的时候前面多了一个回车符,现在还没办法去掉

论坛徽章:
0
15 [报告]
发表于 2004-12-14 20:23 |只看该作者

往sql*plus传递参数时碰到的问题

谢谢各位,问题解决掉了。
加了一行
PROC_NAME=`echo $PROC_NAME|sed -e "s/^\n//g"`
把前面的回车符去掉

论坛徽章:
0
16 [报告]
发表于 2004-12-14 20:42 |只看该作者

往sql*plus传递参数时碰到的问题

果然如此,我测试出你出现的问题了,下面是我测试的代码

  1. #!/bin/ksh
  2. DB_CHAR="\ntmndb1"
  3. DD_CHAR="tmndb1"
  4. DB_CHAR=$(echo $DB_CHAR|sed 's/..tmndb1/tmndb1/')
  5. echo $DB_CHAR
  6. [ $DB_CHAR="tmndb1" ]
  7. echo $?
  8. a="'"$DB_CHAR"'"
  9. echo $a
  10. b="'$DB_CHAR'"
  11. echo $b
  12. SQLSTR="dbms_output.put_line('${DB_CHAR}')"
  13. echo $SQLSTR
复制代码

明明$DB_CHAR无误,但输出始终多出这么个空格,为什么直接输出就没有这个空格,只要前面输出一个字符就会看到这个空格,用代码

  1. DB_CHAR=`echo $DB_CHAR|awk '{print substr($DB_CHAR,0,6)}'`
复制代码

处理后结果一样,
试验多次,仍不得其解,这个看不见摸不着的空格究竟是什么?
为什么我们判断也得到确实与字符串相等的结果?怪哉怪哉,请高手有以教我,不然晚上睡不着觉了~

论坛徽章:
0
17 [报告]
发表于 2004-12-15 09:05 |只看该作者

往sql*plus传递参数时碰到的问题

所以,在使用一个sql语句前将其拼装好再用不是没有好处的,起码你可以知道自己的语句的确切内容。

论坛徽章:
0
18 [报告]
发表于 2004-12-15 09:14 |只看该作者

往sql*plus传递参数时碰到的问题

现在是知道了但也去不掉这个东西,你可以尝试一下我的测试代码,楼主和我的苦闷也正在此!
真希望网中人老兄出现,给我们讲解下"\n"到底包含了哪些字符,为什么无法切除……

论坛徽章:
0
19 [报告]
发表于 2004-12-15 17:52 |只看该作者

往sql*plus传递参数时碰到的问题

两位真有专研精神,我只用sed把前面回车符去掉就算绕过去了。惭愧惭愧

还请高手出来解释一下。顶

论坛徽章:
0
20 [报告]
发表于 2004-12-16 09:48 |只看该作者

往sql*plus传递参数时碰到的问题

ksh不熟悉,在bash中是可以获取预想的结果:(
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP