A large proportion of clob tests fail if the characterset is configured to UTF8
I was using:
NLS_LANG=ENGLISH_UNITED KINGDOM.UTF8
on:
Oracle version 9.0.1.1.0 On Solaris 8
N.B. All test pass if charset is configured to WE8.
Long test output:
perl -Mblib t/long.t
Using /var/tmp/DBD-Oracle-1.12/blib
Unexpectedly had to drop old test table 'dbd_ora__drop_me'
create table dbd_ora__drop_me ( idx integer, lng LONG, dt date )
1..143
long_data0 length 10240
long_data1 length 81920
long_data2 length 71680
create table dbd_ora__drop_me ( idx integer, lng LONG, dt date )
--- insert some LONG data
ok 1
ok 2
ok 3
ok 4
--- fetch LONG data back again -- truncated - LongTruncOk == 1
LongReadLen 20, LongTruncOk 1
ok 5
ok 6
ok 7
ok 8
ok 9
ok 10
--- fetch LONG data back again -- truncated - LongTruncOk == 0
LongReadLen 81910, LongTruncOk
ok 11
ok 12
ok 13
ok 14
ok 15
ok 16
--- fetch LONG data back again -- complete - LongTruncOk == 0
LongReadLen 82920, LongTruncOk
ok 17
ok 18
ok 19
ok 20
ok 21
ok 22
ok 23
ok 24
--- fetch LONG data back again -- via blob_read
Skipped blob_read tests for LONGs with OCI8 - not currently supported.
ok 25
ok 26
ok 27
ok 28
ok 29
ok 30
ok 31
ok 32
ok 33
ok 34
ok 35
long_data0 length 20480
long_data1 length 81920
long_data2 length 71680
create table dbd_ora__drop_me ( idx integer, lng LONG RAW, dt date )
--- insert some LONG RAW data
ok 36
ok 37
ok 38
ok 39
--- fetch LONG RAW data back again -- truncated - LongTruncOk == 1
LongReadLen 20, LongTruncOk 1
ok 40
ok 41
ok 42
ok 43
ok 44
ok 45
--- fetch LONG RAW data back again -- truncated - LongTruncOk == 0
LongReadLen 40955, LongTruncOk
ok 46
ok 47
ok 48
ok 49
ok 50
ok 51
--- fetch LONG RAW data back again -- complete - LongTruncOk == 0
LongReadLen 82920, LongTruncOk
ok 52
ok 53
ok 54
ok 55
ok 56
ok 57
ok 58
ok 59
--- fetch LONG RAW data back again -- via blob_read
Skipped blob_read tests for LONGs with OCI8 - not currently supported.
ok 60
ok 61
ok 62
ok 63
ok 64
ok 65
ok 66
ok 67
ok 68
ok 69
ok 70
long_data0 length 10240
long_data1 length 81920
long_data2 length 71680
create table dbd_ora__drop_me ( idx integer, lng CLOB, dt date )
--- insert some CLOB data
ok 71
ok 72
ok 73
ok 74
--- fetch CLOB data back again -- truncated - LongTruncOk == 1
LongReadLen 20, LongTruncOk 1
ok 75
ok 76
ok 77
ok 78
ok 79
ok 80
--- fetch CLOB data back again -- truncated - LongTruncOk == 0
LongReadLen 81910, LongTruncOk
ok 81
ok 82
ok 83
ok 84
ok 85
ok 86
--- fetch CLOB data back again -- complete - LongTruncOk == 0
LongReadLen 82920, LongTruncOk
ok 87
ok 88
ok 89
ok 90
ok 91
ok 92
ok 93
ok 94
--- fetch CLOB data back again -- via blob_read
ok 95
ok 96
ok 97
Use of uninitialized value in numeric eq (==) at t/long.t line 230.
# failed test 98 at line 230. ORA-01403: no data found (DBD NEED_DATA: OCILobRead)
not ok 98
Use of uninitialized value in string eq at t/long.t line 231.
Use of uninitialized value in length at t/long.t line 345.
Use of uninitialized value in string eq at t/long.t line 346.
# failed test 99 at line 231. Strings are of different lengths (0 vs 10240)
not ok 99
# failed test 100 at line 233. ORA-01403: no data found (DBD (UNKNOWN OCI STATUS
1010): OCIStmtFetch)
not ok 100
Use of uninitialized value in numeric eq (==) at t/long.t line 234.
# failed test 101 at line 234. ORA-03130: the buffer for the next piece to be fetched
is required (DBD ERROR: OCILobGetLength)
not ok 101
Use of uninitialized value in string eq at t/long.t line 235.
Use of uninitialized value in length at t/long.t line 345.
Use of uninitialized value in string eq at t/long.t line 346.
# failed test 102 at line 235. Strings are of different lengths (0 vs 81920)
not ok 102
# failed test 103 at line 237. ERROR no statement executing (perhaps you need to call
execute first)
not ok 103
Use of uninitialized value in numeric eq (==) at t/long.t line 240.
Use of uninitialized value in numeric eq (==) at t/long.t line 240.
Use of uninitialized value in concatenation (.) or string at t/long.t line 262.
# failed test 104 at line 262. Fetched length , expected 71680
not ok 104
# failed test 105 at line 263.
not ok 105
long_data0 length 10240
long_data1 length 81920
long_data2 length 71680
Unable to create test table for 'BLOB' data (3127). Tests skipped.
ok 106
ok 107
ok 108
ok 109
ok 110
ok 111
ok 112
ok 113
ok 114
ok 115
ok 116
ok 117
ok 118
ok 119
ok 120
ok 121
ok 122
ok 123
ok 124
ok 125
ok 126
ok 127
ok 128
ok 129
ok 130
ok 131
ok 132
ok 133
ok 134
ok 135
ok 136
ok 137
ok 138
ok 139
ok 140
--- testing ora_auto_lob to access raw LobLocator
# failed test 141 at line 86. lob_locator false
not ok 141
# failed test 142 at line 87.
not ok 142
# failed test 143 at line 88. lob_locator deref ptr false
not ok 143
Some tests for LONG data type handling failed. These are generally Oracle bugs.
Please report this to the dbi-users mailing list, and include the
Oracle version number of both the client and the server.
Please also include the output of the 'perl -V' command.
(If you can, please study t/long.t to investigate the cause.
Feel free to edit the tests to see what's happening in more detail.
Especially by adding trace() calls around the failing tests.
Run the tests manually using the command "perl -Mblib t/long.t")
Meanwhile, if the other tests have passed you can use DBD::Oracle.
Summary of my perl5 (revision 5.0 version 6 subversion 1) configuration:
Platform:
osname=solaris, osvers=2.8, archname=sun4-solaris
uname='sunos solaris 5.8 generic sun4u sparc sunw,ultra-5_10 '
config_args='-Dcc=gcc -de'
hint=recommended, useposix=true, d_sigaction=define
usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef
useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
Compiler:
cc='gcc', ccflags ='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64',
optimize='-O',
cppflags='-fno-strict-aliasing -I/usr/local/include'
ccversion='', gccversion='2.95.3 20010315 (release)', gccosandvers='solaris2.8'
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=8, usemymalloc=y, prototype=define
Linker and Libraries:
ld='gcc', ldflags =' -L/usr/local/lib '
libpth=/usr/local/lib /usr/lib /usr/ccs/lib
libs=-lsocket -lnsl -lgdbm -ldb -ldl -lm -lc
perllibs=-lsocket -lnsl -ldl -lm -lc
libc=/lib/libc.so, so=so, useshrplib=false, libperl=libperl.a
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' '
cccdlflags='-fPIC', lddlflags='-G -L/usr/local/lib'
Characteristics of this binary (from libperl):
Compile-time options: USE_LARGE_FILES
Built under solaris
Compiled at Apr 26 2001 04:07:49
@INC:
/usr/local/lib/perl5/5.6.1/sun4-solaris
/usr/local/lib/perl5/5.6.1
/usr/local/lib/perl5/site_perl/5.6.1/sun4-solaris
/usr/local/lib/perl5/site_perl/5.6.1
/usr/local/lib/perl5/site_perl