免费注册 查看新帖 |

Chinaunix

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

使用DBI连接Oracle数据库的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-02-03 09:48 |只看该作者 |倒序浏览
  1. [oracle@localhost perl]$ cat test.pl
  2. #!/u01/app/oracle/product/10.2.0/db_1/perl/bin/perl -w

  3. use strict;
  4. use DBI;
  5. print "ok";
  6. my @ary = DBI->available_drivers;
  7. print "@ary";
  8. my $dbh = DBI->connect("dbi:Oracle:G_192.168.1.171","username","passwd") || die "Couldn't connect to data";
复制代码
上面是我的代码,使用的是Oracle客户端自带的perl去连接Oracle数据库。不知道为什么这个脚本没法执行,一直是停在那里的也没有任何错误提示,连第一个ok都没用打印出来,如果是把最后一行注释掉就可以成功执行前面的代码了,不知道有人遇见过这种情况吗?
  1. [oracle@localhost perl]$ ./test.pl

复制代码

论坛徽章:
0
2 [报告]
发表于 2010-02-03 10:24 |只看该作者
本帖最后由 Pro_sky 于 2010-02-03 10:26 编辑

不是脚本没执行吧,是连接的时候在等待,可能超时时间比较长

ok没打出来应该是 被缓存了,你可以设置 "$| = 1" 或者 print "ok\n"

论坛徽章:
0
3 [报告]
发表于 2010-02-03 10:41 |只看该作者
回复 2# Pro_sky


    多谢你的回复啊,确实是执行了 print的,怎么加个\n 就不会被缓存了吗?现在的问题是根本没有发包出去啊。。不知道可能是什么原因引起的呢?

论坛徽章:
78
双子座
日期:2013-10-15 08:50:09天秤座
日期:2013-10-16 18:02:08白羊座
日期:2013-10-18 13:35:33天蝎座
日期:2013-10-18 13:37:06狮子座
日期:2013-10-18 13:40:31双子座
日期:2013-10-22 13:58:42戌狗
日期:2013-10-22 18:50:04CU十二周年纪念徽章
日期:2013-10-24 15:41:34巨蟹座
日期:2013-10-24 17:14:56处女座
日期:2013-10-24 17:15:30双子座
日期:2013-10-25 13:49:39午马
日期:2013-10-28 15:02:15
4 [报告]
发表于 2010-02-03 10:47 |只看该作者
print "@ary";

打印出了什么?

论坛徽章:
0
5 [报告]
发表于 2010-02-03 10:49 |只看该作者
回复 4# yybmsrs


    ExampleP Oracle Proxy Sponge


以前都是可以连接的不知道为什么突然就不能连接了

论坛徽章:
0
6 [报告]
发表于 2010-02-03 10:59 |只看该作者
回复 3# lth0721


    perl跟C应该一样,标准输出是按行缓存的

论坛徽章:
0
7 [报告]
发表于 2010-02-03 12:42 |只看该作者
我现在把这个脚本换到另一台机器执行,结果提示
./test.pl
Can't locate strict.pm in @INC (@INC contains: /ade/smayer_perl58_main_linux/perl58/bin/Linux/Opt/lib/5.8.3/i686-linux-thread-multi /ade/smayer_perl58_main_linux/perl58/bin/Linux/Opt/lib/5.8.3 /ade/smayer_perl58_main_linux/perl58/bin/Linux/Opt/lib/site_perl/5.8.3/i686-linux-thread-multi /ade/smayer_perl58_main_linux/perl58/bin/Linux/Opt/lib/site_perl/5.8.3 /ade/smayer_perl58_main_linux/perl58/bin/Linux/Opt/lib/site_perl .) at ./test.pl line 2.
BEGIN failed--compilation aborted at ./test.pl line 2.

但是我是有strict的啊
[oracle@63-216-146-37 perl]$ locate strict.pm
/u01/app/oracle/product/10.2.0/db_1/perl/lib/5.8.3/strict.pm

论坛徽章:
0
8 [报告]
发表于 2010-02-03 13:10 |只看该作者
回复 7# lth0721

push @INC, "/u01/app/oracle/product/10.2.0/db_1/perl/lib/5.8.3/";

或者

use lib '/u01/app/oracle/product/10.2.0/db_1/perl/lib/5.8.3/';

论坛徽章:
0
9 [报告]
发表于 2010-02-03 14:05 |只看该作者
回复 8# Pro_sky
  1. [oracle@63-216-146-37 perl]$ ./test.pl
  2. Can't locate lib.pm in @INC (@INC contains: /ade/smayer_perl58_main_linux/perl58/bin/Linux/Opt/lib/5.8.3/i686-linux-thread-multi /ade/smayer_perl58_main_linux/perl58/bin/Linux/Opt/lib/5.8.3 /ade/smayer_perl58_main_linux/perl58/bin/Linux/Opt/lib/site_perl/5.8.3/i686-linux-thread-multi /ade/smayer_perl58_main_linux/perl58/bin/Linux/Opt/lib/site_perl/5.8.3 /ade/smayer_perl58_main_linux/perl58/bin/Linux/Opt/lib/site_perl .) at ./test.pl line 2.
  3. BEGIN failed--compilation aborted at ./test.pl line 2.
复制代码
不晓得是什么问题啊。。难道是需要设置什么环境变量吗?

论坛徽章:
0
10 [报告]
发表于 2010-02-03 14:43 |只看该作者
Can't locate lib.pm
这个是pm没装全。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP