【发布时间】:2021-08-21 20:53:36
【问题描述】:
我有一个如下所示的 Oracle 表。 我需要使用 perl 在此表中插入一条记录。 要插入的数据包括varchar、number、blob和timestamp。 我不插入 attr1 因为它默认为零。 另外,有没有办法获得插入的行数?
我想出了一些代码,但它不完整。我正在寻求有关如何对其进行编码的帮助,并会感谢任何帮助,尤其是因为我是 perl 的新手。
table
attr1 INT DEFAULT 0 NOT NULL,
attr2 VARCHAR(255) NOT NULL,
attr3 NUMBER NOT NULL,
attr4 BLOB NOT NULL,
attr5 TIMESTAMP NOT NULL,
CONSTRAINT table_pk PRIMARY KEY (attr1, attr2)
use DBD::Oracle qw(:ora_types);
sub blob_and_other_data {
my $attr2 = shift; # varchar data looks like '38573985-45643756283'
my $attr3 = shift; # number data looks like '-9394857384'
my $attr4 = shift; # blob data
my $attr5 = shift; # timestamp data looks like '03-Jun-21 4:38:34 pm'
my $sql_statement = "insert into table (attr2, attr3, attr4, attr5) VALUES (?, ?, ?, ?)";
my $sth = $dbh->prepare($sql_statement);
$sth->bind_param(1, $attr2);
$sth->bind_param(2, $attr3, { ora_type => ? }); # not even sure if this is needed
$sth->bind_param(3, $attr4, { ora_type => ORA_BLOB });
$sth->bind_param(4, $attr5, { ora_type => ? }); # not even sure if this is needed
$sth->execute();
}
【问题讨论】: