John Scoles wrote:
> Well here it is the second crack at 1.24 Beer version of DBD::ORACLE
>
>
> You can find the release candidate here
>
> http://svn.perl.org/modules/dbd-oracle/trunk/DBD-Oracle-1.24-RC2.tar
>
>
> this time out I have hopefully fixed most of the warnings
>
> I have also updated the pod to explain what ora_ncs_buff_mtpl and var
> ORA_DBD_NCS_BUFFER do
>
> I have also added a few other little patches from H.Merijn Brand
>
> The big one this RC is that I think I finally got the RowsInCache and
> RowCacheSize working according to spec
>
> RowCacheSize can now be set on the statement handle (in the prepare)
>
> and RowsInCache has been implemented as a Read only value off the
> statement handle as well
>
> Both the Statement and the DB handle versions of RowsInCache also now
> decrement correctly (nothing fancy in the change just moved the
> decrement later on in the code path)
>
> Hope this cleans any bugs up.
>
> cheers
> and thanks for the testing
>
>
Thanks. This seems to address most of my issues but I have a few more
small changes below. All tests complete ok when no NLS_LANG set except a
few in 26exe_array. However, I have quite a lot of problems when
NLS_LANG is set to AMERICAN_AMERICA.AL32UTF8 (which we do all the time
but fortunately not with ora_auto_lob defaulted/set) - see make_test.log
attached. The prove output is in 30long_log and 31lob_extended.log.
It appears if ora_auto_lob is defaulted/set then when NLS_LANG is set
the second set of tests in 31lob_extended.t fail with:
DBD::Oracle has returned a NEED_DATA status when doing a LobRead!!
and any further operations lead to:
DBD::Oracle::db DESTROY failed: ORA-03127: no new operations allowed
until the active operation ends (DBD ERROR: OCIStmtExecute)
even though the statement handle involved is now out of scope.
A similar thing is happening in 30long.
Attached is a small patch which contains the following changes:
o a minor patch makes a lot of warnings go away because ah is
actually an OCIServer * and not a signed long.
o patch to Oracle.pm pod to correct some typos.
o Minor patch to 31lob_extended.t which fixes test names and adds better
error output.
Martin
--
Martin J. Evans
Easysoft Limited
http://www.easysoft.com
mar...@bragi:/tmp/DBD-Oracle-1.24-RC2$ make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/01base.t .............. # Test loading DBI, DBD::Oracle and version
t/01base.t .............. ok
t/10general.t ........... ok
t/12impdata.t ........... ok
t/14threads.t ........... ok
t/15nls.t ............... ok
t/20select.t ............ ok
t/21nchar.t ............. ok
t/22nchar_al32utf8.t .... ok
t/22nchar_utf8.t ........ ok
t/23wide_db.t ........... ok
t/23wide_db_8bit.t ...... ok
t/23wide_db_al32utf8.t .. ok
t/24implicit_utf8.t ..... ok
t/25plsql.t ............. ok
t/26exe_array.t ......... 1/17
t/26exe_array.t ......... Dubious, test returned 2 (wstat 512, 0x200)
Failed 2/17 subtests
t/28array_bind.t ........ ok
t/30long.t .............. 1/479 DBD::Oracle has returned a NEED_DATA status when doing a LobRead!!
DBD::Oracle::db disconnect failed: ORA-03127: no new operations allowed until the active operation ends (DBD ERROR: OCISessionEnd) at t/30long.t line 68.
t/30long.t .............. Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 284/479 subtests
(less 122 skipped subtests: 73 okay)
t/31lob.t ............... ok
t/31lob_extended.t ...... 1/31 DBD::Oracle has returned a NEED_DATA status when doing a LobRead!!
procedure p_DBD_Oracle_drop_me possibly not dropped- check
table dbd_ora__drop_me possibly not dropped - check
DBD::Oracle::db DESTROY failed: ORA-03127: no new operations allowed until the active operation ends (DBD ERROR: OCIStmtExecute)
ORA-03127: no new operations allowed until the active operation ends (DBD ERROR: OCISessionEnd) at t/31lob_extended.t line 91.
t/31lob_extended.t ...... Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 8/31 subtests
t/32xmltype.t ........... ok
t/34pres_lobs.t ......... ok
t/40ph_type.t ........... 1/19 Placeholder behaviour for ora_type=1 VARCHAR2 (the default) varies with Oracle version.
Oracle 7 didn't strip trailing spaces, Oracle 8 did, until 9.2.x
Your system doesn't. If that seems odd, let us know.
t/40ph_type.t ........... ok
t/50cursor.t ............ ok
t/51scroll.t ............ ok
t/55nested.t ............ ok
t/56embbeded.t .......... ok
t/58object.t ............ ok
t/60reauth.t ............ skipped: ORACLE_USERID_2 not defined.
t/70meta.t .............. ok
t/80ora_charset.t ....... ok
Test Summary Report
-------------------
t/26exe_array.t (Wstat: 512 Tests: 17 Failed: 2)
Failed tests: 11, 14
Non-zero exit status: 2
t/30long.t (Wstat: 65280 Tests: 195 Failed: 0)
Non-zero exit status: 255
Parse errors: Bad plan. You planned 479 tests but ran 195.
t/31lob_extended.t (Wstat: 65280 Tests: 23 Failed: 0)
Non-zero exit status: 255
Parse errors: Bad plan. You planned 31 tests but ran 23.
Files=30, Tests=1917, 15 wallclock secs ( 0.22 usr 0.04 sys + 5.93 cusr 0.60 csys = 6.79 CPU)
Result: FAIL
Failed 3/30 test programs. 2/1917 subtests failed.
make: *** [test_dynamic] Error 255
mar...@bragi:/tmp/DBD-Oracle-1.24-RC2$ prove -vb t/30long.t
t/30long.t ..
1..479
# ora_server_version: 11 1 0 6 0
# Database 11.1.0.6.0 CHAR set is AL32UTF8 (Unicode), NCHAR set is UTF8 (Unicode)
# Client 11.1.0.6 NLS_LANG is 'AMERICAN_AMERICA.AL32UTF8', NLS_NCHAR is '<unset>'
#
# =========================================================================
# Running long test for LONG (0) use_utf8_data=0
ok 1 - prepare: insert into dbd_ora__drop_me values (?, ?, SYSDATE)
# create table dbd_ora__drop_me ( idx integer, lng LONG, dt date )
# long_data[0] length 10240
# long_data[1] length 81920
# long_data[2] length 71680
# --- insert some LONG data (ora_type 0)
ok 2 - insert long data 40
ok 3 - insert long data 41
ok 4 - insert long data 42
ok 5 - insert long data undef 43
# --- fetch LONG data back again -- truncated - LongTruncOk == 1
# LongReadLen 20, LongTruncOk 1
ok 6 - prepare: select * from dbd_ora__drop_me order by idx
ok 7 - execute: select * from dbd_ora__drop_me order by idx
ok 8 - fetch_arrayref for select * from dbd_ora__drop_me order by idx
ok 9 - four rows
ok 10 - byte_string test of truncated to LongReadLen 20
ok 11 - nice_string test of truncated to LongReadLen 20
ok 12 - LONG UTF8 setting
ok 13 - byte_string test of truncated to LongReadLen 20
ok 14 - nice_string test of truncated to LongReadLen 20
ok 15 - LONG UTF8 setting
ok 16 - byte_string test of truncated to LongReadLen 20
ok 17 - nice_string test of truncated to LongReadLen 20
ok 18 - LONG UTF8 setting
ok 19 - last row undefined
# --- fetch LONG data back again -- truncated - LongTruncOk == 0
# LongReadLen 81910, LongTruncOk
ok 20 - prepare select * from dbd_ora__drop_me order by idx
ok 21 - execute select * from dbd_ora__drop_me order by idx
ok 22 - fetchrow_arrayref select * from dbd_ora__drop_me order by idx
ok 23 - length tmp->[1] 10240
ok 24 - truncation error not triggered (LongReadLen 81910, data 10240)
ok 25 - tmp==1406 || tmp==24345 tmp actually=24345
# --- fetch LONG data back again -- complete - LongTruncOk == 0
# LongReadLen 82920, LongTruncOk
ok 26 - prepare: select * from dbd_ora__drop_me order by idx
ok 27 - execute select * from dbd_ora__drop_me order by idx
ok 28 - fetchrow_arrayref select * from dbd_ora__drop_me order by idx
ok 29 - Strings are identical, Len 10240
ok 30 - fetchrow_arrayref select * from dbd_ora__drop_me order by idx
ok 31 - Strings are identical, Len 10240
ok 32 - fetchrow_arrayref select * from dbd_ora__drop_me order by idx
ok 33 - Strings are identical, Len 10240
ok 34 # skip blob_read tests for LONGs - not currently supported
ok 35 # skip blob_read tests for LONGs - not currently supported
ok 36 # skip blob_read tests for LONGs - not currently supported
ok 37 # skip blob_read tests for LONGs - not currently supported
ok 38 # skip blob_read tests for LONGs - not currently supported
ok 39 # skip blob_read tests for LONGs - not currently supported
ok 40 # skip blob_read tests for LONGs - not currently supported
ok 41 # skip blob_read tests for LONGs - not currently supported
ok 42 # skip blob_read tests for LONGs - not currently supported
ok 43 # skip blob_read tests for LONGs - not currently supported
ok 44 # skip blob_read tests for LONGs - not currently supported
ok 45 # skip blob_read tests for LONGs - not currently supported
ok 46 # skip blob_read tests for LONGs - not currently supported
ok 47 # skip blob_read tests for LONGs - not currently supported
ok 48 # skip blob_read tests for LONGs - not currently supported
ok 49 # skip ora_auto_lob tests for LONGs - not supported
ok 50 # skip ora_auto_lob tests for LONGs - not supported
ok 51 # skip ora_auto_lob tests for LONGs - not supported
ok 52 # skip ora_auto_lob tests for LONGs - not supported
ok 53 # skip ora_auto_lob tests for LONGs - not supported
ok 54 # skip ora_auto_lob tests for LONGs - not supported
ok 55 # skip ora_auto_lob tests for LONGs - not supported
ok 56 # skip ora_auto_lob tests for LONGs - not supported
ok 57 # skip ora_auto_lob tests for LONGs - not supported
ok 58 # skip ora_auto_lob tests for LONGs - not supported
ok 59 # skip ora_auto_lob tests for LONGs - not supported
ok 60 # skip ora_auto_lob tests for LONGs - not supported
ok 61 # skip ora_auto_lob tests for LONGs - not supported
ok 62 # skip ora_auto_lob tests for LONGs - not supported
ok 63 # skip ora_auto_lob tests for LONGs - not supported
ok 64 # skip ora_auto_lob tests for LONGs - not supported
ok 65 # skip ora_auto_lob tests for LONGs - not supported
ok 66 # skip ora_auto_lob tests for LONGs - not supported
ok 67 # skip ora_auto_lob tests for LONGs - not supported
ok 68 # skip ora_auto_lob tests for LONGs - not supported
ok 69 # skip ora_auto_lob tests for LONGs - not supported
ok 70 # skip ora_auto_lob tests for LONGs - not supported
ok 71 # skip ora_auto_lob tests for LONGs - not supported
ok 72 # skip ora_auto_lob tests for LONGs - not supported
ok 73 # skip ora_auto_lob tests for LONGs - not supported
ok 74 # skip ora_auto_lob tests for LONGs - not supported
ok 75 # skip ora_auto_lob tests for LONGs - not supported
ok 76 # skip ora_auto_lob tests for LONGs - not supported
ok 77 # skip ora_auto_lob tests for LONGs - not supported
ok 78 # skip ora_auto_lob tests for LONGs - not supported
ok 79 # skip ora_auto_lob tests for LONGs - not supported
ok 80 # skip ora_auto_lob tests for LONGs - not supported
ok 81 # skip ora_auto_lob tests for LONGs - not supported
ok 82 # skip ora_auto_lob tests for LONGs - not supported
ok 83 # skip ora_auto_lob tests for LONGs - not supported
ok 84 # skip ora_auto_lob tests for LONGs - not supported
ok 85 # skip ora_auto_lob tests for LONGs - not supported
ok 86 # skip ora_auto_lob tests for LONGs - not supported
ok 87 # skip ora_auto_lob tests for LONGs - not supported
ok 88 # skip ora_auto_lob tests for LONGs - not supported
ok 89 # skip ora_auto_lob tests for LONGs - not supported
ok 90 # skip ora_auto_lob tests for LONGs - not supported
ok 91 # skip ora_auto_lob tests for LONGs - not supported
ok 92 # skip ora_auto_lob tests for LONGs - not supported
ok 93 # skip ora_auto_lob tests for LONGs - not supported
ok 94 # skip ora_auto_lob tests for LONGs - not supported
#
# =========================================================================
# Running long test for LONG RAW (24) use_utf8_data=0
# create table dbd_ora__drop_me ( idx integer, lng LONG RAW, dt date )
# long_data[0] length 20480
# long_data[1] length 81920
# long_data[2] length 71680
# --- insert some LONG RAW data (ora_type 24)
ok 95 - prepare: insert into dbd_ora__drop_me values (?, ?, SYSDATE)
ok 96 - insert long data 40
ok 97 - insert long data 41
ok 98 - insert long data 42
ok 99 - insert long data undef 43
# --- fetch LONG RAW data back again -- truncated - LongTruncOk == 1
# LongReadLen 20, LongTruncOk 1
ok 100 - prepare: select * from dbd_ora__drop_me order by idx
ok 101 - execute: select * from dbd_ora__drop_me order by idx
ok 102 - fetch_arrayref for select * from dbd_ora__drop_me order by idx
ok 103 - four rows
ok 104 - byte_string test of truncated to LongReadLen 40
ok 105 - nice_string test of truncated to LongReadLen 40
ok 106 - LONG RAW UTF8 setting
ok 107 - byte_string test of truncated to LongReadLen 40
ok 108 - nice_string test of truncated to LongReadLen 40
ok 109 - LONG RAW UTF8 setting
ok 110 - byte_string test of truncated to LongReadLen 40
ok 111 - nice_string test of truncated to LongReadLen 40
ok 112 - LONG RAW UTF8 setting
ok 113 - last row undefined
ok 114 - prepare select * from dbd_ora__drop_me order by idx
# --- fetch LONG RAW data back again -- truncated - LongTruncOk == 0
# LongReadLen 40955, LongTruncOk
ok 115 - execute select * from dbd_ora__drop_me order by idx
ok 116 - fetchrow_arrayref select * from dbd_ora__drop_me order by idx
ok 117 - length tmp->[1] 20480
ok 118 - truncation error not triggered (LongReadLen 40955, data 20480)
ok 119 - tmp==1406 || tmp==24345 tmp actually=24345
# --- fetch LONG RAW data back again -- complete - LongTruncOk == 0
# LongReadLen 82920, LongTruncOk
ok 120 - prepare: select * from dbd_ora__drop_me order by idx
ok 121 - execute select * from dbd_ora__drop_me order by idx
ok 122 - fetchrow_arrayref select * from dbd_ora__drop_me order by idx
ok 123 - Strings are identical, Len 20480
ok 124 - fetchrow_arrayref select * from dbd_ora__drop_me order by idx
ok 125 - Strings are identical, Len 81920
ok 126 - fetchrow_arrayref select * from dbd_ora__drop_me order by idx
ok 127 - Strings are identical, Len 71680
ok 128 # skip blob_read tests for LONGs - not currently supported
ok 129 # skip blob_read tests for LONGs - not currently supported
ok 130 # skip blob_read tests for LONGs - not currently supported
ok 131 # skip blob_read tests for LONGs - not currently supported
ok 132 # skip blob_read tests for LONGs - not currently supported
ok 133 # skip blob_read tests for LONGs - not currently supported
ok 134 # skip blob_read tests for LONGs - not currently supported
ok 135 # skip blob_read tests for LONGs - not currently supported
ok 136 # skip blob_read tests for LONGs - not currently supported
ok 137 # skip blob_read tests for LONGs - not currently supported
ok 138 # skip blob_read tests for LONGs - not currently supported
ok 139 # skip blob_read tests for LONGs - not currently supported
ok 140 # skip blob_read tests for LONGs - not currently supported
ok 141 # skip blob_read tests for LONGs - not currently supported
ok 142 # skip blob_read tests for LONGs - not currently supported
ok 143 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 144 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 145 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 146 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 147 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 148 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 149 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 150 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 151 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 152 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 153 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 154 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 155 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 156 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 157 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 158 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 159 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 160 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 161 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 162 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 163 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 164 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 165 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 166 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 167 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 168 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 169 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 170 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 171 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 172 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 173 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 174 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 175 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 176 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 177 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 178 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 179 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 180 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 181 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 182 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 183 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 184 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 185 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 186 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 187 # skip ora_auto_lob tests for LONG RAWs - not supported
ok 188 # skip ora_auto_lob tests for LONG RAWs - not supported
#
# =========================================================================
# Running long test for NCLOB (112) use_utf8_data=1
# create table dbd_ora__drop_me ( idx integer, lng NCLOB, dt date )
# long_data[0] length 10240
# long_data[1] length 81920
# long_data[2] length 71680
# --- insert some NCLOB data (ora_type 112)
ok 189 - prepare: insert into dbd_ora__drop_me values (?, ?, SYSDATE)
ok 190 - insert long data 40
ok 191 - insert long data 41
ok 192 - insert long data 42
ok 193 - insert long data undef 43
# --- fetch NCLOB data back again -- truncated - LongTruncOk == 1
# LongReadLen 20, LongTruncOk 1
ok 194 - prepare: select * from dbd_ora__drop_me order by idx
ok 195 - execute: select * from dbd_ora__drop_me order by idx
DBD::Oracle has returned a NEED_DATA status when doing a LobRead!!
DBD::Oracle::db disconnect failed: ORA-03127: no new operations allowed until the active operation ends (DBD ERROR: OCISessionEnd) at t/30long.t line 68.
# Looks like you planned 479 tests but ran 195.
# Looks like your test exited with 255 just after 195.
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 284/479 subtests
(less 122 skipped subtests: 73 okay)
Test Summary Report
-------------------
t/30long.t (Wstat: 65280 Tests: 195 Failed: 0)
Non-zero exit status: 255
Parse errors: Bad plan. You planned 479 tests but ran 195.
Files=1, Tests=195, 1 wallclock secs ( 0.06 usr 0.00 sys + 0.13 cusr 0.01 csys = 0.20 CPU)
Result: FAIL
mar...@bragi:/tmp/DBD-Oracle-1.24-RC2$ prove -vb t/31lob_extended.t
t/31lob_extended.t ..
1..31
ok 1 - created test table
# create table dbd_ora__drop_me ( idx integer, x clob, dt date )
ok 2 - created test data
ok 3 - created test procedure
ok 4 - ora_auto_lobs prefetch prepare call proc
ok 5 - ora_auto_lobs prefetch - bind out cursor
ok 6 - ora_auto_lobs prefetch - execute to get out cursor
ok 7 - ora_auto_lobs prefetch - lob locator retrieved
ok 8 - ora_auto_lobs prefetch - is a lob locator
ok 9 - ora_auto_lobs prefetch - first lob length 6000
ok 10 - ora_auto_lobs prefetch - correct lob length
ok 11 - ora_auto_lobs prefetch - read lob
ok 12 - ora_auto_lobs prefetch - lob returned matches lob inserted
ok 13 - ora_auto_lobs prefetch - lob locator retrieved
ok 14 - ora_auto_lobs prefetch - is a lob locator
ok 15 - ora_auto_lobs prefetch - first lob length 6000
ok 16 - ora_auto_lobs prefetch - correct lob length
ok 17 - ora_auto_lobs prefetch - read lob
ok 18 - ora_auto_lobs prefetch - lob returned matches lob inserted
ok 19 - ora_auto_lobs prefetch - finished returned sth
ok 20 - ora_auto_lobs prefetch - finished sth
ok 21 - ora_auto_lobs not fetching prepare call proc
ok 22 - ora_auto_lobs not fetching - bind out cursor
ok 23 - ora_auto_lobs not fetching - execute to get out cursor
DBD::Oracle has returned a NEED_DATA status when doing a LobRead!!
procedure p_DBD_Oracle_drop_me possibly not dropped- check
table dbd_ora__drop_me possibly not dropped - check
# Looks like you planned 31 tests but ran 23.
# Looks like your test exited with 255 just after 23.
DBD::Oracle::db DESTROY failed: ORA-03127: no new operations allowed until the active operation ends (DBD ERROR: OCIStmtExecute)
ORA-03127: no new operations allowed until the active operation ends (DBD ERROR: OCISessionEnd) at t/31lob_extended.t line 91.
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 8/31 subtests
Test Summary Report
-------------------
t/31lob_extended.t (Wstat: 65280 Tests: 23 Failed: 0)
Non-zero exit status: 255
Parse errors: Bad plan. You planned 31 tests but ran 23.
Files=1, Tests=23, 1 wallclock secs ( 0.03 usr 0.00 sys + 0.07 cusr 0.01 csys = 0.11 CPU)
Result: FAIL
Index: ocitrace.h
===================================================================
--- ocitrace.h (revision 13722)
+++ ocitrace.h (working copy)
@@ -267,7 +267,7 @@
stat=OCIAttrSet(th,ht,ah,s1,a,eh); \
(DBD_OCI_TRACEON) ? PerlIO_printf(DBD_OCI_TRACEFP, \
"%sAttrSet(%p,%s, %p,%lu,Attr=%s,%p)=%s\n", \
- OciTp, (void*)th,oci_hdtype_name(ht),sl_t(ah),ul_t(s1),oci_attr_name(a),(void*)eh, \
+ OciTp, (void*)th,oci_hdtype_name(ht),(void *)ah,ul_t(s1),oci_attr_name(a),(void*)eh, \
oci_status_name(stat)),stat : stat
#define OCIBindByName_log_stat(sh,bp,eh,p1,pl,v,vs,dt,in,al,rc,mx,cu,md,stat) \
Index: Oracle.pm
===================================================================
--- Oracle.pm (revision 13722)
+++ Oracle.pm (working copy)
@@ -1477,12 +1477,14 @@
=item ora_ncs_buff_mtpl
-You can now customize the size of the buffer when selecting a LOBs with the build in AUTO Lob
-The default value is 1 which should be fine for most situations if you are converting between
-a NCS on the DB and one on the Client they you might want to set this to 2. The orginal value
-was 4 which was excessive. For convieance I have added support for a 'ORA_DBD_NCS_BUFFER' enviornemnt
-varaible that you can use at the OS level to set this value. If used it will take the value at the
-connect stage.
+You can now customize the size of the buffer when selecting LOBs with
+the built in AUTO Lob. The default value is 1 which should be fine
+for most situations. If you are converting between a NCS on the DB and
+one on the Client then you might want to set this to 2. The orignal
+value (prior to version 1.24) of 4 was found to be excessive. For
+convenience I have added support for a 'ORA_DBD_NCS_BUFFER'
+environment variable that you can use at the OS level to set this
+value. If used it will take the value at the connect stage.
See more details in the LOB section of the POD
Index: t/31lob_extended.t
===================================================================
--- t/31lob_extended.t (revision 13722)
+++ t/31lob_extended.t (working copy)
@@ -1,7 +1,7 @@
#!perl -w
## ----------------------------------------------------------------------------
-## 26exe_array.t
+## 31lob_extended.t
## By Martin Evans, The Pythian Group
## ----------------------------------------------------------------------------
## This run through some bugs that have been found in earlier versions of DBD::Oracle
@@ -38,7 +38,7 @@
my ($table, $data0, $data1) = setup_test($dbh);
#
-# bug in DBD::0.21 where if ora_auto_lobs is set and we attempt to
+# bug in DBD::Oracle 0.21 where if ora_auto_lobs is not set and we attempt to
# fetch from a table containing lobs which has more than one row
# we get a segfault. This was due to prefetching more than one row.
#
@@ -82,7 +82,8 @@
# ora_auto_lobs is supposed to default to set
q/begin p_DBD_Oracle_drop_me(?); end;/);
};
- ok(!$@, "$testname prepare call proc");
+ ok(!$@, "$testname - prepare call proc");
+
my $sth2;
ok($sth1->bind_param_inout(1, \$sth2, 500, {ora_type => ORA_RSET}),
"$testname - bind out cursor");
@@ -175,13 +176,13 @@
eval {$dbh->do(q/drop procedure p_DBD_Oracle_drop_me/);};
if ($@) {
warn("procedure p_DBD_Oracle_drop_me possibly not dropped" .
- "- check\n") if $dbh->err ne '4043';
+ "- check - $...@\n") if $dbh->err ne '4043';
} else {
diag("procedure p_DBD_Oracle_drop_me dropped");
}
eval {drop_table($dbh);};
if ($@) {
- warn("table $table possibly not dropped - check\n")
+ warn("table $table possibly not dropped - check - $...@\n")
if $dbh->err ne '942';
} else {
diag("table $table dropped");