@@ -37,6 +37,32 @@ var should = require('should');
37
37
var async = require ( 'async' ) ;
38
38
39
39
var assist = exports ;
40
+
41
+ /* Mapping between table names and data types */
42
+ assist . allDataTypeNames =
43
+ {
44
+ "oracledb_char" : "CHAR(2000)" ,
45
+ "oracledb_nchar" : "NCHAR(1000)" ,
46
+ "oracledb_varchar2" : "VARCHAR2(4000)" ,
47
+ "oracledb_nvarchar2" : "NVARCHAR2(2000)" ,
48
+ "oracledb_number" : "NUMBER" ,
49
+ "oracledb_number2" : "NUMBER(15, 5)" ,
50
+ "oracledb_float" : "FLOAT" ,
51
+ "oracledb_float2" : "FLOAT(90)" ,
52
+ "oracledb_binary_float" : "BINARY_FLOAT" ,
53
+ "oracledb_double" : "BINARY_DOUBLE" ,
54
+ "oracledb_date" : "DATE" ,
55
+ "oracledb_timestamp1" : "TIMESTAMP" ,
56
+ "oracledb_timestamp2" : "TIMESTAMP(5)" ,
57
+ "oracledb_timestamp3" : "TIMESTAMP WITH TIME ZONE" ,
58
+ "oracledb_timestamp4" : "TIMESTAMP (2) WITH TIME ZONE" ,
59
+ "oracledb_timestamp5" : "TIMESTAMP WITH LOCAL TIME ZONE" ,
60
+ "oracledb_timestamp6" : "TIMESTAMP (9) WITH LOCAL TIME ZONE" ,
61
+ "oracledb_rowid" : "ROWID" ,
62
+ "oracledb_myclobs" : "CLOB" ,
63
+ "oracledb_myblobs" : "BLOB"
64
+ } ;
65
+
40
66
assist . data = {
41
67
specialChars : [
42
68
'\"' ,
@@ -111,6 +137,22 @@ assist.data = {
111
137
't' , 'u' , 'v' , 'w' , 'x' ,
112
138
'y' , 'z'
113
139
] ,
140
+ numbers : [
141
+ 1 ,
142
+ 0 ,
143
+ 8 ,
144
+ - 8 ,
145
+ 1234 ,
146
+ - 1234 ,
147
+ 9876.54321 ,
148
+ - 9876.54321 ,
149
+ 0.01234 ,
150
+ - 0.01234 ,
151
+ 0.00000123 ,
152
+ - 0.00000123 ,
153
+ 1234567890.0123 ,
154
+ - 1234567890.0123
155
+ ] ,
114
156
dates : [
115
157
new Date ( - 100000000 ) ,
116
158
new Date ( 0 ) ,
@@ -126,18 +168,6 @@ assist.data = {
126
168
]
127
169
} ;
128
170
129
- assist . allDataTypeNames =
130
- {
131
- "oracledb_varchar2" : "VARCHAR2(4000)" ,
132
- "oracledb_date" : "DATE" ,
133
- "oracledb_timestamp1" : "TIMESTAMP" ,
134
- "oracledb_timestamp2" : "TIMESTAMP(5)" ,
135
- "oracledb_timestamp3" : "TIMESTAMP WITH TIME ZONE" ,
136
- "oracledb_timestamp4" : "TIMESTAMP (2) WITH TIME ZONE" ,
137
- "oracledb_timestamp5" : "TIMESTAMP WITH LOCAL TIME ZONE" ,
138
- "oracledb_timestamp6" : "TIMESTAMP (9) WITH LOCAL TIME ZONE"
139
- } ;
140
-
141
171
assist . DATE_STRINGS =
142
172
[
143
173
"TO_DATE('2005-01-06','YYYY-DD-MM') " ,
@@ -253,45 +283,45 @@ assist.content =
253
283
] ,
254
284
timestamps5 :
255
285
[
256
- '01-06 -2005 00 :00:00.000000 ' ,
257
- '01-09 -2005 00 :00:00.000000 ' ,
258
- '05 -08-2005 00 :00:00.000000 ' ,
259
- '05 -07-1998 00 :00:00.000000 ' ,
260
- '07 -05-1998 00 :00:00.000000 ' ,
261
- '02 -12-1999 03 :00:00.100000 ' ,
262
- '02 -12-1999 03 :00:00.120000 ' ,
263
- '02 -12-1999 03 :00:00.123000 ' ,
264
- '02 -12-1999 03 :00:00.012300 ' ,
265
- '02 -12-1999 03 :00:00.123400 ' ,
266
- '02 -12-1999 03 :00:00.001230 ' ,
267
- '02 -12-1999 03 :00:00.123450 ' ,
268
- '02 -12-1999 03 :00:00.123456 ' ,
269
- '02 -12-1999 03 :00:00.123457 ' ,
270
- '02 -12-1999 03 :20:02.000012 ' ,
271
- '02 -12-1999 03 :00:00.123457 ' ,
272
- '02 -12-1999 03 :00:00.123457 ' ,
273
- '02 -12-1999 03 :00:00.000000 '
286
+ '31-05 -2005 23 :00:00.000000 -08:00 ' ,
287
+ '31-08 -2005 23 :00:00.000000 -08:00 ' ,
288
+ '04 -08-2005 23 :00:00.000000 -08:00 ' ,
289
+ '04 -07-1998 23 :00:00.000000 -08:00 ' ,
290
+ '06 -05-1998 23 :00:00.000000 -08:00 ' ,
291
+ '01 -12-1999 11 :00:00.100000 -08:00 ' ,
292
+ '01 -12-1999 11 :00:00.120000 -08:00 ' ,
293
+ '01 -12-1999 11 :00:00.123000 -08:00 ' ,
294
+ '01 -12-1999 11 :00:00.012300 -08:00 ' ,
295
+ '01 -12-1999 11 :00:00.123400 -08:00 ' ,
296
+ '01 -12-1999 11 :00:00.001230 -08:00 ' ,
297
+ '01 -12-1999 11 :00:00.123450 -08:00 ' ,
298
+ '01 -12-1999 11 :00:00.123456 -08:00 ' ,
299
+ '01 -12-1999 11 :00:00.123457 -08:00 ' ,
300
+ '01 -12-1999 11 :20:02.000012 -08:00 ' ,
301
+ '01 -12-1999 11 :00:00.123457 -08:00 ' ,
302
+ '01 -12-1999 11 :00:00.123457 -08:00 ' ,
303
+ '01 -12-1999 11 :00:00.000000 -08:00 '
274
304
] ,
275
305
timestamps6 :
276
306
[
277
- '01-06 -2005 00 :00:00.000000000 ' ,
278
- '01-09 -2005 00 :00:00.000000000 ' ,
279
- '05 -08-2005 00 :00:00.000000000 ' ,
280
- '05 -07-1998 00 :00:00.000000000 ' ,
281
- '07 -05-1998 00 :00:00.000000000 ' ,
282
- '02 -12-1999 03 :00:00.100000000 ' ,
283
- '02 -12-1999 03 :00:00.120000000 ' ,
284
- '02 -12-1999 03 :00:00.123000000 ' ,
285
- '02 -12-1999 03 :00:00.012300000 ' ,
286
- '02 -12-1999 03 :00:00.123400000 ' ,
287
- '02 -12-1999 03 :00:00.001230000 ' ,
288
- '02 -12-1999 03 :00:00.123450000 ' ,
289
- '02 -12-1999 03 :00:00.123456000 ' ,
290
- '02 -12-1999 03 :00:00.123456700 ' ,
291
- '02 -12-1999 03 :20:02.000012300 ' ,
292
- '02 -12-1999 03 :00:00.123456780 ' ,
293
- '02 -12-1999 03 :00:00.123456789 ' ,
294
- '02 -12-1999 03 :00:00.000000000 '
307
+ '31-05 -2005 23 :00:00.000000000 -08:00' ,
308
+ '31-08 -2005 23 :00:00.000000000 -08:00 ' ,
309
+ '04 -08-2005 23 :00:00.000000000 -08:00 ' ,
310
+ '04 -07-1998 23 :00:00.000000000 -08:00 ' ,
311
+ '06 -05-1998 23 :00:00.000000000 -08:00 ' ,
312
+ '01 -12-1999 11 :00:00.100000000 -08:00 ' ,
313
+ '01 -12-1999 11 :00:00.120000000 -08:00 ' ,
314
+ '01 -12-1999 11 :00:00.123000000 -08:00 ' ,
315
+ '01 -12-1999 11 :00:00.012300000 -08:00 ' ,
316
+ '01 -12-1999 11 :00:00.123400000 -08:00 ' ,
317
+ '01 -12-1999 11 :00:00.001230000 -08:00 ' ,
318
+ '01 -12-1999 11 :00:00.123450000 -08:00 ' ,
319
+ '01 -12-1999 11 :00:00.123456000 -08:00 ' ,
320
+ '01 -12-1999 11 :00:00.123456700 -08:00 ' ,
321
+ '01 -12-1999 11 :20:02.000012300 -08:00 ' ,
322
+ '01 -12-1999 11 :00:00.123456780 -08:00 ' ,
323
+ '01 -12-1999 11 :00:00.123456789 -08:00 ' ,
324
+ '01 -12-1999 11 :00:00.000000000 -08:00 '
295
325
]
296
326
} ;
297
327
@@ -333,35 +363,6 @@ assist.createCharString = function(size) {
333
363
return buffer . toString ( ) ;
334
364
}
335
365
336
- assist . setup = function ( connection , tableName , sqlCreate , array , done ) {
337
- async . series ( [
338
- function ( callback ) {
339
- connection . execute (
340
- sqlCreate ,
341
- function ( err ) {
342
- should . not . exist ( err ) ;
343
- callback ( ) ;
344
- }
345
- ) ;
346
- } ,
347
- function ( callback ) {
348
- async . forEach ( array , function ( element , cb ) {
349
- connection . execute (
350
- "INSERT INTO " + tableName + " VALUES(:no, :bindValue)" ,
351
- { no : array . indexOf ( element ) , bindValue : element } ,
352
- function ( err ) {
353
- should . not . exist ( err ) ;
354
- cb ( ) ;
355
- }
356
- ) ;
357
- } , function ( err ) {
358
- should . not . exist ( err ) ;
359
- callback ( ) ;
360
- } ) ;
361
- }
362
- ] , done ) ;
363
- }
364
-
365
366
assist . setUp = function ( connection , tableName , array , done )
366
367
{
367
368
async . series ( [
@@ -585,87 +586,6 @@ assist.selectOriginalData = function(connection, tableName, array, done)
585
586
} ) ;
586
587
}
587
588
588
- assist . resultSetSupport = function ( connection , tableName , array , done ) {
589
- connection . should . be . ok ;
590
- var numRows = 3 ; // number of rows to return from each call to getRows()
591
- connection . execute (
592
- "SELECT * FROM " + tableName ,
593
- [ ] ,
594
- { resultSet : true , outFormat : oracledb . OBJECT } ,
595
- function ( err , result ) {
596
- should . not . exist ( err ) ;
597
- ( result . resultSet . metaData [ 0 ] ) . name . should . eql ( 'NUM' ) ;
598
- ( result . resultSet . metaData [ 1 ] ) . name . should . eql ( 'CONTENT' ) ;
599
- fetchRowsFromRS ( result . resultSet ) ;
600
- }
601
- ) ;
602
-
603
- function fetchRowsFromRS ( rs ) {
604
- rs . getRows ( numRows , function ( err , rows ) {
605
- should . not . exist ( err ) ;
606
- if ( rows . length > 0 ) {
607
- for ( var i = 0 ; i < rows . length ; i ++ ) {
608
- if ( ( typeof rows [ i ] . CONTENT ) === 'string' )
609
- rows [ i ] . CONTENT . trim ( ) . should . eql ( array [ rows [ i ] . NUM ] ) ;
610
- else if ( ( typeof rows [ i ] . CONTENT ) === 'number' )
611
- rows [ i ] . CONTENT . should . eql ( array [ rows [ i ] . NUM ] ) ;
612
- else
613
- rows [ i ] . CONTENT . toUTCString ( ) . should . eql ( array [ rows [ i ] . NUM ] . toUTCString ( ) ) ;
614
- }
615
- return fetchRowsFromRS ( rs ) ;
616
- } else if ( rows . length == 0 ) {
617
- rs . close ( function ( err ) {
618
- should . not . exist ( err ) ;
619
- done ( ) ;
620
- } ) ;
621
- } else {
622
- var lengthLessThanZero = true ;
623
- should . not . exist ( lengthLessThanZero ) ;
624
- done ( ) ;
625
- }
626
- } ) ;
627
- }
628
- }
629
-
630
- assist . nullValueSupport = function ( connection , tableName , done ) {
631
- connection . should . be . ok ;
632
- var sqlInsert = "INSERT INTO " + tableName + " VALUES(:no, :bindValue)" ;
633
- async . series ( [
634
- function ( callback ) {
635
- connection . execute (
636
- sqlInsert ,
637
- { no : 998 , bindValue : '' } ,
638
- function ( err ) {
639
- should . not . exist ( err ) ;
640
- callback ( ) ;
641
- }
642
- ) ;
643
- } ,
644
- function ( callback ) {
645
- connection . execute (
646
- sqlInsert ,
647
- { no : 999 , bindValue : null } ,
648
- function ( err ) {
649
- should . not . exist ( err ) ;
650
- callback ( ) ;
651
- }
652
- ) ;
653
- } ,
654
- function ( callback ) {
655
- connection . execute (
656
- "SELECT * FROM " + tableName + " WHERE num > :1 ORDER BY num" ,
657
- [ 990 ] ,
658
- function ( err , result ) {
659
- should . not . exist ( err ) ;
660
- // console.log(result);
661
- result . rows . should . eql ( [ [ 998 , null ] , [ 999 , null ] ] ) ;
662
- callback ( ) ;
663
- }
664
- ) ;
665
- }
666
- ] , done ) ;
667
- }
668
-
669
589
/* Null value verfication */
670
590
assist . verifyNullValues = function ( connection , tableName , done )
671
591
{
@@ -739,6 +659,17 @@ assist.verifyNullValues = function(connection, tableName, done)
739
659
}
740
660
) ;
741
661
} ,
662
+ function sqlNullColumn ( callback ) {
663
+ var num = 6 ;
664
+ connection . execute (
665
+ "INSERT INTO " + tableName + "(num) VALUES(:1)" ,
666
+ [ num ] ,
667
+ function ( err ) {
668
+ should . not . exist ( err ) ;
669
+ verifyNull ( num , callback ) ;
670
+ }
671
+ ) ;
672
+ } ,
742
673
function dropTable ( callback ) {
743
674
connection . execute (
744
675
"DROP table " + tableName ,
0 commit comments