-
Notifications
You must be signed in to change notification settings - Fork 1.1k
/
list.txt
executable file
·5996 lines (5706 loc) · 276 KB
/
list.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Overview of node-oracledb functional tests
1. connection.js
1.1 can run SQL query with different output formats
1.1.1 ARRAY format by default
1.1.2 ARRAY format explicitly
1.1.3 OBJECT format
1.1.4 Negative test - invalid outFormat value
1.2 can call PL/SQL procedures
1.2.1 bind parameters in various ways
1.3 statementCacheSize controls statement caching
1.3.1 stmtCacheSize = 0, which disable statement caching
1.3.2 works well when statement cache enabled (stmtCacheSize > 0)
1.4 Testing commit() & rollback() functions
1.4.1 commit() function works well
1.4.2 rollback() function works well
1.5 Close method
1.5.1 close can be used as an alternative to release
1.6 connectionString alias
1.6.1 allows connectionString to be used as an alias for connectString
1.7 privileged connections
1.7.1 Negative value - null
1.7.2 Negative - invalid type, a String
1.7.3 Negative value - random constants
1.7.4 Negative value - NaN
1.7.5 Negative - throws error, when invalid privilege is provided for creating a Pool
1.7.6 negative test case SYSPRELIM & SYSASM
1.8 Ping method
1.8.1 ping() checks the connection is usable
1.8.2 closed connection
1.9 connectString & connectionString specified
1.9.1 both connectString & ConnectionString specified
1.10 user & username specified
1.10.1 both user & username specified
1.10.2 allows username to be used as an alias for user
1.10.3 uses username alias to login with SYSDBA privilege
1.11 Invalid credentials
1.11.1 using bad connect string
1.11.2 using user
1.11.3 using invalid password
1.12 confirm an exception is raised after closing a connection
1.12.1 exception_on_close
1.13 unsupported year to month interval
1.13.1 test year to month interval not supported
1.14 unacceptable boundary values for number datatypes
1.14.1 unacceptable boundary numbers should get rejected
1.15 result after bad execute
1.15.1 subsequent executes should succeed after bad execute
1.15.2 result after bad execute
1.16 error on empty connectString with thin mode
1.16.1 connectString = ""
1.16.2 connectString undefined
1.17 Oracle Database instance name associated with the connection
1.17.1 connection parameter instanceName comparision with query result
1.18 settable parameters
1.18.1 negative - Check parameter value type
1.18.2 Check parameter values after user update
2. pool.js
2.1 default setting
2.1.1 testing default values of pool properties
2.2 poolMin
2.2.1 poolMin cannot be a negative number
2.2.2 poolMin must be a Number
2.2.3 poolMin cannot greater than poolMax
2.2.4 (poolMin + poolIncrement) can equal to poolMax
2.3 poolMax
2.3.1 poolMax cannot be a negative value
2.3.2 poolMax cannot be 0
2.3.3 poolMax must be a number
2.3.4 poolMax limits the pool capacity
2.3.4 poolMax and poolMin actually limit the pool size
2.4 poolIncrement
2.4.1 poolIncrement cannot be a negative value
2.4.2 poolIncrement must be a Number
2.4.3 the amount of open connections equals to poolMax when (connectionsOpen + poolIncrement) > poolMax
2.5 poolTimeout
2.5.1 poolTimeout cannot be a negative number
2.5.2 poolTimeout can be 0, which disables timeout feature
2.5.3 poolTimeout must be a number
2.6 stmtCacheSize
2.6.1 stmtCacheSize cannot be a negative value
2.6.2 stmtCacheSize can be 0
2.6.3 stmtCacheSize must be a Number
2.7 getConnection
2.7.1 passes error in callback if called after pool is terminated and a callback is provided
2.8 connection queueing
2.8.1 basic case
2.8.2 generates NJS-040 if request is queued and queueTimeout expires
2.8.3 generates NJS-076 if request exceeds queueMax
2.8.4 generates NJS-076 if request exceeds queueMax 0
2.8.5 request queue never terminate for queueTimeout set to 0
2.8.6 queueMax range check, queueMax -1
2.8.7 queueMax range check, queueMax -0.5 not an integer
2.9 _enableStats & _logStats functionality
2.9.1 does not work after the pool has been terminated
2.10 Close method
2.10.1 close can be used as an alternative to release
2.11 Invalid Credential
2.11.1 error occurs at creating pool when poolMin >= 1
2.11.2 error occurs at getConnection() when poolMin is the default value 0
2.12 connectionString alias
2.12.1 allows connectionString to be used as an alias for connectString
2.13 connect string
2.13.1 both connectString & connectionString provided
2.13.2 Negative - empty connect string
2.14 username alias
2.14.1 allows username to be used as an alias for user
2.14.2 both user and username specified
2.14.3 uses username alias to login with SYSDBA privilege
2.15 creation time non editable properties
2.15.1 default edition value
2.15.2 ORA$BASE edition value
2.15.3 default value for events - undefined
2.15.4 events - false
2.15.5 events - true
2.15.6 externalAuth - default undefined
2.15.7 externalAuth - true
2.15.8 externalAuth - false
2.15.9 homogeneous - default true
2.15.10 homogeneous - true
2.15.11 homogeneous - false
2.15.12 user name
2.15.13 user name - undefined
2.15.14 connectString
2.16 Pool non-configurable properties global/local override
2.16.1 edition only globally set
2.16.2 edition override
2.16.3 edition override to empty string
2.16.4 events override to true
2.16.5 events override to false
2.16.6 externalAuth override to false
2.16.7 externalAuth override to true
2.17 Check execute same/different query with new/released session from pool
2.17.1 same query execution from new and released session
2.17.2 different query execution from new and released session
2.18 pool stats
2.18.1 driver mode in pool stats
2.19 DBA and Non-DBA user login with SYSDBA privilege
2.19.1 DBA user with SYSDBA privilege
2.20 settable parameters
2.20.1 Check parameter values after user update
2.20.2 negative - Check parameter value types
3. examples.js
3.1 connect.js
3.1.1 tests a basic connection to the database
3.2 version.js
3.2.1 shows the node-oracledb version attributes
3.3 select1.js & select2.js
3.3.1. execute a basic query
3.3.2. execute queries to show array and object formats
3.4 selectjson.js - 12.1.0.2 feature
3.4.1 Selecting JSON stored in a VARCHAR2 column
3.4.2 Using JSON_VALUE to extract a value from a JSON column
3.4.3 Using JSON_OBJECT to extract relational data as JSON
3.5 date.js
3.5.1 inserts and query DATE and TIMESTAMP columns
3.6 rowlimit.js
3.6.1 shows ways to limit the number of records fetched by queries
3.7 plsqlproc.js and plsqlfun.js
3.7.1 calling PL/SQL procedure and binding parameters in various ways
3.7.2 calling PL/SQL function
3.8 insert1.js
3.8.1 creates a table and inserts data
3.9 insert2.js
3.9.1 tests the auto commit behavior
3.10 resultset.js
3.10.1 resultset1.js - getRow() function
3.10.2 resultset2.js - getRows() function
3.11 refcursor.js
3.11.1 REF CURSOR
4. binding.js
4.1 test STRING, NUMBER, ARRAY & JSON format
4.1.1 VARCHAR2 binding, Object & Array formats
4.1.2 NUMBER binding, Object & Array formats
4.1.3 Multiple binding values, Object & Array formats
4.1.4 Multiple binding values, Change binding order
4.1.5 default bind type - STRING
4.2 mixing named with positional binding
4.2.1 array binding is ok
4.2.2 array binding with mixing JSON should throw an error
4.3 insert with DATE column and DML returning
4.3.1 passes in object syntax without returning into
4.3.2 passes in object syntax with returning into
4.3.3 passes in array syntax without returning into
4.3.4 should pass but fail in array syntax with returning into
4.4 test maxSize option
4.4.1 outBind & maxSize restriction
4.4.2 default value is 200
4.4.3 Negative - bind out data exceeds default length
4.4.4 maximum value is 32767
4.5 The default direction for binding is BIND_IN
4.5.1 DML default bind
4.5.2 negative DML invalid bind direction
4.6 PL/SQL block with empty outBinds
4.6.1
4.7 Value as JSON named/unamed test cases
4.7.1 valid case when numeric values are passed as it is
4.7.2 Valid values when one of the value is passed as JSON
4.7.3 Valid test case when one of the value is passed as JSON
4.7.4 Valid Test case when both values are passed as JSON
4.7.5 Invalid Test case when value is passed as named JSON
4.7.6 Invalid Test case when other-value is passed as named JSON
4.7.7 Invalid Test case when all values is passed as named JSON
4.8 bind DATE
4.8.1 binding out in Object & Array formats
4.8.2 BIND_IN
4.8.3 BIND_INOUT
4.9 different placeholders for bind name
4.9.1 test case sensitivity of quoted bind names
4.9.2 using a reserved keyword as a bind name
4.9.3 not using a bind name in execute statement
4.9.4 not using a bind name in execute statement - repeated bind placeholders
4.9.5 mismatch of named binds - lower number of bind values
4.9.6 mismatch of named repeated binds - lower number of bind values
4.9.7 mismatch of named binds - higher number of bind values
4.10 various quoted binds
4.10.1 various quoted bind names
4.11 PL/SQL block with null Binds
4.11.1 executing a null with bind values
4.12 binding in a cursor
4.12.1 test binding in a cursor
4.13 fetching supplemental and other characters
4.13.1 bind and fetch supplemental characters
4.13.2 bind and fetch Scandinavian/Nordic characters
4.14 binding large number of in and out binds
4.14.1 output binds in pl/sql (506ms)
4.14.2 output binds using bindByPosition in sql with returning clause
4.14.3 output binds using bindByName in sql with returning clause
4.15 binding different data types for same sql
4.15.1 change bindtypes using bindByPosition for queries
4.15.2 change bindtypes using bindByName for queries
4.16 positional binding
4.16.1 Matching bind values
4.16.2 Negative - bind mismatch of zero bind values
4.16.3 Negative - bind mismatch of non-zero bind values
5. externalAuth.js
5.1 tests that work both when DB has configured externalAuth and not configured
5.1.1 can get connection from oracledb with correct user/password when externalAuth is disabled
5.1.2 throws error when getting connection from oracledb with correct user/password when externalAuth is enabled
5.1.3 throws error when getting connection from oracledb given only invalid 'user' when externalAuth is enabled
5.1.4 throws error when getting connection from oracledb given only 'password' when externalAuth is enabled
5.1.5 can get pool from oracledb with user/password when externalAuth is disabled
5.1.6 throws error when getting pool from oracledb given user/password when externalAuth is enabled
5.1.7 throws error when getting pool from oracledb only given username when externalAuth is enabled
5.1.8 throws error when getting pool from oracledb only given password when externalAuth is enabled
5.2 tests only work when externalAuth is configured on DB
5.2.1 can get connection from oracledb with external authentication
5.2.2 can get pool from oracledb with external authentication
5.2.3 gets multiple connections from oracledb
5.2.4 gets multiple pools from oracledb
6. dmlReturning.js
6.1 NUMBER & STRING driver data type
6.1.1 INSERT statement with Object binding
6.1.2 INSERT statement with Array binding
6.1.3 INSERT statement with small maxSize restriction
6.1.4 UPDATE statement with single row matched
6.1.5 UPDATE statement with single row matched & Array binding
6.1.6 UPDATE statements with multiple rows matched
6.1.7 UPDATE statements with multiple rows matched & Array binding
6.1.8 DELETE statement with Object binding
6.1.9 DELETE statement with Array binding
6.1.10 Stress test - support 4k varchars
6.1.11 Negative test - throws correct error message
6.1.12 INSERT DML returning into too small a variable
6.1.13 INSERT statement with NaN
6.1.14 INSERT statement with an invalid bind name (reserved namespace keyword)
6.1.15 INSERT statement parse non ascii returning bind
6.1.16 Execute DML with Duplicated bind names for input and returning into clause
6.2 DATE and TIMESTAMP data
6.2.1 INSERT statement, single row matched, Object binding, no bind in data
6.2.2 INSERT statement with JavaScript date bind in
6.2.3 INSERT statement with Array binding
6.2.4 UPDATE statement with single row matched
6.2.5 UPDATE statements with multiple rows matched, ARRAY binding format
6.2.6 UPDATE statements, multiple rows, TIMESTAMP data
6.2.7 DELETE statement, single row matched, Object binding format
6.2.8 DELETE statement, multiple rows matched, Array binding format
6.2.9 Negative test - bind value and type mismatch
6.2.10 INSERT statement, check re-execute by changing the out bindtype
7. autoCommit.js
7.1 autoCommit takes effect when setting oracledb.autoCommit before connecting
7.2 autoCommit takes effect when setting oracledb.autoCommit after connecting
7.3 autoCommit setting does not affect previous SQL result
7.4 global option - oracledb.autoCommit
7.4.1 Negative - 0
7.4.2 Negative - negative number
7.4.3 Negative - positive number
7.4.4 Negative - NaN
7.4.5 Negative - undefined
7.5 set autoCommit as an execute() option
7.5.1 Negative - 0
7.5.2 Negative - negative number
7.5.3 Negative - positive number
7.5.4 Negative - NaN
7.5.5 works as 'false' when setting to 'undefined'
8. autoCommitForSelect.js
8.1 should return previous value when autoCommit is false
8.2 can use explicit commit() to keep data consistent
8.3 can also use the autoCommit for SELECTs feature
9. columnMetadata.js
9.1 tests with the same table
9.1.1 shows metaData correctly when retrieving 1 column from a 4-column table
9.1.2 shows metaData when retrieving 2 columns. MetaData is correct in content and sequence
9.1.3 shows metaData correctly when retrieve 3 columns
9.1.4 shows metaData correctly when retrieving all columns with [SELECT * FROM table] statement
9.1.5 works for SELECT count(*)
9.1.6 works when a query returns no rows
9.1.7 only works for SELECT statement, does not work for INSERT
9.1.8 only works for SELECT statement, does not work for UPDATE
9.1.9 works with a SQL WITH statement
9.1.10 displays metaData correctly with result set
9.2 case sensitive
9.2.1 works for tables whose column names were created case sensitively
9.3 Large number of columns
9.3.1 works with a large number of columns
9.3.2 works with re-executes with multiple packet response
9.4 single character column
9.4.1 works with column names consisting of single characters
9.5 duplicate column alias
9.5.1 works when using duplicate column alias
10. nullColumnValues.js
10.1 a simple query for null value
10.2 in-bind for null column value
10.3 out-bind for null column value
10.4 DML Returning for null column value
10.5 resultSet for null value
12. resultSet1.js
12.1 Testing resultSet option
12.1.1 when resultSet option = false, content of result is correct
12.1.2 when resultSet option = true, content of result is correct
12.1.3 negative - 0
12.1.4 negative - null
12.1.5 when resultSet option = undefined, it behaves like false
12.1.6 negative - NaN
12.1.7 negative - 1
12.1.8 negative - (-1)
12.1.9 negative - random string
12.2 Testing fetchArraySize option
12.2.1 negative - negative value
12.2.2 negative - random string
12.2.3 negative - NaN
12.2.4 negative - null
12.2.5 negative - zero value
12.3 Testing function getRows()
12.3.1 retrieved set is exactly the size of result
12.3.2 retrieved set is greater than the size of result
12.3.3 retrieved set is half of the size of result
12.3.4 retrieved set is one tenth of the size of the result
12.3.5 data in resultSet is array when setting outFormat ARRAY
12.3.6 data in resultSet is object when setting outFormat OBJECT
12.3.7 the size of retrieved set can be set to 1
12.3.8 query 0 row
12.3.9 getRows() without argument returns remaining all rows
12.3.10 getRows(0) returns remaining all rows
12.3.11 Negative - set the 1st parameter of getRows() to be -5
12.3.12 Negative - set the 1st parameter of getRows() to be null
12.4 Testing function getRow()
12.4.1 works well with all correct setting
12.4.2 data in resultSet is array when setting outFormat ARRAY
12.4.3 data in resultSet is object when setting outFormat OBJECT
12.4.4 query 0 row
12.4.5 Negative - set the first parameter like getRows()
12.5 Testing function close()
12.5.1 does not call close()
12.5.2 invokes close() twice
12.5.3 uses getRows after calling close()
12.5.4 closes one resultSet and then open another resultSet
12.6 Testing metaData
12.6.1 the amount and value of metaData should be correct
12.6.2 can distinguish lower case and upper case
12.6.3 can contain quotes
12.6.4 can contain underscore
12.7 Testing maxRows
12.7.1 maxRows option is ignored when resultSet option is true
12.7.2 maxRows option is ignored with REF Cursor
13. stream1.js
13.1 Testing QueryStream
13.1.1 stream results for oracle connection
13.1.2 stream results for oracle connection (outFormat: oracledb.OUT_FORMAT_OBJECT)
13.1.3 errors in query
13.1.4 no result
13.1.5 single row
13.1.6 multiple row
13.1.7 invalid SQL
13.1.8 Read CLOBs
13.1.9 Read CLOBs after stream close
13.1.10 meta data
13.1.11 should emit events in the correct order
13.1.12 query with logical error should throw error
13.2 Testing QueryStream.destroy
13.2.1 should be able to stop the stream early with destroy
13.2.2 should be able to stop the stream before any data
13.2.3 should invoke an optional callback passed to destroy
13.2.4 should work if querystream is destroyed before resultset is opened
13.2.5 should work if querystream is destroyed after end event
13.2.6 should emit the error passed in
13.3 Testing QueryStream's fetchArraySize option
13.3.1 should use oracledb.fetchArraySize for fetching
13.3.2 should use execute option fetchArraySize for fetching
13.4 Testing QueryStream other race conditions
13.4.1 queryStream from toQueryStream should get open event
13.4.2 queryStream from toQueryStream should get metadata event
14. stream2.js
14.1 Bind by position and return an array
14.2 Bind by name and return an array
14.3 Bind by position and return an object
14.4 Bind by name and return an object
14.5 explicitly setting resultSet option to be false takes no effect
14.6 maxRows option is ignored as expect
14.7 Negative - queryStream() has no parameters
14.10 metadata event - single column
14.11 metadata event - multiple columns
14.12 metadata event - all column names occurring
14.13 metadata event - no return rows
14.15 metadata event - case sensitive columns
14.16 metadata event - large number of columns
14.17 metadata event - single character column
14.18 metadata event - duplicate column alias
15. resultsetToStream.js
15.1 Testing ResultSet.toQueryStream
15.1.1 should allow resultsets to be converted to streams
15.2 Testing ResultSet/QueryStream conversion errors
15.2.1 should prevent conversion to stream after getRow is invoked
15.2.2 should prevent conversion to stream after getRows is invoked
15.2.3 should prevent conversion to stream after close is invoked
15.2.4 should prevent invoking getRow after conversion to stream
15.2.5 should prevent invoking getRows after conversion to stream
15.2.6 should prevent invoking close after conversion to stream
15.2.7 should prevent calling toQueryStream more than once
18. constants.js
18.1 Query outFormat Constants
18.2 Node-oracledb Type Constants
18.3 Oracle Database Type Constants
18.4 Execute Bind Direction Constants
18.5 Privileged Connection Constants
18.6 SQL Statement Type Constants
18.7 Subscription Constants
18.8 Advanced Queuing Constants
18.9 Continuous Query Notification Constants
18.10 Pool Status Constants
18.11 Simple Oracle Document Access (SODA) Constants
19. fetchTimestampAsString.js
19.1 TIMESTAMP
19.1.1 fetchInfo option
19.1.2 fetchInfo option, outFormat is OBJECT
19.1.3 fetchInfo option, enables resultSet
19.1.4 fetchInfo option, resultSet and OBJECT outFormat
19.1.5 fetchAsString property
19.1.6 fetchAsString property and OBJECT outFormat
19.1.7 fetchAsString property, resultSet
19.1.8 fetchAsString property, resultSet and OBJECT outFormat
19.2 TIMESTAMP WITH TIME ZONE
19.2.1 fetchInfo option
19.2.2 fetchInfo option, outFormat is OBJECT
19.2.3 fetchInfo option, enables resultSet
19.2.4 fetchInfo option, resultSet and OBJECT outFormat
19.2.5 fetchAsString property
19.2.6 fetchAsString property and OBJECT outFormat
19.2.7 fetchAsString property, resultSet
19.2.8 fetchAsString property, resultSet and OBJECT outFormat
19.3 testing maxRows settings and queryStream() to fetch as string
19.3.1 works well when setting oracledb.maxRows > actual number of rows
19.3.2 maxRows = actual num of rows
19.3.3 works when oracledb.maxRows < actual number of rows
19.3.4 uses queryStream() and maxRows > actual number of rows
19.3.5 uses queryStream() and maxRows = actual number of rows
19.3.6 maxRows < actual rows. maxRows does not restrict queryStream()
21. dataTypeAssist.js
22. dataTypeChar.js
22.1 testing CHAR data in various lengths
22.1.1 works well with SELECT query
22.1.2 works well with result set
22.1.3 works well with REF Cursor
22.1.4 columns fetched from REF CURSORS can be mapped by fetchInfo settings
22.2 stores null value correctly
22.2.1 testing Null, Empty string and Undefined
22.3 PL/SQL binding scalar
22.3.1 PL/SQL binding scalar values IN
22.3.2 bind scalar values INOUT
22.3.3 bind scalar values OUT
22.4 PL/SQL binding indexed tables
22.4.1 bind indexed table IN
23. dataTypeNchar.js
23.1 testing NCHAR data in various lengths
23.1.1 SELECT query
23.1.2 resultSet stores NCHAR data correctly
23.1.3 works well with REF Cursor
23.1.4 columns fetched from REF CURSORS can be mapped by fetchInfo settings
23.2 stores null value correctly
23.2.1 testing Null, Empty string and Undefined
24. dataTypeVarchar2.js
24.1 testing VARCHAR2 data in various lengths
24.1.1 SELECT query
24.1.2 resultSet stores VARCHAR2 data correctly
24.1.3 works well with REF Cursor
24.1.4 columns fetched from REF CURSORS can be mapped by fetchInfo settings
24.2 stores null value correctly
24.2.1 testing Null, Empty string and Undefined
25. dataTypeNvarchar2.js
25.1 testing NVARCHAR2 data in various lengths
25.1.1 SELECT query
25.1.2 resultSet stores NVARCHAR2 data correctly
25.1.3 works well with REF Cursor
25.1.4 columns fetched from REF CURSORS can be mapped by fetchInfo settings
25.2 stores null value correctly
25.2.1 testing Null, Empty string and Undefined
26. dataTypeNumber.js
26.1 testing NUMBER data
26.1.1 SELECT query
26.1.2 resultSet stores NUMBER data correctly
26.1.3 works well with REF Cursor
26.1.4 columns fetched from REF CURSORS can be mapped by fetchInfo settings
26.1.5 columns fetched from REF CURSORS can be mapped by oracledb.fetchAsString
26.2 stores null value correctly
26.2.1 testing Null, Empty string and Undefined
26.3 large integers that cannot fit inside a 32-bit integer
26.3.1 original case
26.4 Large number, edge cases
26.4.1 maximum safe integer, (2^53 - 1)
26.4.2 Negative - maximum safe integer + 1
26.4.3 minimum safe integer
26.4.4 Negative - minimum safe integer - 1
26.4.5 fetch as string number that cannot be represented as JS Number
27. dataTypeNumber2.js
27.1 testing NUMBER(p, s) data
27.1.1 SELECT query
27.1.2 resultSet stores NUMBER(p, s) data correctly
27.2 stores null value correctly
27.2.1 testing Null, Empty string and Undefined
28. dataTypeFloat.js
28.1 testing FLOAT data type
28.1.1 works well with SELECT query
28.1.2 works well with result set
28.1.3 works well with REF Cursor
28.1.4 columns fetched from REF CURSORS can be mapped by fetchInfo settings
28.1.5 columns fetched from REF CURSORS can be mapped by oracledb.fetchAsString
28.2 stores null value correctly
28.2.1 testing Null, Empty string and Undefined
29. dataTypeFloat2.js
29.1 testing FLOAT(p) data type
29.1.1 works well with SELECT query
29.1.2 works well with result set
29.1.3 works well with REF Cursor
29.1.4 columns fetched from REF CURSORS can be mapped by fetchInfo settings
29.1.5 columns fetched from REF CURSORS can be mapped by oracledb.fetchAsString
29.2 stores null value correctly
29.2.1 testing Null, Empty string and Undefined
30. dataTypeBinaryFloat.js
30.1 testing BINARY_FLOAT data
30.1.1 works well with SELECT query
30.1.2 works well with result set
30.1.3 works well with REF Cursor
30.1.4 columns fetched from REF CURSORS can be mapped by fetchInfo settings
30.1.5 columns fetched from REF CURSORS can be mapped by oracledb.fetchAsString
30.2 stores null value correctly
30.2.1 testing Null, Empty string and Undefined
30.3 testing floating-point numbers which cannot be precisely represent
30.3.1 rounding numbers
31. dataTypeBinaryDouble.js
31.1 testing BINARY_DOUBLE data
31.1.1 works well with SELECT query
31.1.2 works well with result set
31.1.3 works well with REF Cursor
31.1.4 columns fetched from REF CURSORS can be mapped by fetchInfo settings
31.1.5 columns fetched from REF CURSORS can be mapped by oracledb.fetchAsString
31.2 stores null value correctly
31.2.1 testing Null, Empty string and Undefined
31.3 testing floating-point numbers which can be precisely represent
31.3.1 testing floating-point numbers
32. dataTypeDate.js
32.1 Testing JavaScript Date data
32.1.1 works well with SELECT query
32.1.2 works well with result set
32.1.3 works well with REF Cursor
32.1.4 columns fetched from REF CURSORS can be mapped by fetchInfo settings
32.1.5 columns fetched from REF CURSORS can be mapped by oracledb.fetchAsString
32.1.6 works well with SELECT query after session TimeZone change
32.2 stores null value correctly
32.2.1 testing Null, Empty string and Undefined
32.3 insert SQL Date data
32.3.1 SELECT query - original data
32.3.2 SELECT query - formatted data for comparison
32.4 Select invalid dates
32.4.1 Negative - Invalid Year 0
32.4.2 No ORA-01841 error in Oracle 12.1 server
32.4.3 Negative - Invalid Year -4713
32.4.4 Negative - Invalid Year 10000
33. dataTypeTimestamp1.js
33.1 Testing JavaScript Date with database TIMESTAMP
33.1.1 works well with SELECT query
33.1.2 works well with result set
33.1.3 works well with REF Cursor
33.1.4 columns fetched from REF CURSORS can be mapped by fetchInfo settings
33.1.5 columns fetched from REF CURSORS can be mapped by oracledb.fetchAsString
33.2 stores null value correctly
33.2.1 testing Null, Empty string and Undefined
33.3 testing TIMESTAMP without TIME ZONE
32.3.1 SELECT query - original data
33.3.2 SELECT query - formatted data for comparison
33.3.3 returns scalar types from PL/SQL block
33.4 timestamp with time zone
33.4.1 test with different session time zone
34. dataTypeTimestamp2.js
34.1 Testing JavaScript Date with database TIMESTAMP(p)
34.1.1 works well with SELECT query
34.1.2 works well with result set
34.1.3 works well with REF Cursor
34.1.4 columns fetched from REF CURSORS can be mapped by fetchInfo settings
34.1.5 columns fetched from REF CURSORS can be mapped by oracledb.fetchAsString
34.2 stores null value correctly
34.2.1 testing Null, Empty string and Undefined
34.3 testing database TIMESTAMP(p)
34.3.1 SELECT query - original data
34.3.2 SELECT query - formatted data for comparison
35. dataTypeTimestamp3.js
35.1 Testing JavaScript Date with database TIMESTAMP WITH TIME ZONE
35.1.1 works well with SELECT query
35.1.2 works well with result set
35.1.3 works well with REF Cursor
35.1.4 columns fetched from REF CURSORS can be mapped by fetchInfo settings
35.1.5 columns fetched from REF CURSORS can be mapped by oracledb.fetchAsString
35.2 stores null value correctly
35.2.1 testing Null, Empty string and Undefined
35.3 testing TIMESTAMP WITH TIME ZONE
32.3.1 SELECT query - original data
35.3.2 SELECT query - formatted data for comparison
35.3.3 returns scalar types from PL/SQL block
36. dataTypeTimestamp4.js
36.1 Testing JavaScript Date with database TIMESTAMP (4) WITH TIME ZONE
36.1.1 works well with SELECT query
36.1.2 works well with result set
36.1.3 works well with REF Cursor
36.1.4 columns fetched from REF CURSORS can be mapped by fetchInfo settings
36.1.5 columns fetched from REF CURSORS can be mapped by oracledb.fetchAsString
36.2 stores null value correctly
36.2.1 testing Null, Empty string and Undefined
36.3 testing TIMESTAMP (4) WITH TIME ZONE
32.3.1 SELECT query - original data
36.3.2 SELECT query - formatted data for comparison
36.3.3 returns scalar types from PL/SQL block
37. dataTypeTimestamp5.js
37.1 Testing JavaScript Date with database TIMESTAMP WITH LOCAL TIME ZONE
37.1.1 works well with SELECT query
37.1.2 works well with result set
37.1.3 works well with REF Cursor
37.1.4 columns fetched from REF CURSORS can be mapped by fetchInfo settings
37.1.5 columns fetched from REF CURSORS can be mapped by oracledb.fetchAsString
37.2 stores null value correctly
37.2.1 testing Null, Empty string and Undefined
37.3 testing TIMESTAMP WITH LOCAL TIME ZONE
37.3.1 SELECT query - original data
37.3.2 SELECT query - formatted data for comparison
38. dataTypeTimestamp6.js
38.1 Testing JavaScript Date with database TIMESTAMP(9) WITH LOCAL TIME ZON
38.1.1 works well with SELECT query
38.1.2 works well with result set
38.1.3 works well with REF Cursor
38.1.4 columns fetched from REF CURSORS can be mapped by fetchInfo settings
38.1.5 columns fetched from REF CURSORS can be mapped by oracledb.fetchAsString
38.2 stores null value correctly
38.2.1 testing Null, Empty string and Undefined
38.3 testing TIMESTAMP WITH LOCAL TIME ZONE
38.3.1 SELECT query - original data
38.3.2 SELECT query - formatted data for comparison
39. dataTypeRowid.js
39.1 testing ROWID data type
39.1.1 query rowid
39.1.2 works well with result set
39.1.3 ROWID couldn't update
39.1.4 can get data object number correctly
39.1.5 can get datafile number correctly
39.1.6 can get data block number correctly
39.1.7 can get row number correctly
39.1.8 works well with REF Cursor
39.1.9 columns fetched from REF CURSORS can be mapped by fetchInfo settings
39.2 stores null value correctly
39.2.1 testing Null, Empty string and Undefined
40. dataTypeClob.js
40.1 testing CLOB data type
40.1.1 stores CLOB value correctly
40.1.2 CLOB getData()
40.1.3 CLOB getData(offset, len)
40.2 stores null value correctly
40.2.1 testing Null, Empty string and Undefined
41. dataTypeBlob.js
41.1 testing BLOB data type
41.1.1 stores BLOB value correctly
41.1.2 BLOB getData()
41.1.3 BLOB getData(offset, len)
41.2 stores null value correctly
41.2.1 testing Null, Empty string and Undefined
41.3 OSON column metadata
41.3.1 Verify isOson flag in column metadata
41.3.2 Verify Basic encode/decode OSON on OSON format column
42. dataTypeRaw.js
42.1 testing RAW data in various lengths
42.1.1 SELECT query
42.1.2 resultSet stores RAW data correctly
42.1.3 works well with REF Cursor
42.1.4 result set getRow() function works well with RAW
42.1.5 a negative case which hits NJS-011 error
42.2 stores null value correctly
42.2.1 testing Null, Empty string and Undefined
42.3 DML Returning - Currently not support RAW
42.3.1 INSERT statement with Object binding
42.3.2 INSERT statement with ARRAY binding
42.3.3 INSERT statement with exact maxSize restriction
42.3.4 UPDATE statement
42.3.5 DELETE statement with single row matching
42.3.6 DELETE statement with multiple rows matching
42.4 in PL/SQL, the maximum size is 32767
42.4.1 works well when the length of data is less than maxSize
42.4.2 works well when the length of data is exactly 32767
42.4.3 throws error when the length of data is greater than maxSize
42.4.4 throws error when both data and maxSize are greater than 32767
42.5 INSERT and SELECT
42.5.1 works with data size 100
42.5.2 works with data size 2000
42.5.3 works with default type/dir
42.6 UPDATE
42.6.1 works with data size 100
42.6.2 works with data size 2000
42.6.3 works with default type/dir
42.7 DB_TYPE_RAW in Advanced Queue (AQ)
42.7.1 enqOne/deqOne with DB_TYPE_RAW specified.
42.7.2 enqMany/deqMany with DB_TYPE_RAW specified.
43. plsqlBindIndexedTable1.js
43.1 binding PL/SQL indexed table
43.1.1 binding PL/SQL indexed table IN by name
43.1.2 binding PL/SQL indexed table IN by position
43.1.3 binding PL/SQL indexed table IN OUT
43.1.4 binding PL/SQL indexed table OUT
43.2 test exceptions when using PL/SQL indexed table bindings
43.2.1 maxArraySize is ignored when specifying BIND_IN
43.2.2 maxArraySize is mandatory for BIND_INOUT
43.2.3 maxArraySize cannot smaller than the number of array elements
43.2.5 negative case: incorrect type of array element - bind by name 1
43.2.6 negative case: incorrect type of array element - bind by name 2
43.2.7 negative case: incorrect type of array element - bind by name 3
43.2.8 negative case: incorrect type of array element - bind by name 4
43.2.9 supports binding by position
43.2.10 negative case: incorrect type of array elements - bind by pos 1
43.2.11 negative case: incorrect type of array elements - bind by pos 2
43.2.12 negative case: incorrect type of array elements - bind by pos 3
43.2.13 negative case: incorrect type of array elements - bind by pos 4
43.3 binding PL/SQL scalar
43.3.1 binding PL/SQL scalar IN
43.3.2 binding PL/SQL scalar IN/OUT
43.3.3 binding PL/SQL scalar OUT by name
43.3.4 binding PL/SQL scalar OUT by position
43.4 test attribute - maxArraySize
43.4.1 maxArraySize property is ignored for BIND_IN
43.4.2 maxArraySize is mandatory for BIND_INOUT
43.4.3 maxArraySize cannot smaller than the number of array elements
43.4.4 maxArraySize can be equal to the number of array elements
43.4.5 negative case: large value
43.4.6 negative case: < 0
43.4.7 negative case: = 0
43.4.8 negative case: assign a string to it
43.4.9 negative case: NaN
44. plsqlBindIndexedTable2.js.js
44.1 example case
44.2 example case binding by position
44.3 default binding type and direction with binding by name
44.4 default binding type and direction with binding by position
44.5 null elements in String and Number arrays
44.6 empty array for BIND_IN and BIND_INOUT
44.7 empty array for BIND_OUT
44.8 maxSize option applies to each elements of an array
45. instanceof1.js
45.1 instanceof works for pool instances
45.2 instanceof works for connection instances
45.3 instanceof works for resultset instances
45.4 instanceof works for lob instances
51. poolClose.js
51.1 can not get connections from the terminated pool
51.2 can not terminate the same pool multiple times
51.3 can not close the same pool multiple times
51.4 pool is still available after the failing close
51.5 can not close the same connection multiple times
51.6 can not get connection in promise version from the terminated pool
51.7 can not set the attributes after pool created
51.8 can access the attributes of closed pool without error
52. connClose.js
52.1 can not set property, stmtCacheSize, after connection closes
52.2 can not set property, clientId, after connection closes
52.3 can not set property, module
52.4 can not set property, action
52.5 can not call method, execute()
52.6 can not call method, break()
52.7 can not call method, commit()
52.8 can not call method, createLob()
52.9 can not call method, queryStream()
52.10 can not call release() multiple times
52.11 can not call method, rollback
52.12 can access properties of closed connection without error
53. resultSetClose.js
53.1 can not get metaData property
53.2 can not call close() again
53.3 can not call getRow()
53.4 can not call getRows()
53.5 can not call toQueryStream()
53.6 can call getRow() again in the callback of getRow()
54. lobClose.js
54.1 can access properties of closed LOB without error
54.2 can not call close() multiple times
54.3 verify closed LOB
54.4 automatically close result sets and LOBs when the connection is closed
55. resultSet2.js
55.1 query a RDBMS function
55.1.1 LPAD function
55.2 binding variables
55.2.1 query with one binding variable
55.3 alternating getRow() & getRows() function
55.3.1 result set
55.3.2 REF Cursor
55.4 automatically close resultSets and LOBs when the connection is closed
55.4.1 resultSet gets closed automatically
55.4.2 REF Cursor gets closed automatically
55.5 the content of resultSet should be consistent
55.5.1 (1) get RS (2) modify data in that table and commit (3) check RS
55.6 access resultSet simultaneously
55.6.1 concurrent operations on resultSet are not allowed (using getRows())
55.6.2 concurrent operation on REF Cursor are not allowed
55.6.3 concurrent operations on resultSet are not allowed (using getRow())
55.6.4 concurrently closing resultSet not allowed
55.7 getting multiple resultSets
55.7.1 can access multiple resultSet on one connection
55.7.2 can access multiple REF Cursor
55.8 test querying a PL/SQL function
55.8.1
55.9 calls getRows() once and then close RS before getting more rows
55.9.1
55.10 use Resultset asyncIterator
55.10.1
55.11 NEgative - resultSet with unsupported data types
55.11.1 INTERVAL YEAR TO MONTH data type
55.12 bind a cursor BIND_INOUT
55.12.1 has not supported binding a cursor with BIND_INOUT
55.13 Negative - Invalid Ref Cursor
55.13.1
56. fetchAs.js
56.1 property value check
56.2 Fetch DATE column values as STRING - by-Column name
56.3 Fetch DATE, NUMBER column values STRING - by Column-name
56.4 Fetch DATE, NUMBER as STRING by-time configuration and by-name
56.5 Fetch DATE, NUMBER column as STRING by-type and override at execute time
56.6 Fetch ROWID column values STRING - non-ResultSet
56.7 Fetch ROWID column values STRING - ResultSet
56.8 large numbers with fetchInfo
56.9 large numbers with setting fetchAsString property
56.10 invalid syntax for type should result in error
56.11 assigns an empty array to fetchAsString
56.12 Negative - empty string
56.13 Negative - null
56.14 Negative - undefined
56.15 Negative - NaN
56.16 Negative - invalid type of value, number
56.17 Negative - invalid type of value, string
56.18 Negative - passing oracledb.DATE type to fetchInfo
56.19 Negative - passing empty JSON to fetchInfo
56.20 Negative - passing oracledb.NUMBER type to fetchInfo
56.21 Negative - passing Date for fetchAsString
56.22 Negative - passing Buffer for fetchAsstring
58. properties.js
58.1 Oracledb Class
58.1.1 poolMin
58.1.2 poolMax
58.1.3 poolIncrement
58.1.4 poolTimeout
58.1.5 maxRows
58.1.6 fetchArraySize
58.1.7 autoCommit
58.1.8 version (read-only)
58.1.9 connectionClass
58.1.10 externalAuth
58.1.11 fetchAsString
58.1.12 outFormat
58.1.13 lobPrefetchSize
58.1.14 oracleClientVersion (read-only)
58.1.15 queueTimeout
58.1.16 queueMax
58.1.17 stmtCacheSize
58.1.18 poolPingInterval
58.1.19 fetchAsBuffer
58.1.20 Negative - connectionClass
58.1.21 Negative - autoCommit
58.1.22 Negative - outFormat
58.1.23 Negative - externalAuth
58.1.24 versionString (read-only)
58.1.25 versionSuffix (read-only)
58.1.26 oracleClientVersionString (read-only)
58.1.27 edition
58.1.28 Negative - edition
58.1.29 events
58.1.30 Negative - events
58.1.31 dbObjectAsPojo
58.1.32 Negative - fetchArraySize
58.1.33 Negative - dbObjectAsPojo
58.1.34 Negative - fetchAsString
58.1.35 Negative - lobPrefetchSize
58.1.36 Negative - maxRows
58.1.37 Negative - poolIncrement
58.1.38 Negative - poolMin
58.1.39 Negative - poolMax
58.1.40 Negative - poolTimeout
58.1.41 Negative - stmtCacheSize
58.1.42 poolPingTimeout
58.1.43 Negative - poolPingTimeout
58.2 Pool Class
58.2.1 poolMin
58.2.2 poolMax
58.2.3 poolIncrement
58.2.4 poolTimeout
58.2.5 stmtCacheSize
58.2.6 connectionsInUse
58.2.7 connectionsOpen
58.2.8 queueTimeout
58.2.9 poolPingInterval
58.2.10 poolMax
58.2.11 poolPingTimeout
58.3 Connection Class
58.3.1 Connection object initial toString values
58.3.2 stmtCacheSize (read-only)
58.3.3 clientId (write-only)
58.3.4 action (write-only)
58.3.5 module (write-only)
58.3.6 oracleServerVersion (read-only)
58.3.7 oracleServerVersionString (read-only)
58.3.8 currentSchema
58.4 ResultSet Class
58.4.1 metaData (read-only)
59. lobResultSet.js
59.1 CLOB data
59.1.1 reads clob data one by one row from result set
59.1.2 works with oracledb.maxRows > actual number of rows fetched
59.1.3 works with oracledb.maxRows = actual number of rows fetched
59.1.4 works with oracledb.maxRows < actual number of rows fetched
59.2 BLOB data
59.2.1 reads blob data one by one row from result set
59.2.2 works with oracledb.maxRows > actual number of rows fetched
59.2.3 works with oracledb.maxRows = actual number of rows fetched
59.2.4 works with oracledb.maxRows < actual number of rows fetched
60. clobPlsqlString.js
60.1 BIND OUT as STRING
60.1.1 PL/SQL OUT CLOB parameters can also be bound as STRING
60.1.2 The returned length is limited to the maximum size
60.2 BIND OUT as CLOB
60.2.1 maxSize option does not take effect when bind out type is clob
61. checkClassesTypes.js