我尝试在Strawberry Perl中使用CPAN shell安装DBD::Oracle。我最初遇到了一个错误,因为Makefile
找不到OCI
库,所以我安装了Oracle的即时客户端。我以为这样可以解决问题,但现在我收到了大量来自Oracle.h
、dbdimp.h
、Oracle.c
、Oracle.xsi
和Oracle.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
字符串
5条答案
按热度按时间nsc4cvqm1#
DBD::Oracle是出了名的难编译,乘以Windows,如果你能避免它,你最好不要这样做。不幸的是,ActiveState不提供PPM,因为许可的原因,也没有其他的PPM repositories我看过。虽然它的传言,ActivePerl 5.10.0.1003 comes with DBD-Oracle。
如果您的Oracle服务器支持ODBC,则可以使用DBD::ODBC与之通信。
如果你想试试,这里有一些special instructions for installing DBD::Oracle on Strawberry Perl可能会有帮助。
iibxawm42#
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
f45qwnt83#
如果您没有所有的Oracle源文件(.h,.c),您可以通过ppm安装DBD::Oracle,就像ActiveState一样。或者从ActiveState分发版复制库文件。
wa7juj8i4#
我在我的博客上记录了我在Win32 here上的工作。实际上,一切都很顺利,除了DBI make过程没有正确检测到我安装的Oracle Client版本。对make文件进行了一点破译,我看到有一个参数来显式指定版本。我不得不手动运行make和install命令,但它都成功了。
我试着使用一些预编译的模块,但它们是用特定版本的Strawberry Perl编译的。我想我找到了一个5.12编译的Oracle DBI,当我试着用它与最新的5.16 Strawberry Perl一起使用时,它会抱怨,所以这就是为什么我走了手动构建路线。
从现在开始,我可能只需要将c:\perl二进制目录复制到其他需要它的机器上,设置环境变量并使用它。
sauutmhj5#
在设置环境变量
ORACLE_HOME
和LD_LIBRARY_PATH
并将Oraclebin
文件夹添加到PATH
之后,它工作得很好,对我来说没有任何问题。字符串
也许这三个都不是必需的。无论如何,它们只在安装模块时设置。