[英]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中):
但是,如果您只想執行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.