@@ -3714,7 +3714,7 @@ end-of-fetch at the same time.
3714
3714
The value of ` prefetchRows` size is ignored when *not* using a
3715
3715
` ResultSet` .
3716
3716
3717
- Prefetching from REF CURSORS requires Oracle Database 11gR2 or
3717
+ Prefetching from REF CURSORS requires Oracle Database 11.2 or
3718
3718
greater.
3719
3719
3720
3720
Prefetching can be disabled by setting ` prefetchRows` to 0.
@@ -4540,7 +4540,8 @@ statement text is different and would be less efficient.
4540
4540
4541
4541
IN binds are values passed into the database. OUT binds are used to
4542
4542
retrieve data. IN OUT binds are passed in, and may return a different
4543
- value after the statement executes.
4543
+ value after the statement executes. IN OUT binds can be used for
4544
+ PL/SQL calls, but not for SQL.
4544
4545
4545
4546
OUT bind parameters for ` RETURNING INTO ` clauses will always return an
4546
4547
array of values. See [DML RETURNING Bind Parameters](#dmlreturn).
@@ -4813,7 +4814,7 @@ CURSOR is set to NULL or is not set in the PL/SQL procedure then the
4813
4814
returned ` ResultSet` is invalid and methods like ` getRows ()` will
4814
4815
return an error when invoked.
4815
4816
4816
- When using Oracle Database 11gR2 or greater, then
4817
+ When using Oracle Database 11.2 or greater, then
4817
4818
[` prefetchRows` ](#propdbprefetchrows) can be used to tune the
4818
4819
performance of fetching REF CURSORS.
4819
4820
@@ -4968,28 +4969,32 @@ size used for these binds in the OUT direction is 200, so set
4968
4969
See [Working with CLOB and BLOB Data](#lobhandling) for examples and
4969
4970
more information on binding and working with LOBs.
4970
4971
4971
- #### Maximum Limits (Bytes) for Binding LOBs to Strings and Buffers
4972
+ #### Theoretical Limits (Bytes) for Binding LOBs to Strings and Buffers
4972
4973
4973
- DB Type | Bind Type | Direction | Oracle Client 12c Limit<sup>*</sup> | Oracle Client 11g Limit<sup>*</sup>
4974
+ DB Type | Bind Type | Direction | Oracle Client 12c Limit<sup>*</sup> | Oracle Client 11.2 Limit<sup>*</sup>
4974
4975
--------|-----------------|-------------|-------------------------|------------------------
4975
- CLOB | oracledb.STRING |BIND_IN | 2 GB | 64 KB
4976
+ CLOB | oracledb.STRING |BIND_IN | 1 GB | 64 KB
4976
4977
CLOB | oracledb.STRING |BIND_OUT | 1 GB | 64 KB
4977
4978
CLOB | oracledb.STRING |BIND_INOUT | 32 KB | 32 KB
4978
- BLOB | oracledb.BUFFER |BIND_IN | 2 GB | 64 KB
4979
- BLOB | oracledb.BUFFER |BIND_OUT | 2 GB | 64 KB
4979
+ BLOB | oracledb.BUFFER |BIND_IN | 1 GB | 64 KB
4980
+ BLOB | oracledb.BUFFER |BIND_OUT | 1 GB | 64 KB
4980
4981
BLOB | oracledb.BUFFER |BIND_INOUT | 32 KB | 32 KB
4981
4982
4982
- <sup>*</sup>The largest usable data length is one byte less than the size shown.
4983
-
4984
- Internally, node-oracledb uses temporary LOBs when binding Strings and
4985
- Buffers larger than 32 KB. Since temporary LOBs cannot be used for IN
4986
- OUT binds, the data size in this case is restricted to 32 KB.
4983
+ <sup>*</sup>The largest usable data length is two bytes less than the
4984
+ size shown for 12c and one byte less for 11.2.
4987
4985
4988
4986
In practice, the limitation on binding IN or OUT is the memory
4989
- available to Node.js. You will see the error *JavaScript heap out of
4990
- memory* when you try to create large Strings or Buffers. So, for most
4991
- large data sizes, it is recommended to bind as ` oracledb .CLOB ` or
4992
- ` oracledb .BLOB ` and use [Lob streaming](#streamsandlobs).
4987
+ available to Node.js and the V8 engine. For data larger than several
4988
+ megabytes, it is recommended to bind as ` oracledb .CLOB ` or
4989
+ ` oracledb .BLOB ` and use [Lob streaming](#streamsandlobs). If you try
4990
+ to create large Strings or Buffers in Node.js you will see errors like
4991
+ *JavaScript heap out of memory*, or other space related messages.
4992
+
4993
+ Internally, for PL/SQL calls, node-oracledb uses temporary LOBs when
4994
+ binding Strings and Buffers larger than 32 KB. Since temporary LOBs
4995
+ cannot be used for IN OUT binds, the data size in this case is
4996
+ restricted to 32 KB. For SQL call no temporary LOBs are used.
4997
+
4993
4998
4994
4999
### <a name="plsqlindexbybinds"></a> 13.6 PL/SQL Collection Associative Array (Index-by) Bind Parameters
4995
5000
0 commit comments