簡體   English   中英

如何從Perl腳本執行PL SQL文件

[英]How to execute a Pl sql file from a perl script

嗨,大家好,請您幫我了解如何從Perl腳本中調用pl sql文件

我有一個像這樣的pl sql文件

DECLARE
 x NUMBER := 100;
BEGIN
FOR i IN 1..10 LOOP
  IF MOD(i,2) = 0 THEN     -- i is even
     INSERT INTO temp VALUES (i, x, 'i is even');
  ELSE
     INSERT INTO temp VALUES (i, x, 'i is odd');
  END IF;
  x := x + 100;
END LOOP;
COMMIT;
END; 

該文件名為test.sql,我想從perl腳本中調用此文件。 我知道首先我們必須連接到db,然后執行該過程,但是我現在不知道如何從perl腳本執行此文件

基本上你需要

  • 將DBI模塊與相應的驅動程序(Oracle或其他任何驅動程序)一起使用
  • 通過使用純perl在腳本中將其插入變量
  • 打開數據庫連接
  • 准備口吃的腳本
  • 執行語句句柄
  • 與數據庫斷開連接

這是一個示例(我沒有顯示如何在腳本中粗魯):

use DBI;
use DBD::Oracle;

my $service="xxx";
my $user = "yyy";
my $pass = "zzz";

my $DBH = DBI->connect
  (
   "dbi:Oracle:$service", 
   "$user", "$pass",
   { 
    RaiseError => 0, 
    PrintError => 0, 
    AutoCommit => 0, 
    ShowErrorStatement  => 0
   }
  ) or die;

my $script = qq(
    declare
        x number := 1;
    begin
        insert into xxx values (x);
        commit;
    end;
);

my $sth = $DBH->prepare($script) or die;
$sth->execute() or die;

$DBH->disconnect();

暫無
暫無

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

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