繁体   English   中英

如何通过Perl脚本运行sql(.sql文件)

[英]how to run a sql(.sql file) via perl script

嗨,我有一个sql文件(test.sql),简单得像,

select emp_id from employees 
where country='xxx'
and department='sales'

我知道如何使用Shell脚本调用此sql,我们通常使用

#/bin/ksh

sqlplus $login $password test.sql

所以我的外壳程序将调用此sql,并将其后台打印到文件中。 但是如何使用perl脚本执行相同的操作。

我是Perl脚本的新手,任何帮助都将不胜感激。

您必须先编写将SQL文件的路径作为参数然后执行它的Perl脚本,才能直接执行该SQL文件。 这是一个解释如何做的问题(在perl中):

在Perl中执行SQL文件

但是,如果您只想执行sql文件,则有更简单的方法可以执行该操作。 除了使用perl而不是ksh来执行此操作外,您可以随意澄清您要完成的工作-我们也许可以提供更多的见解:)。

在非常基本的级别上,您可以如下所示调用系统命令。

假设您在用户中设置了Oracle环境变量,并且可以在$ PATH上找到sqlplus

my $login     = "fred";
my $password  = "secretword";
my $sqlfile   = "/path/to/test.sql";

my @sql_array = system("sqlplus $login $password $sqlfile");

我选择将结果存储在数组中,以便可以依次遍历每个元素(行)

foreach my $row ( @sql_array )
{
    print $row;
}

可能有更好的方法来执行此操作,但在学习Perl时将其保持基础,我总是发现system()命令是一个很好的朋友。 使用Perl数组是我选择的从系统命令读取输出的方法。

您可能会在数组中找到其他虚假数据位(sqlplus,但可以在foreach循环中使用正则表达式对它们进行删节。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM