一、配置 sybase环境
这里sybase安装目录为/opt/sybase
## SAP Product Environment variables#SAP_JRE7_32="/opt/sybase/shared/SAPJRE-7_1_027_32BIT"export SAP_JRE7_32SAP_JRE7="/opt/sybase/shared/SAPJRE-7_1_027_64BIT"export SAP_JRE7SAP_JRE7_64="/opt/sybase/shared/SAPJRE-7_1_027_64BIT"export SAP_JRE7_64SYBASE_OCS="OCS-16_0"export SYBASE_OCSINCLUDE="/opt/sybase/OCS-16_0/include":$INCLUDEexport INCLUDELIB="/opt/sybase/OCS-16_0/lib":$LIBexport LIBPATH="/opt/sybase/OCS-16_0/bin":$PATHexport PATH## Replace lib, lib3p, and lib3p64 with devlib, devlib3p, and devlib3p64 when debugging#LD_LIBRARY_PATH="/opt/sybase/OCS-16_0/lib:/opt/sybase/OCS-16_0/lib3p64:/opt/sybase/OCS-16_0/lib3p":$LD_LIBRARY_PATHexport LD_LIBRARY_PATHLD_LIBRARY_PATH="/opt/sybase/DataAccess/ODBC/lib":$LD_LIBRARY_PATHexport LD_LIBRARY_PATHLD_LIBRARY_PATH="/opt/sybase/DataAccess64/ODBC/lib":$LD_LIBRARY_PATHexport LD_LIBRARY_PATHSYBASE="/opt/sybase"export SYBASESYBASE_ASE="ASE-16_0"export SYBASE_ASEPATH="/opt/sybase/ASE-16_0/bin:/opt/sybase/ASE-16_0/install":$PATHexport PATHSYBROOT="/opt/sybase"export SYBROOTSYBASE_JRE_RTDS="/opt/sybase/shared/SAPJRE-7_1_027_64BIT"export SYBASE_JRE_RTDSLD_LIBRARY_PATH="/opt/sybase/ASE-16_0/lib":$LD_LIBRARY_PATHexport LD_LIBRARY_PATHSYBASE_WS="WS-16_0"export SYBASE_WSPATH="/opt/sybase/ASE-16_0/jobscheduler/bin":$PATHexport PATH
把上面这段加到~/.bashrc
二、安装
wget https://cpan.metacpan.org/authors/id/T/TI/TIMB/DBI-1.636.tar.gz
tar zxvf DBI-1.636.tar.gz
cd DBI-1.636
perl Makefile.PL
make sudo make install三、安装DBD-Sybase
wget http://www.cpan.org/authors/id/M/ME/MEWP/DBD-Sybase-1.15.tar.gz
tar zxvf DBD-Sybase-1.15.tar.gz
cd DBD-Sybase-1.15
perl Makefile.PL
make sudo make install四、安装其他DBD模块注意
DBD-pg需要设置POSTGRES_HOME、POSTGRES_INCLUDE、POSTGRES_LIB等环境变量
DBD-mysql需提供mysql_config路径,如:
perl Makefile.PL --mysql_config=/opt/mysql/bin/mysql_config
DBD-db2需要配置export DB2_HOME=/home/db2inst1/sqllib,DBD-Oracle需要配置ORACLE_HOME
等,总之编译安装DBD模块前要告知数据库服务器安装的位置
五、测试代码(需修改服务名、数据库名、用户名、密码、表名等对应你的数据库环境)
#!/usr/bin/perluse DBI;use DBD::Sybase; $dbname="your-db";$user="your-user";$passwd="your-passwd";$dsn = "DBI:Sybase:server=MYMOTIFVOSTRO145480;database=$dbname"; $dbh = DBI->connect($dsn,$user,$passwd) or die "can't connect to database : $DBI::errstr";$sth=$dbh->prepare("select * from your-table");$sth->execute;while (@recs=$sth->fetchrow_array) {print $recs[0].":".$recs[1].":".$recs[2]."\n";}$dbh->disconnect;
六、ODBC方式
安装DBD-ODBC,wget http://www.cpan.org/authors/id/M/MJ/MJEVANS/DBD-ODBC-1.56.tar.gz
安装过程和上面类似
配置sybase的odbc驱动
/etc/odbcinst.ini追加
[sybase]Description = SybaseDriver = /opt/sybase/DataAccess/ODBC/lib/libsybdrvodb.so Driver64 = /opt/sybase/DataAccess64/ODBC/lib/libsybdrvodb.soFileUsage = 1
/etc/odbc.ini追加
[sybtestdb]Description = Sybase ODBC Data SourceDriver = sybaseServer = localhostPort = 5000Database = your-dbServerName = your-srvnameUserID = your-userPassword = your-passwd
测试代码
#!/usr/bin/perluse DBI;use DBD::ODBC; #sybtestdb 字串对应于 /etc/odbc.ini 里面的 [DSN] $dsn = "DBI:ODBC:sybtestdb"; $dbh = DBI->connect($dsn) or die "can't connect to database : $DBI::errstr";$sth=$dbh->prepare("select * from you-table");$sth->execute;$sth->{'LongTruncOk'} = 1;while (@recs=$sth->fetchrow_array) { print $recs[0].":".$recs[1].":".$recs[2]."\n";}$dbh->disconnect;