LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1615|回复: 7

安转了 DBD:ORACLE 但是还报错(已解决,新手引以为戒)

[复制链接]
发表于 2006-7-14 16:16:11 | 显示全部楼层 |阅读模式
操作如下
install_driver(ORACLE) failed: Can't locate DBD/ORACLE.pm in @INC (@INC contains: /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 .) at (eval 1) line 3.
Perhaps the DBD::ORACLE perl module hasn't been fully installed,
or perhaps the capitalisation of 'ORACLE' isn't right.
Available drivers: ExampleP, Oracle, Pg, Proxy.
at ./sql.pl line 15


怎么办 我的事 redhat
我也重新登陆了啊
是不是非要在 路径里面把 DBD的路径加上
可是在哪修改这个环境变量呢


谢谢了
发表于 2006-7-14 16:32:13 | 显示全部楼层
“安装了”是什么意思?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-14 16:46:16 | 显示全部楼层
装了 DBD::Oracle这个模块
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-14 16:47:40 | 显示全部楼层
这是
perldoc DBD::Oracle
的显示,说明有这个模块了

i386-linux-thread-multUserBContributed)i386-linux-thread-multi:BD::Oracle(3)

NAME
       DBD::Oracle - Oracle database driver for the DBI module

SYNOPSIS
         use DBI;

         $dbh = DBI->connect("dbi:Oracledbname", $user, $passwd);

         $dbh = DBI->connect("dbi:Oracle:host=$host;sid=$sid", $user, $passwd);

         # See the DBI module documentation for full details

         # for some advanced uses you may need Oracle type values:
         use DBD::Oracle qw(ra_types);

DESCRIPTION
       DBD::Oracle is a Perl module which works with the DBI module to provide
       access to Oracle databases.

CONNECTING TO ORACLE
下面的省略了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-14 16:52:24 | 显示全部楼层
我的程序

  1. #!/usr/bin/perl -w

  2. use DBI;
  3. use strict;

  4. my ($dsn, $user, $password);
  5. my @rows;
  6. my $dbh;
  7. my $sth1;

  8. $dsn="DBI:ORACLE:POWER";
  9. $user="intf";
  10. $password="intf";

  11. $dbh=DBI->connect($dsn,$user,$password,{RaiseError => 1, AutoCommit => 0})
  12.                             ||die "Catabase Connect not made : $DBI::errstr";
  13. $sth1=DBI->prepare("select * from t_In_datb_a");
  14. $sth1->execute();

  15. while(@rows = $sth1->fetchrow_array)
  16. {
  17.         print "@rows \n";
  18. }

  19. $sth1->finish();
  20. $sth1->disconnect();
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-14 16:54:37 | 显示全部楼层
郁闷的是
我现在改成

  1. #!/usr/bin/perl -w

  2. use DBI;
  3. use strict;

  4. my ($dsn, $user, $password);
  5. my @rows;
  6. my $dbh;
  7. my $sth1;

  8. $dsn="DBI:[color=red]Oracle[/color]:POWER";
  9. $user="intf";
  10. $password="intf";

  11. $dbh=DBI->connect($dsn,$user,$password,{RaiseError => 1, AutoCommit => 0})
  12.                             ||die "Catabase Connect not made : $DBI::errstr";
  13. $sth1=DBI->prepare("select * from t_In_datb_a");
  14. $sth1->execute();

  15. while(@rows = $sth1->fetchrow_array)
  16. {
  17.         print "@rows \n";
  18. }

  19. $sth1->finish();
  20. $sth1->disconnect();
复制代码


报这个错

  1. Can't locate auto/DBI/prepare.al in @INC (@INC contains: /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 .) at ./sql.pl line 17
  2. Issuing rollback() for database handle being DESTROY'd without explicit disconnect().
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-14 17:06:07 | 显示全部楼层
不好意思
使我对oracle操作没有理解透彻
代码写错了

  1. #!/usr/bin/perl -w

  2. use DBI;
  3. use strict;

  4. my ($dsn, $user, $password);
  5. my @rows;
  6. my $dbh;
  7. my $sth;

  8. $dsn="dbi:Oracle:power";
  9. $user="intf";
  10. $password="intf";

  11. $dbh=DBI->connect($dsn,$user,$password,{RaiseError => 1, AutoCommit => 0})
  12.                             ||die "Catabase Connect not made : $DBI::errstr";
  13. [color=red]$sth=$dbh->prepare("select * from t_In_dKtb_a");[/color]
  14. $sth->execute();

  15. while(@rows = $sth->fetchrow_array)
  16. {
  17.         print "@rows \n";
  18. }

  19. $sth->finish();
  20. [color=red]$dbh->disconnect();[/color]
复制代码


不好意思
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-14 17:11:24 | 显示全部楼层
以后可要注意了

原来还分大小写
dbi:Oracle 和 dbi:ORACLE 不一样啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表