免费注册 查看新帖 |

Chinaunix

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

求助:在循环中(while)中调用sqlplus << EOF报错。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-07-01 11:24 |只看该作者 |倒序浏览
在循环中(while)中调用sqlplus << EOF报错:
0403-057 Syntax error at line 47 : `<' is not matched.

不知错在哪里,谢谢了。

脚本如下:
i=1                                                                                    
while [ "$i" -lt 19 ]                                                                  
                        j=`expr $i + 1`                                                
                        $ORACLE_HOME/bin/sqlplus PERfSTAT/PERFSTAT  << EOF              
                                                                                       
                        define begin_snap=$i                                            
                        define end_snap=$j                                             
                        report_name=/tmp/sp$i.txt                                
                        @$ORACLE_HOME/rdbms/admin/spreport.sql                          
                        exit                                                            
                                                                                       
                        i=`expr $i + 1`                                                
                                                                                       
                                                                 
        done

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
2 [报告]
发表于 2005-07-01 11:42 |只看该作者

求助:在循环中(while)中调用sqlplus << EOF报错。

配对的EOF在哪儿?

论坛徽章:
0
3 [报告]
发表于 2005-07-01 12:10 |只看该作者

求助:在循环中(while)中调用sqlplus << EOF报错。

如果把循环去掉,可以正常执行。

论坛徽章:
0
4 [报告]
发表于 2005-07-01 13:37 |只看该作者

求助:在循环中(while)中调用sqlplus << EOF报错。

<<EOF
...
EOF
要成对出现。
如果还是不行,就要把sqlplus的内容全部都在每行的第一个字节开始。
这个比较特殊,说不出什么原因。
我试过在for或者if里面如果把调用sql放在第一字节开始就应该没问题。

论坛徽章:
0
5 [报告]
发表于 2005-07-01 16:21 |只看该作者

求助:在循环中(while)中调用sqlplus << EOF报错。

谢谢ZealeS 。用你的方法搞定了,真的很妖

论坛徽章:
0
6 [报告]
发表于 2005-07-03 02:14 |只看该作者

求助:在循环中(while)中调用sqlplus << EOF报错。

有开始没结束当然错啦.

论坛徽章:
0
7 [报告]
发表于 2005-07-04 12:58 |只看该作者

求助:在循环中(while)中调用sqlplus << EOF报错。

其实不需要把sqlplus的全部行在第一个字符开始,只需要最后的EOF

论坛徽章:
0
8 [报告]
发表于 2006-12-23 11:41 |只看该作者
原帖由 ZealeS 于 2005-7-1 13:37 发表
<<EOF
...
EOF
要成对出现。
如果还是不行,就要把sqlplus的内容全部都在每行的第一个字节开始。
这个比较特殊,说不出什么原因。
我试过在for或者if里面如果把调用sql放在第一字节开始就应该没问题。


我也感到纳闷,问题虽然解决了,但脚本被搞的很难看

每一行都要顶头,不能缩进

论坛徽章:
0
9 [报告]
发表于 2006-12-23 17:56 |只看该作者
只需要最后的一个EOF
代表立即文档"Here Document"的结束
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP