如何在Strawberry Perl中安装DBD :: Oracle

时间:2009-12-04 18:29:56

标签: perl oracle dbi strawberry-perl dbd

我正在尝试使用Strawberry Perl中的CPAN shell安装DBD::Oracle。我最初遇到错误,因为Makefile无法找到OCI库,因此我从Oracle安装了即时客户端。我认为这样可以解决问题,但现在我收到来自Oracle.hdbdimp.hOracle.cOracle.xsiOracle.xs的大量错误和警告

有关我应如何处理的任何建议?我的计算机上现有的Oracle软件是否存在问题?我对Perl很新,所以感谢任何帮助。

修改 - 我将以下整个输出包括在内:

cpan> install DBD::Oracle
Database was generated on Fri, 04 Dec 2009 16:12:46 GMT
Running install for module 'DBD::Oracle'
Running make for P/PY/PYTHIAN/DBD-Oracle-1.23.tar.gz
Checksum for C:\strawberry\cpan\sources\authors\id\P\PY\PYTHIAN\DBD-Oracle-1.23.tar.gz ok
Scanning cache C:\strawberry\cpan\build for sizes
...............................................................-------------DONE

  CPAN.pm: Going to build P/PY/PYTHIAN/DBD-Oracle-1.23.tar.gz

Multiple copies of Driver.xst found in: C:/strawberry/perl/site/lib/auto/DBI/ C:\strawberry\perl\vendor\lib/auto/DBI/ at Makefile.PL line 37
Using DBI 1.609 (for perl 5.010001 on MSWin32-x86-multi-thread) installed in C:/strawberry/perl/site/lib/auto/DBI/
Argument "6.55_02" isn't numeric in numeric ge (>=) at Makefile.PL line 61.

Configuring DBD::Oracle for perl 5.010001 on MSWin32 (MSWin32-x86-multi-thread)

Remember to actually *READ* the README file! Especially if you have any problems.

Installing on a MSWin32, Ver#5.1
Using Oracle in C:/ORACLE/ORA90
DEFINE _SQLPLUS_RELEASE = "900010001" (CHAR)
Oracle version 9.0.1.0 (9.0)
Found oci directory
Using OCI directory 'oci'

Checking for functioning wait.ph


System: perl5.010001 Win32 strawberryperl 5.10.1.0 #1 30 i386
Compiler:   gcc -s -O2  -s -O2 -DWIN32 -DHAVE_DES_FCRYPT  -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -DPERL_
MSVCRT_READFIX
Linker:     not found
Sysliblist:

Checking if your kit is complete...
Looks good
LD_RUN_PATH=C:/ORACLE/ORA90/lib:C:/ORACLE/ORA90/rdbms/lib
Using DBD::Oracle 1.23.
Using DBD::Oracle 1.23.
Multiple copies of Driver.xst found in: C:/strawberry/perl/site/lib/auto/DBI/ C:\strawberry\perl\vendor\lib/auto/DBI/ at Makefile.PL line 1696
Using DBI 1.609 (for perl 5.010001 on MSWin32-x86-multi-thread) installed in C:/strawberry/perl/site/lib/auto/DBI/
Writing Makefile for DBD::Oracle

***  If you have problems...
     read all the log printed above, and the README and README.help.txt files.
     (Of course, you have read README by now anyway, haven't you?)

cp Oracle.pm blib\lib\DBD\Oracle.pm
cp oraperl.ph blib\lib/oraperl.ph
cp dbdimp.h blib\arch\auto\DBD\Oracle/dbdimp.h
cp ocitrace.h blib\arch\auto\DBD\Oracle/ocitrace.h
cp Oraperl.pm blib\lib/Oraperl.pm
cp Oracle.h blib\arch\auto\DBD\Oracle/Oracle.h
cp lib/DBD/Oracle/Object.pm blib\lib\DBD\Oracle\Object.pm
cp mk.pm blib\arch\auto\DBD\Oracle/mk.pm
cp lib/DBD/Oracle/GetInfo.pm blib\lib\DBD\Oracle\GetInfo.pm
C:\strawberry\perl\bin\perl.exe -p -e "s/~DRIVER~/Oracle/g" C:\strawberry\perl\site\lib\auto\DBI\Driver.xst > Oracle.xsi
C:\strawberry\perl\bin\perl.exe C:\strawberry\perl\lib\ExtUtils\xsubpp  -typemap C:\strawberry\perl\lib\ExtUtils\typemap -typemap typemap  Oracle.xs >
 Oracle.xsc && C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e "mv" -- Oracle.xsc Oracle.c
gcc -c  -IC:/ORACLE/ORA90/oci/include -IC:/ORACLE/ORA90/rdbms/demo -IC:\strawberry\perl\site\lib\auto\DBI       -s -O2 -DWIN32 -DHAVE_DES_FCRYPT -DUSE
_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -DPERL_MSVCRT_READFIX -s -O2      -DVERSION=\"1.23\"    -DXS_VERSION=\
"1.23\"  "-IC:\strawberry\perl\lib\CORE"  -Wall -Wno-comment -DUTF8_SUPPORT -DORA_OCI_VERSION=\"9.0.1.0\" Oracle.c
In file included from Oracle.xs:1:
Oracle.h:37:17: oci.h: No such file or directory
Oracle.h:39:20: ocidfn.h: No such file or directory
Oracle.h:40:18: orid.h: No such file or directory
Oracle.h:41:17: ori.h: No such file or directory
In file included from Oracle.h:54,
                 from Oracle.xs:1:
dbdimp.h:16: error: syntax error before "OCIEnv"
dbdimp.h:16: warning: no semicolon at end of struct or union
dbdimp.h:23: error: syntax error before '}' token
dbdimp.h:37: error: syntax error before "OCIEnv"
dbdimp.h:37: warning: no semicolon at end of struct or union
dbdimp.h:38: warning: type defaults to `int' in declaration of `errhp'
dbdimp.h:38: warning: data definition has no type or storage class
dbdimp.h:39: error: syntax error before '*' token
dbdimp.h:39: warning: type defaults to `int' in declaration of `srvhp'
dbdimp.h:39: warning: data definition has no type or storage class
dbdimp.h:40: error: syntax error before '*' token
dbdimp.h:40: warning: type defaults to `int' in declaration of `svchp'
dbdimp.h:40: warning: data definition has no type or storage class
dbdimp.h:41: error: syntax error before '*' token
dbdimp.h:41: warning: type defaults to `int' in declaration of `authp'
dbdimp.h:41: warning: data definition has no type or storage class
dbdimp.h:51: error: syntax error before '}' token
dbdimp.h:66: error: syntax error before "OCIEnv"
dbdimp.h:66: warning: no semicolon at end of struct or union
dbdimp.h:67: warning: type defaults to `int' in declaration of `errhp'
dbdimp.h:67: warning: data definition has no type or storage class
dbdimp.h:68: error: syntax error before '*' token
dbdimp.h:68: warning: type defaults to `int' in declaration of `srvhp'
dbdimp.h:68: warning: data definition has no type or storage class
dbdimp.h:69: error: syntax error before '*' token
dbdimp.h:69: warning: type defaults to `int' in declaration of `svchp'
dbdimp.h:69: warning: data definition has no type or storage class
dbdimp.h:70: error: syntax error before '*' token
dbdimp.h:70: warning: type defaults to `int' in declaration of `stmhp'
dbdimp.h:70: warning: data definition has no type or storage class
dbdimp.h:71: error: syntax error before '*' token
dbdimp.h:71: warning: type defaults to `int' in declaration of `dschp'
dbdimp.h:71: warning: data definition has no type or storage class
dbdimp.h:121: error: syntax error before '}' token
dbdimp.h:143: error: syntax error before "OCIParam"
dbdimp.h:143: warning: no semicolon at end of struct or union
dbdimp.h:144: warning: type defaults to `int' in declaration of `parmap'
dbdimp.h:144: warning: data definition has no type or storage class
dbdimp.h:145: error: syntax error before '*' token
dbdimp.h:145: warning: type defaults to `int' in declaration of `tdo'
dbdimp.h:145: warning: data definition has no type or storage class
dbdimp.h:146: error: syntax error before "typecode"
dbdimp.h:146: warning: type defaults to `int' in declaration of `typecode'
dbdimp.h:146: warning: data definition has no type or storage class
dbdimp.h:147: error: syntax error before "col_typecode"
dbdimp.h:147: warning: type defaults to `int' in declaration of `col_typecode'
dbdimp.h:147: warning: data definition has no type or storage class
dbdimp.h:148: error: syntax error before "element_typecode"
dbdimp.h:148: warning: type defaults to `int' in declaration of `element_typecode'
dbdimp.h:148: warning: data definition has no type or storage class
dbdimp.h:149: error: syntax error before '*' token
dbdimp.h:149: warning: type defaults to `int' in declaration of `obj_ref'
dbdimp.h:149: warning: data definition has no type or storage class
dbdimp.h:150: error: syntax error before '*' token
dbdimp.h:150: warning: type defaults to `int' in declaration of `obj_ind'
dbdimp.h:150: warning: data definition has no type or storage class
dbdimp.h:151: error: syntax error before '*' token
dbdimp.h:151: warning: type defaults to `int' in declaration of `obj_value'
dbdimp.h:151: warning: data definition has no type or storage class
dbdimp.h:152: error: syntax error before '*' token
dbdimp.h:152: warning: type defaults to `int' in declaration of `obj_type'
dbdimp.h:152: warning: data definition has no type or storage class
dbdimp.h:159: error: syntax error before '}' token
dbdimp.h:166: error: syntax error before "OCIParam"
dbdimp.h:166: warning: no semicolon at end of struct or union
dbdimp.h:167: warning: type defaults to `int' in declaration of `defnp'
dbdimp.h:167: warning: data definition has no type or storage class
dbdimp.h:199: error: syntax error before '}' token
dbdimp.h:221: error: syntax error before "OCIBind"
dbdimp.h:221: warning: no semicolon at end of struct or union
dbdimp.h:238: error: syntax error before '*' token
dbdimp.h:238: warning: type defaults to `int' in declaration of `array_indicators'
dbdimp.h:238: warning: data definition has no type or storage class
dbdimp.h:246: error: conflicting types for 'name'
dbdimp.h:178: error: previous declaration of 'name' was here
dbdimp.h:247: error: syntax error before '}' token
dbdimp.h:284: error: syntax error before "OCILobLocator"
dbdimp.h:299: error: syntax error before "OCIError"
dbdimp.h:333: error: syntax error before "OCIBind"
dbdimp.h:335: error: syntax error before "OCIBind"
dbdimp.h:338: error: syntax error before "OCIDefine"
Oracle.c: In function `XS_DBD__Oracle_constant':
Oracle.c:74: warning: unused variable `Perl___notused'
Oracle.c: In function `XS_DBD__Oracle_ORA_OCI':
Oracle.c:108: warning: unused variable `Perl___notused'
Oracle.c: In function `XS_DBD__Oracle_ora_env_var':
Oracle.c:131: warning: unused variable `Perl___notused'
In file included from Oracle.c:179:
C:/strawberry/perl/site/lib/auto/DBI/Driver_xst.h: In function `dbdxst_bind_params':
C:/strawberry/perl/site/lib/auto/DBI/Driver_xst.h:60: error: dereferencing pointer to incomplete type
C:/strawberry/perl/site/lib/auto/DBI/Driver_xst.h:61: error: dereferencing pointer to incomplete type
C:/strawberry/perl/site/lib/auto/DBI/Driver_xst.h:65: error: dereferencing pointer to incomplete type
C:/strawberry/perl/site/lib/auto/DBI/Driver_xst.h:66: error: dereferencing pointer to incomplete type
C:/strawberry/perl/site/lib/auto/DBI/Driver_xst.h:67: error: dereferencing pointer to incomplete type
C:/strawberry/perl/site/lib/auto/DBI/Driver_xst.h: In function `dbdxst_fetchall_arrayref':
C:/strawberry/perl/site/lib/auto/DBI/Driver_xst.h:93: error: dereferencing pointer to incomplete type
C:/strawberry/perl/site/lib/auto/DBI/Driver_xst.h:94: error: dereferencing pointer to incomplete type
C:/strawberry/perl/site/lib/auto/DBI/Driver_xst.h:101: error: dereferencing pointer to incomplete type
Oracle.c: In function `XS_DBD__Oracle__dr_dbixs_revision':
Oracle.c:185: warning: unused variable `Perl___notused'
Oracle.c: In function `XS_DBD__Oracle__db__login':
Oracle.c:278: warning: unused variable `Perl___notused'
./Oracle.xsi: In function `XS_DBD__Oracle__db_selectall_arrayref':
./Oracle.xsi:152: error: dereferencing pointer to incomplete type
Oracle.c:320: warning: unused variable `Perl___notused'
./Oracle.xsi: In function `XS_DBD__Oracle__db_selectrow_arrayref':
./Oracle.xsi:196: error: dereferencing pointer to incomplete type
Oracle.c:387: warning: unused variable `Perl___notused'
./Oracle.xsi: In function `XS_DBD__Oracle__db_commit':
./Oracle.xsi:275: error: dereferencing pointer to incomplete type
./Oracle.xsi:275: error: dereferencing pointer to incomplete type
Oracle.c:549: warning: unused variable `Perl___notused'
./Oracle.xsi: In function `XS_DBD__Oracle__db_rollback':
./Oracle.xsi:285: error: dereferencing pointer to incomplete type
./Oracle.xsi:285: error: dereferencing pointer to incomplete type
Oracle.c:572: warning: unused variable `Perl___notused'
./Oracle.xsi: In function `XS_DBD__Oracle__db_disconnect':
./Oracle.xsi:295: error: dereferencing pointer to incomplete type
./Oracle.xsi:300: error: dereferencing pointer to incomplete type
./Oracle.xsi:300: error: dereferencing pointer to incomplete type
./Oracle.xsi:302: error: dereferencing pointer to incomplete type
./Oracle.xsi:304: error: dereferencing pointer to incomplete type
./Oracle.xsi:308: error: dereferencing pointer to incomplete type
./Oracle.xsi:308: error: dereferencing pointer to incomplete type
./Oracle.xsi:308: error: dereferencing pointer to incomplete type
Oracle.c:595: warning: unused variable `Perl___notused'
./Oracle.xsi: In function `XS_DBD__Oracle__db_STORE':
./Oracle.xsi:322: error: dereferencing pointer to incomplete type
Oracle.c:629: warning: unused variable `Perl___notused'
./Oracle.xsi: In function `XS_DBD__Oracle__db_FETCH':
./Oracle.xsi:334: error: dereferencing pointer to incomplete type
Oracle.c:657: warning: unused variable `Perl___notused'
./Oracle.xsi: In function `XS_DBD__Oracle__db_DESTROY':
./Oracle.xsi:345: error: dereferencing pointer to incomplete type
./Oracle.xsi:347: error: dereferencing pointer to incomplete type
./Oracle.xsi:347: error: dereferencing pointer to incomplete type
./Oracle.xsi:348: error: dereferencing pointer to incomplete type
./Oracle.xsi:353: error: dereferencing pointer to incomplete type
./Oracle.xsi:354: error: dereferencing pointer to incomplete type
./Oracle.xsi:354: error: dereferencing pointer to incomplete type
./Oracle.xsi:354: error: dereferencing pointer to incomplete type
./Oracle.xsi:355: error: dereferencing pointer to incomplete type
./Oracle.xsi:356: error: dereferencing pointer to incomplete type
./Oracle.xsi:358: error: dereferencing pointer to incomplete type
./Oracle.xsi:359: error: dereferencing pointer to incomplete type
./Oracle.xsi:370: error: dereferencing pointer to incomplete type
./Oracle.xsi:371: error: dereferencing pointer to incomplete type
./Oracle.xsi:372: error: dereferencing pointer to incomplete type
./Oracle.xsi:382: error: dereferencing pointer to incomplete type
./Oracle.xsi:382: error: dereferencing pointer to incomplete type
./Oracle.xsi:382: error: dereferencing pointer to incomplete type
Oracle.c:682: warning: unused variable `Perl___notused'
Oracle.c: In function `XS_DBD__Oracle__st__prepare':
Oracle.c:830: warning: unused variable `Perl___notused'
Oracle.c: In function `XS_DBD__Oracle__st_rows':
Oracle.c:869: warning: unused variable `Perl___notused'
Oracle.c: In function `XS_DBD__Oracle__st_bind_param':
Oracle.c:951: warning: unused variable `Perl___notused'
Oracle.c: In function `XS_DBD__Oracle__st_bind_param_inout':
Oracle.c:999: warning: unused variable `Perl___notused'
./Oracle.xsi: In function `XS_DBD__Oracle__st_execute':
./Oracle.xsi:586: error: dereferencing pointer to incomplete type
./Oracle.xsi:587: error: dereferencing pointer to incomplete type
Oracle.c:1053: warning: unused variable `Perl___notused'
Oracle.c: In function `XS_DBD__Oracle__st_fetchrow_arrayref':
Oracle.c:1125: warning: unused variable `Perl___notused'
Oracle.c: In function `XS_DBD__Oracle__st_fetchrow_array':
Oracle.c:1150: warning: unused variable `Perl___notused'
Oracle.c: In function `XS_DBD__Oracle__st_fetchall_arrayref':
Oracle.c:1185: warning: unused variable `Perl___notused'
./Oracle.xsi: In function `XS_DBD__Oracle__st_finish':
./Oracle.xsi:669: error: dereferencing pointer to incomplete type
./Oracle.xsi:670: error: dereferencing pointer to incomplete type
./Oracle.xsi:674: error: dereferencing pointer to incomplete type
./Oracle.xsi:677: error: dereferencing pointer to incomplete type
./Oracle.xsi:677: error: dereferencing pointer to incomplete type
./Oracle.xsi:677: error: dereferencing pointer to incomplete type
Oracle.c:1226: warning: unused variable `Perl___notused'
Oracle.c: In function `XS_DBD__Oracle__st_blob_read':
Oracle.c:1262: warning: unused variable `Perl___notused'
./Oracle.xsi: In function `XS_DBD__Oracle__st_STORE':
./Oracle.xsi:717: error: dereferencing pointer to incomplete type
Oracle.c:1306: warning: unused variable `Perl___notused'
./Oracle.xsi: In function `XS_DBD__Oracle__st_FETCH_attrib':
./Oracle.xsi:734: error: dereferencing pointer to incomplete type
Oracle.c:1334: warning: unused variable `Perl___notused'
./Oracle.xsi: In function `XS_DBD__Oracle__st_DESTROY':
./Oracle.xsi:745: error: dereferencing pointer to incomplete type
./Oracle.xsi:747: error: dereferencing pointer to incomplete type
./Oracle.xsi:747: error: dereferencing pointer to incomplete type
./Oracle.xsi:748: error: dereferencing pointer to incomplete type
./Oracle.xsi:753: error: dereferencing pointer to incomplete type
./Oracle.xsi:754: error: dereferencing pointer to incomplete type
./Oracle.xsi:754: error: dereferencing pointer to incomplete type
./Oracle.xsi:754: error: dereferencing pointer to incomplete type
./Oracle.xsi:755: error: dereferencing pointer to incomplete type
./Oracle.xsi:756: error: dereferencing pointer to incomplete type
./Oracle.xsi:758: error: dereferencing pointer to incomplete type
./Oracle.xsi:759: error: dereferencing pointer to incomplete type
./Oracle.xsi:760: error: dereferencing pointer to incomplete type
./Oracle.xsi:768: error: dereferencing pointer to incomplete type
./Oracle.xsi:768: error: dereferencing pointer to incomplete type
./Oracle.xsi:768: error: dereferencing pointer to incomplete type
Oracle.c:1362: warning: unused variable `Perl___notused'
Oracle.xs: In function `XS_DBD__Oracle__st_ora_stmt_type':
Oracle.xs:105: error: dereferencing pointer to incomplete type
Oracle.c:1418: warning: unused variable `Perl___notused'
Oracle.xs: In function `XS_DBD__Oracle__st_ora_stmt_type_name':
Oracle.xs:114: error: dereferencing pointer to incomplete type
Oracle.c:1443: warning: unused variable `Perl___notused'
Oracle.xs: In function `XS_DBD__Oracle__st_ora_scroll_position':
Oracle.xs:127: error: dereferencing pointer to incomplete type
Oracle.c:1470: warning: unused variable `Perl___notused'
Oracle.xs: In function `XS_DBD__Oracle__st_ora_fetch_scroll':
Oracle.xs:140: error: dereferencing pointer to incomplete type
Oracle.xs:141: error: dereferencing pointer to incomplete type
Oracle.c:1495: warning: unused variable `Perl___notused'
Oracle.c: In function `XS_DBD__Oracle__st_ora_bind_param_inout_array':
Oracle.c:1526: warning: unused variable `Perl___notused'
Oracle.xs: In function `XS_DBD__Oracle__st_ora_fetch':
Oracle.xs:189: error: dereferencing pointer to incomplete type
Oracle.xs:189: error: dereferencing pointer to incomplete type
Oracle.xs:189: error: dereferencing pointer to incomplete type
Oracle.xs:192: error: dereferencing pointer to incomplete type
Oracle.xs:192: error: dereferencing pointer to incomplete type
Oracle.xs:192: error: dereferencing pointer to incomplete type
Oracle.xs:192: warning: left-hand operand of comma expression has no effect
Oracle.xs:192: error: dereferencing pointer to incomplete type
Oracle.xs:192: error: dereferencing pointer to incomplete type
Oracle.xs:192: error: dereferencing pointer to incomplete type
Oracle.xs:192: warning: left-hand operand of comma expression has no effect
Oracle.xs:192: error: dereferencing pointer to incomplete type
Oracle.xs:192: error: dereferencing pointer to incomplete type
Oracle.xs:192: error: dereferencing pointer to incomplete type
Oracle.xs:192: warning: left-hand operand of comma expression has no effect
Oracle.xs:196: error: dereferencing pointer to incomplete type
Oracle.xs:198: error: dereferencing pointer to incomplete type
Oracle.xs:217: error: dereferencing pointer to incomplete type
Oracle.xs:217: error: dereferencing pointer to incomplete type
Oracle.xs:217: error: dereferencing pointer to incomplete type
Oracle.xs:217: error: dereferencing pointer to incomplete type
Oracle.xs:217: error: dereferencing pointer to incomplete type
Oracle.xs:217: error: dereferencing pointer to incomplete type
Oracle.xs:217: error: dereferencing pointer to incomplete type
Oracle.xs:217: error: dereferencing pointer to incomplete type
Oracle.xs:217: error: dereferencing pointer to incomplete type
Oracle.xs:219: error: dereferencing pointer to incomplete type
Oracle.xs:219: error: dereferencing pointer to incomplete type
Oracle.c:1572: warning: unused variable `Perl___notused'
Oracle.xs: In function `XS_DBD__Oracle__st_ora_execute_array':
Oracle.xs:234: error: dereferencing pointer to incomplete type
Oracle.xs:235: error: dereferencing pointer to incomplete type
Oracle.c:1631: warning: unused variable `Perl___notused'
Oracle.c: In function `XS_DBD__Oracle__st_cancel':
Oracle.c:1678: warning: unused variable `Perl___notused'
Oracle.xs: In function `XS_DBD__Oracle__db_ora_ping':
Oracle.xs:273: warning: implicit declaration of function `OCIServerVersion'
Oracle.xs:273: error: dereferencing pointer to incomplete type
Oracle.xs:273: error: dereferencing pointer to incomplete type
Oracle.xs:273: error: `OCI_HTYPE_SVCCTX' undeclared (first use in this function)
Oracle.xs:273: error: (Each undeclared identifier is reported only once
Oracle.xs:273: error: for each function it appears in.)
Oracle.xs:273: error: dereferencing pointer to incomplete type
Oracle.xs:274: error: `OCI_SUCCESS' undeclared (first use in this function)
Oracle.c:1699: warning: unused variable `Perl___notused'
Oracle.c: In function `XS_DBD__Oracle__db_reauthenticate':
Oracle.c:1736: warning: unused variable `Perl___notused'
Oracle.c: In function `XS_DBD__Oracle__db_ora_lob_write':
Oracle.c:1767: error: `OCILobLocator' undeclared (first use in this function)
Oracle.c:1767: error: `locator' undeclared (first use in this function)
Oracle.c:1782: error: syntax error before ')' token
Oracle.xs:307: error: `SQLCS_IMPLICIT' undeclared (first use in this function)
Oracle.xs:314: warning: implicit declaration of function `OCILobCharSetForm'
Oracle.xs:314: error: dereferencing pointer to incomplete type
Oracle.xs:314: error: dereferencing pointer to incomplete type
Oracle.xs:314: error: dereferencing pointer to incomplete type
Oracle.xs:314: error: dereferencing pointer to incomplete type
Oracle.xs:315: error: `OCI_SUCCESS' undeclared (first use in this function)
Oracle.xs:316: error: dereferencing pointer to incomplete type
Oracle.xs:330: error: `SQLCS_NCHAR' undeclared (first use in this function)
Oracle.xs:332: warning: implicit declaration of function `OCILobWrite'
Oracle.xs:332: error: dereferencing pointer to incomplete type
Oracle.xs:332: error: dereferencing pointer to incomplete type
Oracle.xs:332: error: `OCI_ONE_PIECE' undeclared (first use in this function)
Oracle.xs:332: error: dereferencing pointer to incomplete type
Oracle.xs:332: error: dereferencing pointer to incomplete type
Oracle.xs:338: error: dereferencing pointer to incomplete type
Oracle.c:1759: warning: unused variable `Perl___notused'
Oracle.c: In function `XS_DBD__Oracle__db_ora_lob_append':
Oracle.c:1845: error: `OCILobLocator' undeclared (first use in this function)
Oracle.c:1845: error: `locator' undeclared (first use in this function)
Oracle.c:1862: error: syntax error before ')' token
Oracle.xs:363: error: `SQLCS_IMPLICIT' undeclared (first use in this function)
Oracle.xs:370: error: dereferencing pointer to incomplete type
Oracle.xs:370: error: dereferencing pointer to incomplete type
Oracle.xs:370: error: dereferencing pointer to incomplete type
Oracle.xs:370: error: dereferencing pointer to incomplete type
Oracle.xs:371: error: `OCI_SUCCESS' undeclared (first use in this function)
Oracle.xs:372: error: dereferencing pointer to incomplete type
Oracle.xs:386: error: `SQLCS_NCHAR' undeclared (first use in this function)
Oracle.xs:387: warning: implicit declaration of function `OCILobWriteAppend'
Oracle.xs:387: error: dereferencing pointer to incomplete type
Oracle.xs:387: error: dereferencing pointer to incomplete type
Oracle.xs:387: error: `OCI_ONE_PIECE' undeclared (first use in this function)
Oracle.xs:387: error: dereferencing pointer to incomplete type
Oracle.xs:387: error: dereferencing pointer to incomplete type
Oracle.xs:392: error: dereferencing pointer to incomplete type
Oracle.xs:357: warning: unused variable `startp'
Oracle.c:1837: warning: unused variable `Perl___notused'
Oracle.c: In function `XS_DBD__Oracle__db_ora_lob_read':
Oracle.c:1923: error: `OCILobLocator' undeclared (first use in this function)
Oracle.c:1923: error: `locator' undeclared (first use in this function)
Oracle.c:1938: error: syntax error before ')' token
Oracle.xs:417: error: `SQLCS_IMPLICIT' undeclared (first use in this function)
Oracle.xs:427: error: dereferencing pointer to incomplete type
Oracle.xs:427: error: dereferencing pointer to incomplete type
Oracle.xs:427: error: dereferencing pointer to incomplete type
Oracle.xs:427: error: dereferencing pointer to incomplete type
Oracle.xs:428: error: `OCI_SUCCESS' undeclared (first use in this function)
Oracle.xs:429: error: dereferencing pointer to incomplete type
Oracle.xs:433: warning: implicit declaration of function `OCILobRead'
Oracle.xs:433: error: dereferencing pointer to incomplete type
Oracle.xs:433: error: dereferencing pointer to incomplete type
Oracle.xs:433: error: dereferencing pointer to incomplete type
Oracle.xs:433: error: dereferencing pointer to incomplete type
Oracle.xs:438: error: dereferencing pointer to incomplete type
Oracle.xs:445: error: `SQLCS_NCHAR' undeclared (first use in this function)
Oracle.c:1915: warning: unused variable `Perl___notused'
Oracle.c: In function `XS_DBD__Oracle__db_ora_lob_trim':
Oracle.c:1997: error: `OCILobLocator' undeclared (first use in this function)
Oracle.c:1997: error: `locator' undeclared (first use in this function)
Oracle.c:2006: error: syntax error before ')' token
Oracle.xs:461: warning: implicit declaration of function `OCILobTrim'
Oracle.xs:461: error: dereferencing pointer to incomplete type
Oracle.xs:461: error: dereferencing pointer to incomplete type
Oracle.xs:461: error: dereferencing pointer to incomplete type
Oracle.xs:461: error: dereferencing pointer to incomplete type
Oracle.xs:462: error: `OCI_SUCCESS' undeclared (first use in this function)
Oracle.xs:463: error: dereferencing pointer to incomplete type
Oracle.c:1989: warning: unused variable `Perl___notused'
Oracle.c: In function `XS_DBD__Oracle__db_ora_lob_length':
Oracle.c:2039: error: `OCILobLocator' undeclared (first use in this function)
Oracle.c:2039: error: `locator' undeclared (first use in this function)
Oracle.c:2048: error: syntax error before ')' token
Oracle.xs:479: warning: implicit declaration of function `OCILobGetLength'
Oracle.xs:479: error: dereferencing pointer to incomplete type
Oracle.xs:479: error: dereferencing pointer to incomplete type
Oracle.xs:479: error: dereferencing pointer to incomplete type
Oracle.xs:479: error: dereferencing pointer to incomplete type
Oracle.xs:480: error: `OCI_SUCCESS' undeclared (first use in this function)
Oracle.xs:481: error: dereferencing pointer to incomplete type
Oracle.c:2031: warning: unused variable `Perl___notused'
Oracle.c: In function `XS_DBD__Oracle__db_ora_lob_chunk_size':
Oracle.c:2081: error: `OCILobLocator' undeclared (first use in this function)
Oracle.c:2081: error: `locator' undeclared (first use in this function)
Oracle.c:2090: error: syntax error before ')' token
Oracle.xs:498: warning: implicit declaration of function `OCILobGetChunkSize'
Oracle.xs:498: error: dereferencing pointer to incomplete type
Oracle.xs:498: error: dereferencing pointer to incomplete type
Oracle.xs:498: error: dereferencing pointer to incomplete type
Oracle.xs:498: error: dereferencing pointer to incomplete type
Oracle.xs:499: error: `OCI_SUCCESS' undeclared (first use in this function)
Oracle.xs:500: error: dereferencing pointer to incomplete type
Oracle.c:2073: warning: unused variable `Perl___notused'
Oracle.c: In function `XS_DBD__Oracle__dr_init_oci':
Oracle.c:2115: warning: unused variable `Perl___notused'
Oracle.c: In function `boot_DBD__Oracle':
Oracle.c:2157: error: `OCI_FETCH_RELATIVE' undeclared (first use in this function)
Oracle.c:2171: error: `OCI_FETCH_FIRST' undeclared (first use in this functio

4 个答案:

答案 0 :(得分:5)

DBD :: Oracle非常难以编译,乘以Windows,如果你能避免它,你最好不要这样做。不幸的是ActiveState does not supply a PPM for it for licensing reasons也没有查看其他PPM repositories。虽然传言ActivePerl 5.10.0.1003 comes with DBD-Oracle

如果您的Oracle服务器支持ODBC,您可以使用DBD::ODBC与它通信。

如果你想尝试一下,这里有一些可能有帮助的special instructions for installing DBD::Oracle on Strawberry Perl

答案 1 :(得分:3)

Strawberry Perl 5.20(自2014年5月起)附带DBD :: Oracle,只要您安装Instantclient 11.x版本,它就可以开箱即用。见http://strawberryperl.com/release-notes/5.20.0.1-64bit.html

  

新添加的DBD :: Oracle - 您必须安装64位Oracle Instant Client 11.x并确保在PATH中有OCI.DLL

答案 2 :(得分:2)

如果您没有所有Oracle源(* .h,*。c)文件,则可以通过ppm安装DBD :: Oracle,就像ActiveState一样。或者从ActiveState发行版中复制库文件。

答案 3 :(得分:2)

我在博客上记录了Win32 here上对我有用的内容。实际上一切都很顺利,除了DBI make进程没有正确检测到我安装的Oracle客户端版本。稍微解析了make文件,我看到有一个参数来明确指定版本。我必须手动运行make和install命令,但一切都解决了。

我尝试使用一些预编译的模块,但是它们是在编写特定版本的Strawberry Perl时编写的。我想我找到了一个用于Oracle的5.12编译DBI,当我尝试将它与最新的5.16 Strawberry Perl一起使用时就抱怨了,这就是为什么我去了手动构建路径。

从现在开始,我可能只是将我的c:\ perl二进制目录复制到我需要的其他机器上,设置环境变量并使用它进行滚动。