2

我正在将一些 shell 脚本转换为 perl。所有的数据库访问都是使用 sqlplus 完成的。使用 perl 是访问 Oracle 数据库的更好方法,或者我应该坚持使用 sqlplus。

4

2 回答 2

7

DBI是标准的 Perl 数据库接口(不出所料,它有一个Oracle 驱动程序)。DBIx::Class用一个漂亮的 ORM 接口包装它。

SQL Plus 似乎是 Oracle 的命令行界面。要从 Perl 中使用它,您必须通过将字符串混合在一起来构建查询(这是引入 SQL 注入问题的好方法),向命令行客户端发送壳,然后解析文本输出。那是疯狂。使用为您提供 Perl 数据结构的接口。

于 2012-07-17T15:25:36.567 回答
3

下面是一个使用 DBI 的简短示例:

use DBI;

$user = 'donny';
$password = 'ppp';
$dbconnectstring = 'basetest';
$dbh = DBI->connect('dbi:Oracle:',$user.'@'.$password,$dbconnectstring);

另外,请注意您可以在 perl 脚本中访问 sqlplus - 或任何命令行。只需使用反引号:

`cd dasd`

例如。不知道你是否想这样做,但只是一个想法,因为你说你正在将 shell 转换为 perl。

于 2012-07-17T15:57:51.760 回答