Вопрос

Я пытаюсь установить ДБД::Оракул используя оболочку CPAN в Strawberry Perl.Первоначально у меня возникла ошибка, потому что 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
Это было полезно?

Решение

DBD::Oracle, как известно, сложно компилировать, умножая на Windows, и вам лучше просто не делать этого, если вы можете этого избежать.К сожалению ActiveState не предоставляет для него PPM по причинам лицензирования. и другой Репозитории PPM Я просмотрел.Хотя ходят слухи, что ActivePerl 5.10.0.1003 поставляется с DBD-Oracle..

Если ваш сервер Oracle поддерживает ODBC, вы можете связаться с ним, используя ДБД::ODBC.

Если вы хотите попробовать, вот несколько специальные инструкции по установке DBD::Oracle на Strawberry Perl что может помочь.

Другие советы

Strawberry Perl 5.20 (с мая 2014 г.) поставляется с 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.

Если у вас нет всех исходных файлов Oracle (*.h, *.c), вы можете установить DBD::Oracle через ppm, как и ActiveState.Или скопируйте файлы библиотеки из дистрибутива ActiveState.

Я задокументировал то, что сработало у меня на Win32. здесь в моем блоге.На самом деле все прошло гладко, за исключением того, что процесс сборки DBI не определил правильно установленную версию клиента Oracle.Немного расшифровав make-файл, я увидел, что там есть параметр для явного указания версии.Мне пришлось запускать команды make и install вручную, но все получилось.

Я пытался использовать некоторые предварительно скомпилированные модули, но они были скомпилированы с учетом конкретной версии Strawberry Perl.Кажется, я нашел скомпилированный DBI версии 5.12 для Oracle, и он жаловался, когда я пытался использовать его с последней версией Strawberry Perl 5.16, поэтому я пошел по пути ручной сборки.

С этого момента я, вероятно, просто скопирую свой двоичный каталог c:\perl на другие машины, которые мне нужны, установлю переменные среды и буду работать с ним.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top