Как установить DBD::Oracle в Strawberry Perl

Я пытаюсь установить DBD::Oracle, используя оболочку 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

person indiguy    schedule 04.12.2009    source источник
comment
Ошибка, которую вы показываете, в основном говорит только о том, что компиляция не удалась; ошибки/предупреждения before скажут, почему.   -  person ysth    schedule 04.12.2009


Ответы (4)


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

Если ваш сервер Oracle поддерживает ODBC, вы можете обратиться к нему с помощью DBD::ODBC.

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

person Schwern    schedule 05.12.2009
comment
Я последовал вашему предложению об использовании ODBC. Я успешно настроил источник данных ODBC в Windows и использовал DBD::ODBC для подключения к базе данных. Спасибо! - person indiguy; 07.12.2009
comment
Это не слух. И я только что использовал ppm ActiveState для обновления до DBD-Oracle 1.23. - person runrig; 07.12.2009
comment
Хотя я не знаю, почему его нет в списке UWinn: cpan.uwinnipeg.ca /search?query=dbd-oracle&mode=dist - person runrig; 07.12.2009
comment
После выполнения этих инструкций возникла необходимость вызвать пакет PL/SQL из моего кода Perl. Как лучше всего (если вообще есть) сделать это через DBD::ODBC? - person indiguy; 30.11.2010
comment
Ссылка на ответ больше недействительна. - person hasan; 29.10.2014
comment
@hasan Кажется, win32.perl.org больше не существует. Я нашел контент с помощью Internet Wayback Machine и исправил ссылку. - person Schwern; 29.10.2014
comment
@Шверн, спасибо. Просто примечание: теперь Strawberry Perl 5.20 (с мая 2014 года) также поставляется с DBD::Oracle, пока вы устанавливаете версию InstantClient 11.x, она работает «из коробки». strawberryperl.com/release-notes/5.20.0.1-64bit.html - person hasan; 30.10.2014
comment
@hasan Это хорошая информация, вы должны добавить это в качестве ответа. - person Schwern; 30.10.2014

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 и убедиться, что у вас есть OCI.DLL в вашем PATH

person hasan    schedule 30.10.2014

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

person runrig    schedule 04.12.2009
comment
Отличный совет ... после часовой борьбы мне просто нужно было установить ppm trouchelle. com/ppm10/unstable/DBD-Oracle.ppd - person Pat; 20.04.2010
comment
У меня это работает, используя это: ">garygoog.wordpress.com/2011/04/02/ - person Richard; 10.02.2014

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

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

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

person David Mann    schedule 14.06.2012