簡體   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