这到底有没有可能?我在网上看到过一些引用,指出应该使用存储过程,但我有一个脚本需要将go数据插入到数据库中。我该如何做,如果真的要做的话?
发布于 2011-09-27 04:55:21
您需要使用DBD::Oracle模块,
use DBD::Oracle qw(:ora_types);
在绑定参数时,不要忘记指定ora_type
$sth = $dbh->prepare("insert ...");
$sth->bind_param($field_num, $lob_value, { ora_type => ORA_LOB });
$sth->execute
$lob_value是包含文件内容的标量变量。
发布于 2018-06-10 03:42:51
我无法运行米格尔的例子,因为我安装的Perl没有ORA_LOB oracle类型。下面是一个适用于我的示例。
为简洁起见,我使用了硬编码值和内部db子例程,因此您显然需要将代码集成到您的环境中。
use strict;
use DBI;
use DBD::Oracle qw(:ora_types);
require "lib.pl"; #contains getDBConnection() and myExit()
our $dbh = getDBConnection();
my $lob_value;
open FILE, "D:/Inet/wwwroot/tmpcharts/data.xls" or myExit("Failed to open input file: $!\n");
binmode FILE;
$lob_value .= $_ while(<FILE>);
close FILE;
my $sth = $dbh->prepare("update x_trl_test_files set doc=? where file_id=6");
$sth->bind_param(1, $lob_value, { ora_type => ORA_BLOB });
$sth->execute;
$dbh->commit;
myExit();
https://stackoverflow.com/questions/7560809
复制相似问题