Pro*c Oracle连接问题

半点竹节 发布于 2013/04/17 16:10
阅读 220
收藏 0

@中山野鬼 你好,想跟你请教个问题:

说明一下,我想完成一个定时任务,就是把数据库每天的数据导出文件,我使用Pro*c编写的程序,编译通过,并且能手动执行生成文件成功调,但是我通过Shell脚本做定时任务时,用这个应用程序时却出现了连接数据库出错的情况,错误代码为12154

Shell脚本如下
#!/bin/bash 

cd /home/netpay/outfile/liqunduizhang

mv * /home/netpay/outfile/liqunbackup 

/home/netpay/liqinglong/backup/test

test为数据导出文件应用程序,我确信调用了该应用程序,而且出现连接数据库失败

test.pc中连接数据库部分代码如下
strcpy(user.arr,"***");
  user.len=(unsigned short)strlen((char *)user.arr);
  strcpy(pass.arr,"***");
  pass.len=(unsigned short)strlen((char *)pass.arr);
  strcpy(tnsname.arr,"***");
  tnsname.len=(unsigned short)strlen((char *)tnsname.arr);
  EXEC SQL CONNECT :user IDENTIFIED BY :pass USING :tnsname;
  if (sqlca.sqlcode!=0)
  {
    printf("CONNECT:失败![%d]\n",sqlca.sqlcode);
    EXEC SQL ROLLBACK WORK;
    return 0;
  } 


如果是配置文件或者是test 权限问题,应该不会调用,而且手动也不会执行成功,恳请大神帮一下。。。。。

加载中
0
铂金胖子
铂金胖子

你的 ORACL 配置的环境 变量放到哪个文件下了?

.profile 还是 .bashrc

在 脚本的开始加上

. .profile 

试试

0
半点竹节
半点竹节

引用来自“铂金胖子”的答案

你的 ORACL 配置的环境 变量放到哪个文件下了?

.profile 还是 .bashrc

在 脚本的开始加上

. .profile 

试试

谢谢,刚刚我加上后,成功了,还是要谢谢你
0
中山野鬼
中山野鬼
哈。您真问错人。这块我不懂。。不懂就是不懂,不装懂,会遭雷劈的。。。。
0
宏哥
宏哥

引用来自“钟晓骏”的答案

@宏哥  试试。

oracle我都有7-8年没有摸过了

oracle连接需要配置 SID 客户端. oracle客户是通过SID来决定用什么方式, 连接到哪里.

0
IdleMan
IdleMan
应该是环境变量的问题
半点竹节
半点竹节
谢谢,是的
返回顶部
顶部