qingduo04 发表于 2012-09-27 18:56

perl 怎样连接 TERADATA?

环境: AIX 6.1   PERLThis is perl, v5.8.8 built for aix-thread-multi
打算在 AIX 实现perl连接 teradata
目前已经 安装bteq了。bteq测试正常。

安装 DBD-Teradata-1.52 有如下信息:
cm_etl_1:/db2home/db2inst1/DBD-Teradata-1.52# perlMakefile.PL


*** Configuring DBD::Teradata (feature-limited free edition)...


***************************************************************
*
*       !!!NOTE TO INSTALLERS!!!
*
*       DBD::Teradata will be built using the following
*       directives:
*       Libraries: -L/usr/lib -lcliv2 -lnet -lsocket -lresolv -ltdusr.so
*       Include files:
*       Compile flags: -D__error_t_defined=1
*
*       If your CLI2 libraries and/or include files are in another
*       location, please update the TDAT_DBD_CLI_LIB and
*       TDAT_DBD_CLI_INC environment variables before running
*       Makefile.PL.
*
***************************************************************

Checking for DBI, 1.40 or later ... ok
Checking for Math::BigInt, 1.73 or later ... ok
Note (probably harmless): No library found for -lcliv2
Note (probably harmless): No library found for -lnet
Note (probably harmless): No library found for -lsocket
Note (probably harmless): No library found for -lresolv
Note (probably harmless): No library found for -ltdusr.so
Writing Makefile for DBD::Teradata

cm_etl_1:/db2home/db2inst1/DBD-Teradata-1.52# make
      cc_r -c    -D__error_t_defined=1 -O    -DVERSION=\"1.52\"-DXS_VERSION=\"1.52\""-I/usr/opt/perl5/lib/5.8.8/aix-thread-multi/CORE"   Teradata.c
"/usr/include/coptypes.h", line 221.10: 1506-236 (W) Macro name VERSION has been redefined.
    1500-030: (I) INFORMATION: XS_DBD__Teradata__Cli_tdxs_get_connection: Additional optimization may be attained by recompiling and specifying MAXMEM option with a value greater than 8192.
Running Mkbootstrap for DBD::Teradata ()
      chmod 644 Teradata.bs
      rm -f blib/arch/auto/DBD/Teradata/Teradata.so
      ld-bhalt:4 -bexpall -G -bnoentry -lpthreads -lc Teradata.o-o blib/arch/auto/DBD/Teradata/Teradata.so               
ld: 0711-768 WARNING: Object Teradata.o, section 1, function .strcmp:
      The branch at address 0x194 is not followed by a recognized no-op
      or TOC-reload instruction. The unrecognized instruction is 0x2C030000.
ld: 0711-768 WARNING: Object Teradata.o, section 1, function .strcmp:
      The branch at address 0x3d4c is not followed by a recognized no-op
      or TOC-reload instruction. The unrecognized instruction is 0x2C030000.
ld: 0711-768 WARNING: Object Teradata.o, section 1, function .strcmp:
      The branch at address 0x4bb4 is not followed by a recognized no-op
      or TOC-reload instruction. The unrecognized instruction is 0x7C0300D0.
      chmod 755 blib/arch/auto/DBD/Teradata/Teradata.so
         cp Teradata.bs blib/arch/auto/DBD/Teradata/Teradata.bs
      chmod 644 blib/arch/auto/DBD/Teradata/Teradata.bs
Manifying blib/man3/DBD::Teradata.3
cm_etl_1:/db2home/db2inst1/DBD-Teradata-1.52# make install
Installing /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Teradata/Teradata.so
Installing /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Teradata/Teradata.bs
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/DBD/Teradata.pm
Installing /usr/opt/perl5/man/man3/DBD::Teradata.3
Writing /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Teradata/.packlist
Appending installation info to /usr/opt/perl5/lib/5.8.8/aix-thread-multi/perllocal.pod



======================
但是在运行 perl程序的时候,


$ perlliqd_text.pl
install_driver(Teradata) failed: Can't load '/usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Teradata/Teradata.so' for module DBD::Teradata: rtld: 0712-001 Symbol DBCHCL was referenced
      from module /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Teradata/Teradata.so(), but a runtime definition
      of the symbol was not found.
rtld: 0712-001 Symbol DBCHWAT was referenced
      from module /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Teradata/Teradata.so(), but a runtime definition
      of the symbol was not found.
rtld: 0712-001 Symbol DBCHREL was referenced
      from module /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Teradata/Teradata.so(), but a runtime definition
      of the symbol was not found.
rtld: 0712-001 Symbol DBCHINI was referenced
      from module /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/auto/DBD/Teradata/Teradata.so(), but a runtime definition
      of the symbol was not found. at /usr/opt/perl5/lib/5.8.8/aix-thread-multi/XSLoader.pm line 70.
at /usr/opt/perl5/lib/site_perl/5.8.8/aix-thread-multi/DBD/Teradata.pm line 5089
Compilation failed in require at (eval 3) line 3.
Perhaps a required shared library or dll isn't installed where expected
at liqd_text.pl line 3


不知道是不是还要再甚至什么环境?请各位指点!

tuyajie 发表于 2012-10-12 17:26

要他自己的驱动吗?

jc0616 发表于 2015-10-12 23:31

您好, 请问您之前Perl在aix上连接teradata的问题有答案吗?我也碰到一样的问题

qingduo04 发表于 2015-10-13 20:43

回复 3# jc0616


    你好,我们现场已经没有teradata数据库了,当时的脚本都已经没有了。
页: [1]
查看完整版本: perl 怎样连接 TERADATA?