Author: byterock
Date: Fri Oct 17 06:20:37 2008
New Revision: 11986
Modified:
dbd-oracle/branches/utf8_ea_2/t/26exe_array.t
Log:
test finished will patch next
Modified: dbd-oracle/branches/utf8_ea_2/t/26exe_array.t
==============================================================================
--- dbd-oracle/branches/utf8_ea_2/t/26exe_array.t (original)
+++ dbd-oracle/branches/utf8_ea_2/t/26exe_array.t Fri Oct 17 06:20:37 2008
@@ -4,7 +4,7 @@
use DBD::Oracle qw(ORA_RSET SQLCS_NCHAR);
use strict;
-use Test::More tests =>14 ;
+use Test::More tests =>17 ;
unshift @INC ,'t';
require 'nchar_test_lib.pl';
@@ -15,7 +15,8 @@
## By John Scoles, The Pythian Group
## ----------------------------------------------------------------------------
## Just a few checks to see if execute array works in Oracle::DBD
-## Nothing fancy.
+## Nothing fancy. I also checks for warnings when utf8 is inserted into
+## an ASCII only DB
## ----------------------------------------------------------------------------
BEGIN {
@@ -25,22 +26,27 @@
# create a database handle
my $dsn = oracle_test_dsn();
my $dbuser = $ENV{ORACLE_USERID} || 'scott/tiger';
+$ENV{NLS_NCHAR} = "US7ASCII";
my $dbh = DBI->connect($dsn, $dbuser, '', { RaiseError=>1,
AutoCommit=>1,
- PrintError => 0 });
+ PrintError => 0,
+ ora_envhp => 0});
# check that our db handle is good
isa_ok($dbh, "DBI::db");
+
my $table = table();
-
+eval{
+ drop_table($dbh);
+};
$dbh->do(qq{
CREATE TABLE $table (
row_1 INTEGER NOT NULL,
row_2 INTEGER NOT NULL,
row_3 INTEGER NOT NULL,
- row_4 CHAR(20)
+ row_4 CHAR(5)
)
});
@@ -48,7 +54,7 @@
my @var1 = (1,1,1,1,1,1,1,1,1,1);
my @var2 = (2,2,2,2,2,2,2,2,2,2);
my @var3 = (3,3,3,3,3,3,3,3,3,3);
-
+my @utf8_string = ("A","A","A","A","\x{6e9}","A","A","A","A","A");
my $tuple_status = [];
my $dumped ;
@@ -147,6 +153,19 @@
cmp_ok(scalar @$problems, '==',48, '... we should have 48 rows');
+$sth = $dbh->prepare("INSERT INTO $table ( row_1, row_2, row_3,row_4) VALUES
(1,2,3,?)");
+
+ok ($sth->execute_array(
+ {ArrayTupleStatus => $tuple_status},
+ [EMAIL PROTECTED]
+ ), '... execute_array should return true');
+
+
+cmp_ok(@$tuple_status[4],'ne','-1','... #5 should be a warning');
+cmp_ok(scalar @{$tuple_status}, '==', 10, '... we should have 10
tuple_status');
+
+
+
drop_table($dbh);