簡體   English   中英

如何在perl腳本中調用SQL

[英]how to invoke SQL inside perl script

我正在嘗試使用此代碼連接數據庫並執行一些SQL查詢,但每次它掛起時。

my $connect_str = `/osp/local/etc/.oralgn $srv_name PSMF`;
my $sqlFile = "/osp/local/home/linus/amit/mytest.sql";
my ($abc, $cde)= split (/\@/ , $connect_str );
print "$abc";

$ORACLE_SID=SDDG00;
`export $ORACLE_SID`;

#chomp($abc);

#$abc=~ s/\s+$//;
`sqlplus $abc`;

open (SQL, "$sqlFile");


while (my $sqlStatement = <SQL>) {
   $sth = dbi->prepare($sqlStatement)
         or die (qq(Can't prepare $sqlStatement));

            $sth->execute()
                  or die qq(Can't execute $sqlStatement);
                  }

如何在Perl調用SQL命令?

閱讀DBI模塊文檔將是一個不錯的開始。

您的問題似乎是這條線。

$sth = dbi->prepare($sqlStatement)

您試圖在類“ dbi”上調用prepare方法。 但是您的程序中沒有名為“ dbi”的類(或者,至少,在您展示給我們的代碼中我看不到)。

要使用Perl中的數據庫,您需要執行以下操作:

1 /加載DBI模塊(注意,“ DBI”而不是“ dbi”-Perl區分大小寫)。

use DBI;

2 /連接到數據庫並獲取數據庫句柄(有關connect()方法的參數的更多詳細信息,請閱讀DBD :: Oracle文檔 )。

my $dbh = DBI->connect('dbi:Oracle:dbname', $user, $password);

3 /然后,您可以使用此數據庫句柄准備SQL語句。

my $sth = $dbh->prepare($sqlStatement);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM