Perl脚本怎么连接OB 麻烦提供下例子代码 谢谢
#!/usr/bin/perl -w
use strict;
use DBI;
my $host = “localhost”;
my $driver = “mysql”;
my $database = “RUNOOB”;
my $dsn = “DBI:$driver:database=$database:$host”;
my $userid = “root”;
my $password = “123456”;
连接数据库
my $dbh = DBI->connect($dsn, $userid, $password ) or die $DBI::errstr;
my $sth = $dbh->prepare(“SELECT * FROM Websites”);
$sth->execute();
while ( my @row = $sth->fetchrow_array() )
{
print join(’\t’, @row)."\n";
}
$sth->finish();
$dbh->disconnect();
就当mysql 的方式去连接就好了
谢谢您的回答。但我们采用的是Oracle模式,用mysql驱动去连接OB数据库能成功吗?或者有没有连接ORACLE模式的脚本源码例子看看,谢谢您
这个不能的,oracle 模式找一下对应的SA或者支持人员吧
Oracle模式的来了。没有啥是perl无法做的。
用通用的数据库接口ODBC,先装好ODBC客户端 三个包
rpm -ivh libobclient-<version_no>.rpm
rpm -ivh ob-connector-odbc-<version_no>.rpm
rpm -ivh ob-unixodbc-<version_no>.rpm##这个可以选用UNIXODBC官网版
配好DSN:比如下面这个
[hnltob] #海南某某某通随便定义的一个DSN名称
Description = OCEANBASE ODBC DSN
Driver = OB ##这个要在/etc/odbcinst.ini里配三行
#[OB]
#Description = ODBC for Oceanbase
#Driver = /u01/ob-connector-odbc/lib64/mariadb/libobodbc.so
SERVER=1.29.1.1 #OB的IP
PORT=1306 #OB的端 口
user=DB_USER@hnlt#hl_cluster20000 #OB的数据库用户@数据库名称(一般与租户名相同)#集群名(对了,这个串很重要哦,要找熟悉Ob数据库部署的人来问清楚)
Password = yourpasswd
database=DB_USER#经尝试,发现用数据库的用户名可以通过
代码很简单
use DBI;
my $dbh = DBI->connect(‘dbi:ODBC:hnltob’) or die DBI->errstr;
my $sth = $dbh->prepare(“SELECT count(*) FROM user_tables”)
or die "Cannot prepare statement: " . $dbh->errstr;
$sth->execute()
or die "Cannot execute statement: " . $sth->errstr;
while (my $row = $sth->fetchrow_arrayref) {
print “@$row\n”;
}
$dbh->disconnect;
感谢分享
学习了