770 lines
31 KiB
Plaintext
770 lines
31 KiB
Plaintext
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 limits the number of rows fetched
|
|
1.2.1 by default, the number is 100
|
|
1.2.2 can also specify for each execution
|
|
1.2.3 can not set maxRows to be 0
|
|
1.2.4 cannot set maxRows to be a negative number
|
|
1.2.5 sets maxRows to be very large value
|
|
1.3 can call PL/SQL procedures
|
|
1.3.1 bind parameters in various ways
|
|
1.4 statementCacheSize controls statement caching
|
|
1.4.1 stmtCacheSize = 0, which disable statement caching
|
|
1.4.2 works well when statement cache enabled (stmtCacheSize > 0)
|
|
1.5 Testing commit() & rollback() functions
|
|
1.5.1 commit() function works well
|
|
1.5.2 rollback() function works well
|
|
1.6 Testing parameter assertions
|
|
1.6.1 too few params should throw an error
|
|
1.6.2 too many params should throw error
|
|
1.6.3 wrong type for param 1 should throw an error
|
|
1.6.4 wrong type for param 2 should throw an error
|
|
1.6.5 wrong type for param 3 should throw an error
|
|
1.6.6 wrong type for param 4 should throw an error
|
|
1.7 Close method
|
|
1.7.1 close can be used as an alternative to release
|
|
|
|
2. pool.js
|
|
2.1 default values
|
|
2.1.1 set properties to default values if not explicitly specified
|
|
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 equal to poolMax
|
|
2.2.4 poolMin cannot greater than poolMax
|
|
2.2.5 (poolMin + poolIncrement) cannot greater than poolMax
|
|
2.2.6 (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.4 poolIncrement
|
|
2.4.1 poolIncrement cannot be a negative value
|
|
2.4.2 poolIncrement cannot be 0
|
|
2.4.3 poolIncrement must be a Number
|
|
2.4.4 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 throws error if called after pool is terminated and a callback is not provided
|
|
2.7.2 passes error in callback if called after pool is terminated and a callback is provided
|
|
2.8 connection request queue (basic functionality)
|
|
2.8.1 generates ORA-24418 when calling getConnection if queueing is disabled
|
|
2.8.2 does not generate ORA-24418 when calling getConnection if queueing is enabled
|
|
2.8.3 generates NJS-040 if request is queued and queueTimeout expires
|
|
2.8.4 does not generate NJS-040 if request is queued for less time than queueTimeout
|
|
2.9 connection request queue (_enableStats & _logStats functionality)_logStats must be called prior to terminating pool.
|
|
2.9.1 works after the pool as been terminated
|
|
2.10 Close method
|
|
2.10.1 close can be used as an alternative to release
|
|
|
|
|
|
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 oracledb version attribute
|
|
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 executes a query from a JSON table
|
|
3.5 date.js
|
|
3.5.1 inserts and query DATE and TIMESTAMP columns
|
|
3.6 rowlimit.js
|
|
3.6.1 by default, the number is 100
|
|
3.6.2 can also specify for each execution
|
|
3.7 plsql.js
|
|
3.7.1 can call PL/SQL procedure and binding parameters in various ways
|
|
3.7.2 can call 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
|
|
|
|
5. externalAuthentication.js
|
|
5.1 connection should succeed when setting externalAuth to be false and providing user/password
|
|
5.2 error should be thrown when setting externalAuth to be true and providing user/password
|
|
5.3 can get connection from oracledb
|
|
5.4 can create pool
|
|
|
|
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 6.1.12 Negative test - data type is not supported with DML Returning statments
|
|
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
|
|
|
|
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
|
|
|
|
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.10 works with a large number of columns
|
|
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
|
|
|
|
11. poolTimeout.js
|
|
11.1 pool terminates idle connections after specify time
|
|
|
|
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 when resultSet option = 0, it behaves like false
|
|
12.1.4 when resultSet option = null, it behaves like false
|
|
12.1.5 when resultSet option = undefined, it behaves like false
|
|
12.1.6 when resultSet option = NaN, it behaves like false
|
|
12.1.7 when resultSet option = 1, it behaves like true
|
|
12.1.8 when resultSet option = -1, it behaves like true
|
|
12.1.9 when resultSet option is a random string, it behaves like true
|
|
12.2 Testing prefetchRows option
|
|
12.2.1 cannot set prefetchRows to be a negative value
|
|
12.2.2 cannot set prefetchRows to be a random string
|
|
12.2.3 cannot set prefetchRows to be NaN
|
|
12.2.4 cannot set prefetchRows to be null
|
|
12.2.5 prefetchRows can be set to 0
|
|
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 Negative - To omit the first parameter
|
|
12.3.10 Negative - set the 1st parameter of getRows() to be 0
|
|
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.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 stream stress test
|
|
13.2 Testing QueryStream._close
|
|
13.2.1 should be able to stop the stream early with _close
|
|
13.2.2 should be able to stop the stream before any data
|
|
13.2.3 should invoke an optional callback passed to _close
|
|
13.3 Testing QueryStream\'s maxRows control
|
|
13.3.1 should use oracledb.maxRows for fetching
|
|
13.3.2 should default to 100 if oracledb.maxRows is false
|
|
|
|
14. stream2.js
|
|
14.1 meta data event
|
|
14.2 Bind by position and return an array
|
|
14.3 Bind by name and return an array
|
|
14.4 Bind by position and return an object
|
|
14.5 Bind by name and return an object
|
|
14.6 explicitly setting resultSet option to be false takes no effect
|
|
14.7 maxRows option is ignored as expect
|
|
14.8 Negative - queryStream() has no parameters
|
|
14.9 Negative - give invalid SQL as first parameter
|
|
14.10 Negatvie - give non-query SQL
|
|
|
|
15. resultsetToQueryStream.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
|
|
|
|
16. promises.js
|
|
16.1 returns a promise from oracledb.getConnection
|
|
16.2 returns a promise from oracledb.createPool
|
|
16.3 returns a promise from pool.terminate
|
|
16.4 returns a promise from pool.getConnection
|
|
16.5 returns a promise from connection.release
|
|
16.6 returns a promise from connection.execute
|
|
16.7 returns a promise from connection.commit
|
|
16.8 returns a promise form connection.rollback
|
|
16.9 returns a promise from resultSet.close
|
|
16.10 returns a promise from resultSet.getRow
|
|
16.11 returns a promise from resultSet.getRows
|
|
|
|
17. extendedMetaData.js
|
|
17.1 extendedMetaData as an execute() option
|
|
17.1.1 default value is 'false' when not setting
|
|
17.1.2 sets to be 'false' explicitly
|
|
17.1.3 sets to be 'true' to enable extended metadata display
|
|
17.1.4 works as 'false' when setting to 0
|
|
17.1.5 works as 'false' when setting to 'null'
|
|
17.1.6 works as 'false' when setting to 'undefined'
|
|
17.1.7 works as 'false' when setting to 'NaN'
|
|
17.1.8 works as 'true' when setting to a positive number
|
|
17.1.9 works as 'true' when setting to a negative number
|
|
17.1.10 works as 'true' when setting to a string
|
|
17.1.11 the option is case-sensitive
|
|
17.1.12 only works with SELECT query
|
|
17.2 global option - oracledb.extendedMetaData
|
|
17.2.1 default value is 'false'
|
|
17.2.2 sets to be 'true'
|
|
17.2.3 works as 'false' when setting to 0
|
|
17.2.4 works as 'false' when setting to 'null'
|
|
17.2.5 works as 'false' when setting to 'undefined'
|
|
17.2.6 works as 'false' when setting to 'NaN'
|
|
17.2.7 works as 'true' when setting to a positive number
|
|
17.2.8 works as 'true' when setting to a negative number
|
|
17.2.9 works as 'true' when setting to a string
|
|
17.2.10 can be overrided by execute() option
|
|
17.3 data types
|
|
17.3.1 VARCHAR2
|
|
17.3.2 NVARCHAR2
|
|
17.3.3 CHAR
|
|
17.3.4 NCHAR
|
|
17.3.5 NUMBER
|
|
17.3.6 NUMBER(9)
|
|
17.3.7 NUMBER(15, 5)
|
|
17.3.8 NUMBER(*, 1)
|
|
17.3.9 NUMBER(7, -2)
|
|
17.3.10 NUMERIC(23, 15)
|
|
17.3.11 DECIMAL
|
|
17.3.12 DECIMAL(8, 18)
|
|
17.3.13 INTEGER
|
|
17.3.14 INT
|
|
17.3.15 SMALLINT
|
|
17.3.16 FLOAT
|
|
17.3.17 FLOAT(90)
|
|
17.3.18 DOUBLE PRECISION
|
|
17.3.19 REAL
|
|
17.3.20 LONG
|
|
17.3.21 BINARY_FLOAT
|
|
17.3.22 BINARY_DOUBLE
|
|
17.3.23 DATE
|
|
17.3.24 TIMESTAMP
|
|
17.3.25 TIMESTAMP(5)
|
|
17.3.26 TIMESTAMP WITH TIME ZONE
|
|
17.3.27 TIMESTAMP (9) WITH TIME ZONE
|
|
17.3.28 TIMESTAMP WITH LOCAL TIME ZONE
|
|
17.3.29 TIMESTAMP (9) WITH LOCAL TIME ZONE
|
|
17.3.30 INTERVAL YEAR TO MONTH
|
|
17.3.31 INTERVAL DAY TO SECOND
|
|
17.3.32 ROWID
|
|
17.3.33 UROWID
|
|
17.3.34 CLOB
|
|
17.3.35 BLOB
|
|
17.3.36 NCLOB
|
|
17.3.37 BFILE
|
|
17.3.38 RAW(2000)
|
|
17.4 result set
|
|
17.4.1 default settings
|
|
17.4.2 extendedMetaData option of execute()
|
|
17.4.3 global option
|
|
17.4.4 REF Cursor
|
|
17.5 metadata event
|
|
17.5.1 queryStream()
|
|
17.6 fetch as string
|
|
17.6.1 fetchInfo - changes 'fetchType' to oracledb.STRING
|
|
17.6.2 oracledb.fetchAsString
|
|
17.6.3 can override at execution
|
|
17.7 sql WITH
|
|
17.7.1 works for SQL WITH statement
|
|
17.8 case sensitive columns
|
|
17.8.1 works with tables whose column names are case-sensitive
|
|
17.9 single character column
|
|
17.9.1 works with column names comprised of single character
|
|
17.10 duplicate column alias
|
|
17.10.1 works when using duplicate column alias
|
|
17.11 basic stress test
|
|
17.11.1 large number of columns
|
|
|
|
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.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.2 stores null value correctly
|
|
23.2.1 testing Null, Empty string and Undefined
|
|
|
|
24. dataTypeVarchar2.js
|
|
24.1 supports VARCHAR2 data in various lengths
|
|
24.2 resultSet stores VARCHAR2 data correctly
|
|
24.3 stores null value correctly
|
|
|
|
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.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.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.2 stores null value correctly
|
|
26.2.1 testing Null, Empty string and Undefined
|
|
|
|
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.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.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.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.2 stores null value correctly
|
|
31.2.1 testing Null, Empty string and Undefined
|
|
31.3 testing floating-point numbers which cannot be precisely represent
|
|
31.3.1 rounding 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.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
|
|
33.3.3 returns scalar types from PL/SQL block
|
|
|
|
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.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
|
|
|
|
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.2 sotres 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
|
|
supports TIMESTAMP WITH TIME ZONE data type
|
|
|
|
36. dataTypeTimestamp4.js
|
|
supports TIMESTAMP WITH TIME ZONE data type
|
|
|
|
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.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.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 is still unsupported data type
|
|
|
|
40. dataTypeClob.js
|
|
40.1 testing CLOB data type
|
|
40.1.1 stores CLOB value correctly
|
|
40.2 stores null value correctly
|
|
40.2.1 testing Null, Empty string and Undefined
|
|
|
|
41. dataTypeBlob
|
|
41.1 testing BLOB data type
|
|
41.1.1 stores BLOB value correctly
|
|
41.2 stores null value correctly
|
|
41.2.1 testing Null, Empty string and Undefined
|
|
|
|
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
|
|
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.6 DELETE statement with single row matching
|
|
42.3.7 DELETE statement with multiple rows matching
|
|
42.4 in PL/SQL, the maximum size is 32767
|
|
- 42.4.1 when data length is 200
|
|
|
|
43. plsqlBinding1.js
|
|
43.1 binding PL/SQL indexed table
|
|
43.1.1 binding PL/SQL indexed table IN
|
|
43.1.2 binding PL/SQL indexed table IN OUT
|
|
43.1.3 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
|
|
42.2.3 maxArraySize cannot smaller than the number of array elements
|
|
42.2.4 DATE type has not been supported yet
|
|
42.2.5 negative case (string): incorrect type of array element
|
|
42.2.6 negative case (number): incorrect type of array element
|
|
42.2.7 supports binding by position
|
|
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: assigning a string to it
|
|
43.4.9 negative case: NaN
|
|
|
|
44. plsqlBinding2.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. instanceof.js
|
|
45.1 instanceof works for the oracledb instance
|
|
45.2 instanceof works for pool instances
|
|
45.3 instanceof works for connection instances
|
|
45.4 instanceof works for resultset instances
|
|
45.5 instanceof works for lob instances
|
|
|
|
51. accessTerminatedPoolAttributes.js
|
|
can not access attributes of terminated pool
|
|
|
|
52. getConnAfterPoolTerminate.js
|
|
can not get connections from pool after pool is terminated
|
|
|
|
53. poolValidityAfterFailingTernimate.js
|
|
pool should be available after failing terminate
|
|
|
|
54. releaseAfterFailingTerminate.js
|
|
can still release connections after failing pool termination
|
|
|
|
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 release connection before close resultSet
|
|
55.4.1 result set
|
|
55.4.2 REF Cursor
|
|
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
|
|
55.6.2 concurrent operation on REF Cursor are 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 Negative - resultSet is only for query statement
|
|
55.8.1 resultSet cannot be returned for non-query statements
|
|
55.9 test querying a PL/SQL function
|
|
55.9.1
|
|
55.10 calls getRows() once and then close RS before getting more rows
|
|
55.10.1
|
|
55.11 result set with unsupported data types
|
|
55.11.1 ROWID data type
|
|
55.12 bind a cursor BIND_INOUT
|
|
- 55.12.1 does not work currently due to known bug
|
|
|
|
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
|
|
|
|
57. nestedCursor.js
|
|
57.1 testing nested cursor support - result set
|
|
57.2 testing nested cursor support - REF Cursor
|
|
|
|
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 prefetchRows
|
|
58.1.7 autoCommit
|
|
58.1.8 version (read-only)
|
|
58.1.9 connClass
|
|
58.1.10 externalAuth
|
|
58.1.11 fetchAsString
|
|
58.1.12 outFormat
|
|
58.1.13 lobPrefetchSize
|
|
58.1.14 oracleClientVersion (read-only)
|
|
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.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.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
|
|
|
|
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
|
|
61.1 Oracledb class
|
|
61.2 Connection class
|
|
61.3 Lob Class
|
|
61.4 Pool Class
|
|
61.5 ResultSet Class
|
|
|
|
62. lobProperties.js
|
|
62.1 chunkSize (read-only)
|
|
62.2 length (read-only)
|
|
62.3 pieceSize -default value is chunkSize
|
|
62.4 pieceSize - can be increased
|
|
62.5 pieceSize - can be decreased
|
|
62.6 pieceSize - can be zero
|
|
62.7 pieceSize - cannot be less than zero
|
|
62.8 pieceSize - cannot be null
|
|
62.9 pieceSize - must be a number
|
|
62.10 type (read-only)
|
|
|
|
63. autoCommit4nestedExecutes.js
|
|
63.1 nested execute() functions
|
|
|
|
64. sqlWithWarnings.js
|
|
64.1 test case offered by GitHub user
|
|
64.1.1 Executes an aggregate query which causes warnings
|
|
64.2 PL/SQL - Success With Info
|
|
64.2.1 Execute SQL Statement to create PLSQL procedure with warnings
|
|
|
|
65. uninitializedLob.js
|
|
65.1 an uninitialized Lob is returned from a PL/SQL block
|
|
|
|
66. writableProperties.js
|
|
66.1 allows overwriting of public methods on pool instances
|
|
66.2 allows overwriting of public methods on connection instances
|
|
66.3 allows overwriting of public methods on resultset instances
|
|
66.4 allows overwriting of public methods on lob instances
|
|
|
|
67. utf8MultibyteCharacter.js
|
|
67.1 works with UTF-8 multibyte characters
|