NAME
PDK::DBI::Oracle - Oracle 数据库操作工具类
SYNOPSIS
use PDK::DBI::Oracle;
my $db = PDK::DBI::Oracle->new(
host => '127.0.0.1',
port => 1521,
sid => 'ORCL',
user => 'scott',
password => 'tiger',
);
# 执行查询
my $rows = $db->select(
table => 'EMP',
column => ['EMPNO', 'ENAME']
)->all;
# 插入数据(自动提交)
eval {
$db->insert(
table => 'EMP',
param => { EMPNO => 9999, ENAME => 'TEST' }
);
};
if ($@) {
warn "数据库操作失败: $@";
}
DESCRIPTION
该模块基于 DBIx::Custom,对 Oracle 数据库提供了更高层次的封装。 支持事务自动提交/回滚、批量执行、自动构建 DSN 等功能。
ATTRIBUTES
- host
-
字符串类型,Oracle 服务器主机名。
- port
-
字符串或整数类型,Oracle 监听端口,默认 1521。
- sid
-
字符串类型,Oracle 数据库实例名。
- dsn
-
数据库 DSN。若未显式指定,将由
host
、port
、sid
自动拼接。 - user
-
字符串类型,数据库用户名。
- password
-
字符串类型,数据库密码。
- option
-
哈希引用,数据库连接选项。 默认值为:
{ AutoCommit => 0, RaiseError => 1, PrintError => 0 }
METHODS
select / insert / update / delete / execute
继承自 DBIx::Custom 的常用数据库操作方法。
batchExecute(\@params, $sql)
批量执行 SQL 语句,内部调用 "_rawExecute"。 每 5000 条自动提交一次事务,适合大批量数据处理。
_rawExecute(\@params, $sql)
底层批量执行方法。 逐条执行 @params
中的参数绑定 SQL,支持自动分批提交。
clone
克隆当前数据库对象,生成新的连接实例。
disconnect
断开当前数据库连接。
reconnect
重建数据库连接。
ERROR HANDLING
所有事务型方法(insert、update、delete、execute、batchExecute)出错时会自动回滚,并通过
Carp::confess
抛出异常。rollback 失败时,会额外输出 DBI 错误信息。
DSN CONSTRUCTION
若未显式指定 dsn
,则根据以下规则自动拼接:
dbi:Oracle:host=$host;sid=$sid;port=$port
COMPATIBILITY
当环境变量 LANG
存在时,会设置以下 Oracle 环境变量以提高兼容性:
NLS_CURRENCY = '*'
NLS_DUAL_CURRENCY = '*'
AUTHOR
WENWU YAN <968828@gmail.com>
LICENSE AND COPYRIGHT
This software is licensed under the same terms as Perl itself.