gpt4 book ai didi

oracle - perl中如何处理模块抛出的错误

转载 作者:行者123 更新时间:2023-12-03 08:05:32 25 4
gpt4 key购买 nike

我正在使用模块 DBD::Oracle在 perl 中将 xml 内容插入到 oracle 11 g 实例中。在我的示例集中插入一些文档时,脚本失败,因为模块返回 Unsupported named object type for bind parameter .我想处理这个错误并继续循环迭代。

以下是我的代码,

use strict;
use warnings;
use DBI;
use DBD::Oracle qw(:ora_session_modes);
use DBD::Oracle qw(:ora_types);

die("USAGE: $0 <input_directory>") unless ($#ARGV == 0);
my $directory=$ARGV[0];

my $dbh = DBI->connect('dbi:Oraclle:dbname',"username", "pass");
my $SQL;



opendir(IMD, $directory) || die ("Cannot open directory");
my @listOfFiles= readdir(IMD);
closedir(IMD);

my $xmltype_string;
my $xml;
my $i = 1;
foreach my $file(@listOfFiles)
{
unless($file eq '.' or $file eq '..')
{
print "inserting File no. $i \t $file .... \n";

{
local $/=undef;
open (FILE , "<" , "$directory/$file" );
$xml=<FILE>;
close (FILE);
}
$SQL="insert into sampleTable values ( :ind, :xml)";
my $sth =$dbh-> prepare($SQL);
$sth->bind_param(":xml" , $xml , { ora_type => ORA_XMLTYPE});
$sth->bind_param(":ind" , $i);
$sth-> execute();


$i++;
}
}

我在绑定(bind)参数中遇到错误。

最佳答案

错误处理通常通过 Try::Tiny 模块:

use Try::Tiny;

try {
something_that_could_die();
}
catch {
handle_error($_);
}
finally {
do_something_either_way();
}; # ← trailing semicolon not optional.

两个 catchfinally是可选的。

关于oracle - perl中如何处理模块抛出的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23104633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com