免费注册 查看新帖 |

Chinaunix

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

请教c shell里关于oracle的错误处理问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-03-16 12:44 |只看该作者 |倒序浏览
我在c shell里通过下面的语句对oracle数据库进行操作:
su - $ORACLE_USER -c "sqlplus /nolog " << EOF >& /dev/null
      @$file_temp_tbl_names
      exit
EOF
文件$file_temp_tbl_names里面放的是要执行的sql文,请问我如何在c shell里判断这个对数据库操作中有没有错误发生?

请各位大虾帮忙!

论坛徽章:
0
2 [报告]
发表于 2005-03-16 13:14 |只看该作者

请教c shell里关于oracle的错误处理问题

原帖由 "unix_cshell" 发表:
我在c shell里通过下面的语句对oracle数据库进行操作:
su - $ORACLE_USER -c "sqlplus /nolog " << EOF >& /dev/null
      @$file_temp_tbl_names
      exit
EOF
文件$file_temp_tbl_names里?.........


这样行么?
su - $ORACLE_USER -c "sqlplus /nolog " << EOF >& /dev/null
      set echo on
      spool /tmp/file_temp_tbl.log
      @$file_temp_tbl_names
      spool off
      exit;
EOF
刚$file_temp_tbl_names 执行的信息在/tmp/file_temp_tbl.log可以查到

论坛徽章:
0
3 [报告]
发表于 2005-03-16 13:17 |只看该作者

请教c shell里关于oracle的错误处理问题

谢谢!

但是在c shell里可以通过内部变量status来判断返回值,但是通过这个返回值不能判断出文件里的sql文是否执行成功。仅能判断出c shell的命令是否执行成功!我文件里的sql是:
conn    system/system
SET     PAGESIZE 0
SET     ECHO OFF
SET     TERMOUT OFF
SET     FEEDBACK OFF
SET     HEADING OFF
spool   /home/jsys/sql/temp_query.log
select table_name from dba_tables where table_name = 'STU' and owner = 'FENGSL' group by table_name;
spool off
假如,在conn这里发生了错误,那么通过status这个返回值就判断不出来了。

这个时候该如何处理里?

论坛徽章:
0
4 [报告]
发表于 2005-03-16 13:28 |只看该作者

请教c shell里关于oracle的错误处理问题

su - $ORACLE_USER -c "sqlplus /nolog " << EOF  2>/tmp/err.log    @$file_temp_tbl_names
     exit
EOF

把错误重定向到一个文件,可行吧?

论坛徽章:
0
5 [报告]
发表于 2005-03-16 13:35 |只看该作者

请教c shell里关于oracle的错误处理问题

好的,我试一下.

论坛徽章:
0
6 [报告]
发表于 2005-03-16 13:39 |只看该作者

请教c shell里关于oracle的错误处理问题

好的,我试一下.

论坛徽章:
0
7 [报告]
发表于 2005-03-16 13:46 |只看该作者

请教c shell里关于oracle的错误处理问题

这样的话,可以把错误信息以及切换用户时产生的其他信息都重定向到了err.log,并且连接的错误信息还重定向到了spool指定的文件。
如下:
spool指定的文件的内容:
SP2-0640:

err.log文件的内容:
stty: : Not a typewriter
(c)Copyright 1983-2000 Hewlett-Packard Co.,  All Rights Reserved.
(c)Copyright 1979, 1980, 1983, 1985-1993 The Regents of the Univ. of California
(c)Copyright 1980, 1984, 1986 Novell, Inc.
(c)Copyright 1986-1992 Sun Microsystems, Inc.
(c)Copyright 1985, 1986, 1988 Massachusetts Institute of Technology
(c)Copyright 1989-1993  The Open Software Foundation, Inc.
(c)Copyright 1986 Digital Equipment Corp.
(c)Copyright 1990 Motorola, Inc.
(c)Copyright 1990, 1991, 1992 Cornell University
(c)Copyright 1989-1991 The University of Maryland
(c)Copyright 1988 Carnegie Mellon University
(c)Copyright 1991-2000 Mentat Inc.
(c)Copyright 1996 Morning Star Technologies, Inc.
(c)Copyright 1996 Progressive Systems, Inc.
(c)Copyright 1991-2000 Isogon Corporation, All Rights Reserved.


                           RESTRICTED RIGHTS LEGEND
Use, duplication, or disclosure by the U.S. Government is subject to
restrictions as set forth in sub-paragraph (c)(1)(ii) of the Rights in
Technical Data and Computer Software clause in DFARS 252.227-7013.

                           Hewlett-Packard Company
                           3000 Hanover Street
                           Palo Alto, CA 94304 U.S.A.

Rights for non-DOD U.S. Government Departments and Agencies are as set
forth in FAR 52.227-19(c)(1,2).

SQL*Plus: Release 9.2.0.1.0 - Production on Wed Mar 16 13:34:50 2005

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

SQL> ERROR:
ORA-01017: invalid username/password; logon denied
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP