[continued from previous message]
-This value can be also be specified with the `ORA_DRCP_CLASS`
-environment variable.
-
-Note that a connection class must be specified in order to enable -inter-process sharing of server side sessions.
-
-#### ora\_drcp\_min
-
-This optional value specifies the minimum number of sessions that are -initially allocated for the application process. New sessions are only -allocated after this value has been reached.
-
-The default value is 0 and any value greater than or equal to 0 is valid.
-
-For multi-process applications, it is recommended to leave the value at 0. -This ensures that each process is only occupying a server session while
-the process is doing database work.
-
-For multi-threaded applications, the value could be set to the number of -concurrent statements the application is planning or expecting to run.
-Please note that DRCP has not been tested with multi-threading.
-
-This value can also be specified with the `ORA_DRCP_MIN` environment -variable.
-
-#### ora\_drcp\_max
-
-This optional value specifies the maximum number of sessions that can
-be open at one time. Once reached no more sessions can be opened
-until one becomes free. The default value is 40 and any value above 0
-is valid. You should not set this value lower than ora\_drcp\_min as
-that will just waste resources.
-
-This value can also be specified with the `ORA_DRCP_MAX` environment -variable.
-
-#### ora\_drcp\_incr
-
-This optional value specifies the next increment for sessions to be
-started if the current number of sessions are less than
-ora\_drcp\_max. The default value is 1 and any value above 0 is
-valid as long as the value of ora\_drcp\_min + ora\_drcp\_incr is not
-greater than ora\_drcp\_max.
-
-This value can also be specified with the `ORA_DRCP_INCR` environment -variable.
-
-#### ora\_drcp\_rlb
-
-This optional value controls whether run-time connection load balancing
-is used for Oracle RAC. The default value is 0, which disables the feature. -Set the value to 1 to enable the feature.
-
-This value can also be specified with the `ORA_DRCP_RLB` environment -variable.
-
-#### ora\_taf
-
-This attribute was removed in 1.49\_00 as it was redundant. To
-enable TAF simply set ["ora\_taf\_function"](#ora_taf_function).
-
-#### ora\_taf\_function
-
-If your Oracle instance has been configured to use TAF events you can
-enable the TAF callback by setting this option.
-
-The name of the Perl subroutine (or a code ref from 1.49\_00) that will
-be called from OCI when a TAF event occurs. You must supply a perl
-function to use the callback and it will always receive at least two -parameters; the failover event value and the failover type. From
-1.49\_00 the dbh is passed as the third argument. Below is an example
-of a TAF function
-
- sub taf_event{
- # NOTE from 1.49_00 the $dbh handle is passed to the callback
- my ($event, $type, $dbh) = @_;
-
- print "My TAF event=$event\n";
- print "My TAF type=$type\n";
- return;
- }
-
-Note if passing a sub name you will probably have to use the full name
-space when setting the TAF function e.g., 'main::my\_taf\_function' and
-not just 'my\_taf\_function'.
-
-#### ora\_taf\_sleep
-
-This attribute was removed in 1.49\_00 as it was redundant. If you want
-to sleep between retries simple add a sleep to your callback sub.
-
-#### ora\_session\_mode
-
-The ora\_session\_mode attribute can be used to connect with SYSDBA,
-SYSOPER, ORA\_SYSASM, ORA\_SYSBACKUP, ORA\_SYSKM and ORA\_SYSDG authorization. -The ORA\_SYSDBA, ORA\_SYSOPER, ORA\_SYSASM, ORA\_SYSBACKUP, ORA\_SYSKM
-and ORA\_SYSDG constants can be imported using
-
- use DBD::Oracle qw(:ora_session_modes);
-
-This is one case where setting ORACLE\_SID may be useful since
-connecting as SYSDBA or SYSOPER via SQL\*Net is frequently disabled
-for security reasons.
-
-Example:
-
- $dsn = "dbi:Oracle:"; # no dbname here
- $ENV{ORACLE_SID} = "orcl"; # set ORACLE_SID as needed
- delete $ENV{TWO_TASK}; # make sure TWO_TASK isn't set
-
- $dbh = DBI->connect($dsn, "", "", { ora_session_mode => ORA_SYSDBA });
-
-It has been reported that this only works if `$dsn` does not contain
-a SID so that Oracle then uses the value of ORACLE\_SID (not
-TWO\_TASK) environment variable to connect to a local instance. Also
-the username and password should be empty, and the user executing the
-script needs to be part of the dba group or osdba group.
-
-Note that this does not work with DRCP.
-
-#### ora\_oratab\_orahome
-
-Passing a true value for the ora\_oratab\_orahome attribute will make -DBD::Oracle change `$ENV{ORACLE_HOME}` to make the Oracle home directory
-that specified in the `/etc/oratab` file _if_ the database to connect to
-is specified as a SID that exists in the oratab file, and DBD::Oracle was -built to use the Oracle 7 OCI API (not Oracle 8+).
-
-#### ora\_module\_name
-
-After connecting to the database the value of this attribute is passed
-to the SET\_MODULE() function in the `DBMS_APPLICATION_INFO` PL/SQL
-package. This can be used to identify the application to the DBA for -monitoring and performance tuning purposes. For example:
-
- my $dbh = DBI->connect($dsn, $user, $passwd, { ora_module_name => $0 });
-
- $dbh->{ora_module_name} = $y;
-
-The maximum size is 48 bytes.
-
-NOTE: You will need an Oracle client 10.1 or later to use this.
-
-#### ora\_driver\_name
-
-For 11g and later you can now set the name of the driver layer using OCI. -Perl, Perl5, ApachePerl so on. Names starting with "ORA" are reserved. You -can enter up to 8 characters. If none is enter then this will default to -DBDOxxxx where xxxx is the current version number. This value can be -retrieved on the server side using V$SESSION\_CONNECT\_INFO or -GV$SESSION\_CONNECT\_INFO
-
- my $dbh = DBI->connect($dsn, $user, $passwd, { ora_driver_name => 'ModPerl_1' });
-
- $dbh->{ora_driver_name} = $q;
-
-#### ora\_client\_info
-
-Allows you to add any value (up to 64 bytes) to your session and it can be -retrieved on the server side from the `V$SESSION`a view.
-
- my $dbh = DBI->connect($dsn, $user, $passwd, { ora_client_info => 'Remote2' });
-
- $dbh->{ora_client_info} = "Remote2";
-
-NOTE: You will need an Oracle client 10.1 or later to use this.
-
-#### ora\_client\_identifier
-
-Allows you to specify the user identifier in the session handle.
-
-Most useful for web applications as it can pass in the session user
-name which might be different to the connection user name. Can be up
-to 64 bytes long but do not to include the password for security
-reasons and the first character of the identifier should not be
-':'. This value can be retrieved on the server side using `V$SESSION`
-view.
-
- my $dbh = DBI->connect($dsn, $user, $passwd, { ora_client_identifier => $some_web_user });
-
- $dbh->{ora_client_identifier} = $local_user;
-
-#### ora\_action
-
-Allows you to specify any string up to 32 bytes which may be retrieved
-on the server side using `V$SESSION` view.
-
- my $dbh = DBI->connect($dsn, $user, $passwd, { ora_action => "Login"});
-
- $dbh->{ora_action} = "New Long Query 22";
-
-NOTE: You will need an Oracle client 10.1 or later to use this.
-
-#### ora\_dbh\_share
-
-Requires at least Perl 5.8.0 compiled with ithreads.
-
-Allows you to share
-database connections between threads. The first connect will make the -connection, all following calls to connect with the same ora\_dbh\_share -attribute will use the same database connection. The value must be a -reference to a already shared scalar which is initialized to an empty
-string.
-
- our $orashr : shared = '' ;
-
- $dbh = DBI->connect ($dsn, $user, $passwd, {ora_dbh_share => \$orashr}) ; -
-#### ora\_events
-
-Set this attribute to `1` to enable Oracle Fast Application Notification -(FAN) in a new OCI environment. Can also be set via the `ORA_EVENTS` -environment variable.
-
-#### ora\_envhp
-
-The first time a connection is made a new OCI 'environment' is
-created by DBD::Oracle and stored in the driver handle.
-Subsequent connects reuse (share) that same OCI environment
-by default.
-
-The ora\_envhp attribute can be used to disable the reuse of the OCI -environment from a previous connect. If the value is `0` then
-a new OCI environment is allocated and used for this connection.
-
-The OCI environment holds information about the client side context,
-such as the local NLS environment. By altering `%ENV` and setting
-ora\_envhp to 0 you can create connections with different NLS
-settings. This is most useful for testing.
-
-Note that for DRCP, setting `ora_envhp = 0` has no effect. Here,
-a new session pool is created, using the current NLS environment,
-for each new combination of dbname, uid/pwd, connection class,
-and charset/ncharset.
-
-#### ora\_charset, ora\_ncharset
-
-For oracle versions >= 9.2 you can specify the client charset and
-ncharset with the ora\_charset and ora\_ncharset attributes. You
-still need to pass `ora_envhp = 0` for all but the first connect.
-
-These attributes override the settings from environment variables.
-
- $dbh = DBI->connect ($dsn, $user, $passwd,
- {ora_charset => 'AL32UTF8'});
-
-#### ora\_verbose
-
-Use this value to enable DBD::Oracle only tracing. Simply either set
-the ora\_verbose attribute on the connect() method to the trace level
-you desire like this
-
- my $dbh = DBI->connect($dsn, "", "", {ora_verbose=>6});
-
-or set it directly on the DB handle like this;
-
- $dbh->{ora_verbose} =6;
-
-In both cases the DBD::Oracle trace level is set to 6, which is the highest -level tracing most of the calls to OCI.
-
-NOTE: In future versions of DBD::Oracle ora\_verbose will be changed so
-that it is simply a switch to turn DBI's DBD tracing on or off. A
-true value will turn it on and a false value will turn it off. DBI's
-"DBD" tracing was not available when ora\_verbose was created and -ora\_verbose adds an additional test to every trace test.
-
-#### ora\_oci\_success\_warn
-
-Use this value to print otherwise silent OCI warnings that may happen
-when an execute or fetch returns "Success With Info" or when you want
-to tune RowCaching and LOB Reads
-
- $dbh->{ora_oci_success_warn} = 1;
-
-#### ora\_objects
-
-Use this value to enable extended embedded oracle objects mode. In extended:
-
-1. Embedded objects are returned as <DBD::Oracle::Object> instance (including type-name etc.) instead of simple ARRAY.
-2. Determine object type for each instance. All object attributes are returned (not only super-type's attributes).
-
- $dbh->{ora_objects} = 1;
-
-#### ora\_ph\_type
-
-The default placeholder datatype for the database session.
-The `TYPE` or ["ora\_type"](#ora_type) attributes to ["bind\_param" in DBI](
https://metacpan.org/pod/DBI#bind_param) and
-["bind\_param\_inout" in DBI](
https://metacpan.org/pod/DBI#bind_param_inout) override the datatype for individual placeholders.
-The most frequent reason for using this attribute is to permit trailing spaces -in values passed by placeholders.
-
-Constants for the values allowed for this attribute can be imported using
-
- use DBD::Oracle qw(:ora_types);
-
-Only the following values are permitted for this attribute.
-
-- ORA\_VARCHAR2
-
- Oracle clients using OCI 8 will strip trailing spaces and allow embedded \\0 bytes.
- Oracle clients using OCI 9.2 do not strip trailing spaces and allow embedded \\0 bytes.
- This is the normal default placeholder type.
-
-- ORA\_STRING
-
- Do not strip trailing spaces and end the string at the first \\0.
-
-- ORA\_CHAR
-
- Do not strip trailing spaces and allow embedded \\0.
- Force 'blank-padded comparison semantics'.
-
- For example:
-
- use DBD::Oracle qw(:ora_types);
-
- $SQL="select username from all_users where username = ?";
- #username is a char(8)
- $sth=$dbh->prepare($SQL)";
- $sth->bind_param(1,'bloggs',{ ora_type => ORA_CHAR});
-
- Will pad bloggs out to 8 characters and return the username.
-
-#### ora\_parse\_error\_offset
-
-If the previous error was from a failed `prepare` due to a syntax error,
-this attribute gives the offset into the `Statement` attribute where the -error was found.
-
-#### ora\_array\_chunk\_size
-
-Due to OCI limitations, DBD::Oracle needs to buffer up rows of
-bind values in its `execute_for_fetch` implementation. This attribute
-sets the number of rows to buffer at a time (default value is 1000).
-
-The `execute_for_fetch` function will collect (at most) this many
-rows in an array, send them off to the DB for execution, then go back
-to collect the next chunk of rows and so on. This attribute can be
-used to limit or extend the number of rows processed at a time.
-
-Note that this attribute also applies to `execute_array`, since that
-method is implemented using `execute_for_fetch`.
-
-#### ora\_connect\_with\_default\_signals
-
-Sometimes the Oracle client seems to change some of the signal
-handlers of the process during the connect phase. For instance, some
-users have observed Perl's default `$SIG{INT}` handler being ignored
-after connecting to an Oracle database. If this causes problems in
-your application, set this attribute to an array reference of signals
-you would like to be localized during the connect process. Once the
-connect is complete, the signal handlers should be returned to their
-previous state.
-
-For example:
-
- $dbh = DBI->connect ($dsn, $user, $passwd,
- {ora_connect_with_default_signals => [ 'INT' ] });
-
-NOTE disabling the signal handlers the OCI library sets up may affect -functionality in the OCI library.
-
-NOTE If you are using connect\_cached then the above example will lead
-to DBI thinking each connection is different as an anonymous array reference -is being used. To avoid this when using connect\_cached you are advised
-to use:
-
- my @ora_default_signals = (...);
- $dbh = DBI->connect($dsn, $user, $passwd,
- {ora_connect_with_default_signals => \@ora_default_signals});
-
-In more recent Perl versions you could possibly make use of new state -variables.
-
-## **connect\_cached**
-
-Implemented by DBI, no driver-specific impact.
-Please note that connect\_cached has not been tested with DRCP.
-
-## **data\_sources**
-
- @data_sources = DBI->data_sources('Oracle');
- @data_sources = $dbh->data_sources();
-
-Returns a list of available databases. You will have to set either the 'ORACLE\_HOME' or
-'TNS\_ADMIN' environment value to retrieve this list. It will read these values from
-TNSNAMES.ORA file entries.
-
-# METHODS COMMON TO ALL HANDLES
-
-For all of the methods below, **$h** can be either a database handle (**$dbh**)
-or a statement handle (**$sth**). Note that _$dbh_ and _$sth_ can be replaced with
-any variable name you choose: these are just the names most often used. Another
-common variable used in this documentation is $_rv_, which stands for "return value".
-
-## **err**
-
- $rv = $h->err;
-
-Returns the error code from the last method called.
-
-## **errstr**
-
- $str = $h->errstr;
-
-Returns the last error that was reported by Oracle. Starting with "ORA-00000" code followed by the error message.
-
-## **state**
-
- $str = $h->state;
-
-Oracle hasn't supported SQLSTATE since the early versions OCI. It will return empty when the command succeeds and
-'S1000' (General Error) for all other errors.
-
-While this method can be called as either `$sth->state` or `$dbh->state`, it -is usually clearer to always use `$dbh->state`.
-
-## **trace**
-
-Implemented by DBI, no driver-specific impact.
-
-## **trace\_msg**
-
-Implemented by DBI, no driver-specific impact.
-
-## **parse\_trace\_flag** and **parse\_trace\_flags**
-
-Implemented by DBI, no driver-specific impact.
-
-## **func**
-
-DBD::Oracle uses the `func` method to support a variety of functions.
-
-## **Private database handle functions**
-
-Some of these functions are called through the method func()
-which is described in the DBI documentation. Any function that begins with ora\_
-can be called directly.
-
-## **plsql\_errstr**
-
-This function returns a string which describes the errors
-from the most recent PL/SQL function, procedure, package,
-or package body compile in a format similar to the output
-of the SQL\*Plus command 'show errors'.
-
-The function returns undef if the error string could not
-be retrieved due to a database error.
-Look in $dbh->errstr for the cause of the failure.
-
-If there are no compile errors, an empty string is returned.
-
-Example:
-
- # Show the errors if CREATE PROCEDURE fails
- $dbh->{RaiseError} = 0;
- if ( $dbh->do( q{
- CREATE OR REPLACE PROCEDURE perl_dbd_oracle_test as
- BEGIN
- PROCEDURE filltab( stuff OUT TAB ); asdf
- END; } ) ) {} # Statement succeeded
- }
- elsif ( 6550 != $dbh->err ) { die $dbh->errstr; } # Utter failure
- else {
- my $msg = $dbh->func( 'plsql_errstr' );
- die $dbh->errstr if ! defined $msg;
- die $msg if $msg;
- }
-
-## **dbms\_output\_enable / dbms\_output\_put / dbms\_output\_get**
-
-These functions use the PL/SQL DBMS\_OUTPUT package to store and
-retrieve text using the DBMS\_OUTPUT buffer. Text stored in this buffer
-by dbms\_output\_put or any PL/SQL block can be retrieved by -dbms\_output\_get or any PL/SQL block connected to the same database
-session.
-
-Stored text is not available until after dbms\_output\_put or the PL/SQL -block that saved it completes its execution. This means you **CAN NOT**
-use these functions to monitor long running PL/SQL procedures.
-
-Example 1:
-
- # Enable DBMS_OUTPUT and set the buffer size
- $dbh->{RaiseError} = 1;
- $dbh->func( 1000000, 'dbms_output_enable' );
-
- # Put text in the buffer . . .
- $dbh->func( @text, 'dbms_output_put' );
-
- # . . . and retrieve it later
- @text = $dbh->func( 'dbms_output_get' );
-
-Example 2:
-
- $dbh->{RaiseError} = 1;
- $sth = $dbh->prepare(q{
- DECLARE tmp VARCHAR2(50);
- BEGIN
- SELECT SYSDATE INTO tmp FROM DUAL;
- dbms_output.put_line('The date is '||tmp);
- END;
- });
- $sth->execute;
-
- # retrieve the string
- $date_string = $dbh->func( 'dbms_output_get' );
-
-## **dbms\_output\_enable ( \[ buffer\_size \] )**
-
-This function calls DBMS\_OUTPUT.ENABLE to enable calls to package -DBMS\_OUTPUT procedures GET, GET\_LINE, PUT, and PUT\_LINE. Calls to
-these procedures are ignored unless DBMS\_OUTPUT.ENABLE is called
-first.
-
-The buffer\_size is the maximum amount of text that can be saved in the -buffer and must be between 2000 and 1,000,000. If buffer\_size is not
-given, the default is 20,000 bytes.
-
-## **dbms\_output\_put ( \[ @lines \] )**
-
-This function calls DBMS\_OUTPUT.PUT\_LINE to add lines to the buffer.
-
-If all lines were saved successfully the function returns 1. Depending
-on the context, an empty list or undef is returned for failure.
-
-If any line causes buffer\_size to be exceeded, a buffer overflow error
-is raised and the function call fails. Some of the text might be in
-the buffer.
-
-## **dbms\_output\_get**
-
-This function calls DBMS\_OUTPUT.GET\_LINE to retrieve lines of text from
-the buffer.
-
-In an array context, all complete lines are removed from the buffer and -returned as a list. If there are no complete lines, an empty list is -returned.
-
-In a scalar context, the first complete line is removed from the buffer
-and returned. If there are no complete lines, undef is returned.
-
-Any text in the buffer after a call to DBMS\_OUTPUT.GET\_LINE or -DBMS\_OUTPUT.GET is discarded by the next call to DBMS\_OUTPUT.PUT\_LINE, -DBMS\_OUTPUT.PUT, or DBMS\_OUTPUT.NEW\_LINE.
-
-## **reauthenticate ( $username, $password )**
-
-Starts a new session against the current database using the credentials -supplied. Note that this does not work with DRCP.
-
-## **private\_attribute\_info**
-
- $hashref = $dbh->private_attribute_info();
- $hashref = $sth->private_attribute_info();
-
-Returns a hash of all private attributes used by DBD::Oracle, for either
-a database or a statement handle. Currently, all the hash values are undef.
-
-# ATTRIBUTES COMMON TO ALL HANDLES
-
-## **InactiveDestroy** (boolean)
-
-Implemented by DBI, no driver-specific impact.
-
-## **RaiseError** (boolean, inherited)
-
-Forces errors to always raise an exception. Although it defaults to off, it is recommended that this
-be turned on, as the alternative is to check the return value of every method (prepare, execute, fetch, etc.)
-manually, which is easy to forget to do.
-
-## **PrintError** (boolean, inherited)
-
-Forces database errors to also generate warnings, which can then be filtered with methods such as
-locally redefining _$SIG{\_\_WARN\_\_}_ or using modules such as `CGI::Carp`. This attribute is on
-by default.
-
-## **ShowErrorStatement** (boolean, inherited)
-
-Appends information about the current statement to error messages. If placeholder information
-is available, adds that as well. Defaults to true.
-
-## **Warn** (boolean, inherited)
-
-Enables warnings. This is on by default, and should only be turned off in a local block
-for a short a time only when absolutely needed.
-
-## **Executed** (boolean, read-only)
-
-Indicates if a handle has been executed. For database handles, this value is true after the ["do"](#do) method has been called, or
-when one of the child statement handles has issued an ["execute"](#execute). Issuing a ["commit"](#commit) or ["rollback"](#rollback) always resets the
-attribute to false for database handles. For statement handles, any call to ["execute"](#execute) or its variants will flip the value to
-true for the lifetime of the statement handle.
-
-## **TraceLevel** (integer, inherited)
-
-Sets the trace level, similar to the ["trace"](#trace) method. See the sections on
-["trace"](#trace) and ["parse\_trace\_flag"](#parse_trace_flag) for more details.
-
-## **Active** (boolean, read-only)
-
-Indicates if a handle is active or not. For database handles, this indicates if the database has
-been disconnected or not. For statement handles, it indicates if all the data has been fetched yet
-or not. Use of this attribute is not encouraged.
-
-## **Kids** (integer, read-only)
-
-Returns the number of child processes created for each handle type. For a driver handle, indicates the number
-of database handles created. For a database handle, indicates the number of statement handles created. For
-statement handles, it always returns zero, because statement handles do not create kids.
-
-## **ActiveKids** (integer, read-only)
-
-Same as `Kids`, but only returns those that are active.
-
-## **CachedKids** (hash ref)
-
-Returns a hashref of handles. If called on a database handle, returns all statement handles created by use of the
-`prepare_cached` method. If called on a driver handle, returns all database handles created by the ["connect\_cached"](#connect_cached)
-method.
-
-## **ChildHandles** (array ref)
-
-Implemented by DBI, no driver-specific impact.
-
-## **PrintWarn** (boolean, inherited)
-
-Implemented by DBI, no driver-specific impact.
-
-## **HandleError** (boolean, inherited)
-
-Implemented by DBI, no driver-specific impact.
-
-## **HandleSetErr** (code ref, inherited)
-
-Implemented by DBI, no driver-specific impact.
-
-## **ErrCount** (unsigned integer)
-
-Implemented by DBI, no driver-specific impact.
-
-## **FetchHashKeyName** (string, inherited)
-
-Implemented by DBI, no driver-specific impact.
-
-## **ChopBlanks** (boolean, inherited)
-
-Implemented by DBI, no driver-specific impact.
-
-## **Taint** (boolean, inherited)
-
-Implemented by DBI, no driver-specific impact.
-
-## **TaintIn** (boolean, inherited)
-
-Implemented by DBI, no driver-specific impact.
-
-## **TaintOut** (boolean, inherited)
-
-Implemented by DBI, no driver-specific impact.
-
-## **Profile** (inherited)
-
-Implemented by DBI, no driver-specific impact.
-
-## **Type** (scalar)
-
-Returns `dr` for a driver handle, `db` for a database handle, and `st` for a statement handle.
-Should be rarely needed.
-
-## **LongReadLen**
-
-The maximum size of long or longraw columns to retrieve. If one of
-these columns is longer than LongReadLen then either a data truncation
-error will be raised (LongTrunkOk is false) or the column will be
-silently truncated (LongTruncOk is true).
-
-DBI currently defaults this to 80.
-
-## **LongTruncOk**
-
-Implemented by DBI, no driver-specific impact.
-
-## **CompatMode**
-
-Type: boolean, inherited
-
-The CompatMode attribute is used by emulation layers (such as Oraperl) to enable compatible behaviour in the underlying driver (e.g., DBD::Oracle) for this handle. Not normally set by application code.
-
-It also has the effect of disabling the 'quick FETCH' of attribute values from the handles attribute cache. So all attribute values are handled by the drivers own FETCH method. This makes them slightly slower but is useful for special-purpose drivers
like DBD::Multiplex.
-
-# ORACLE-SPECIFIC DATABASE HANDLE METHODS
-
-## **ora\_can\_unicode ( \[ $refresh \] )**
-
-Returns a number indicating whether either of the database character sets
-is a Unicode encoding. Calls ora\_nls\_parameters() and passes the optional -$refresh parameter to it.
-
-0 = Neither character set is a Unicode encoding.
-
-1 = National character set is a Unicode encoding.
-
-2 = Database character set is a Unicode encoding.
-
-3 = Both character sets are Unicode encodings.
-
-## **ora\_can\_taf**
-
-Returns true if the current connection supports TAF events. False if otherwise.
-
-## **ora\_nls\_parameters ( \[ $refresh \] )**
-
-Returns a hash reference containing the current NLS parameters, as given
-by the v$nls\_parameters view. The values fetched are cached between calls. -To cause the latest values to be fetched, pass a true value to the function.
-
-# ORACLE-SPECIFIC DATABASE FUNCTIONS
-
-## **ora\_server\_version**
-
- $versions = $dbh->func('ora_server_version');
-
-Returns an array reference of server version strings e.g.,
-
- [11,2,0,2,0]
-
-# DATABASE HANDLE METHODS
-
-## **selectall\_arrayref**
-
- $ary_ref = $dbh->selectall_arrayref($sql);
- $ary_ref = $dbh->selectall_arrayref($sql, \%attr);
- $ary_ref = $dbh->selectall_arrayref($sql, \%attr, @bind_values);
-
-Returns a reference to an array containing the rows returned by preparing and executing the SQL string.
-See the DBI documentation for full details.
-
-## **selectall\_hashref**
-
- $hash_ref = $dbh->selectall_hashref($sql, $key_field);
-
-Returns a reference to a hash containing the rows returned by preparing and executing the SQL string.
-See the DBI documentation for full details.
-
-## **selectcol\_arrayref**
-
- $ary_ref = $dbh->selectcol_arrayref($sql, \%attr, @bind_values);
-
-Returns a reference to an array containing the first column
-from each rows returned by preparing and executing the SQL string. It is possible to specify exactly
-which columns to return. See the DBI documentation for full details.
-
-## **prepare**
-
- $sth = $dbh->prepare($statement, \%attr);
-
-Prepares a statement for later execution by the database engine and returns a reference to a statement handle object.
-
-### **Prepare Attributes**
-
-These attributes may be used in the `\%attr` parameter of the
-["prepare" in DBI](
https://metacpan.org/pod/DBI#prepare) database handle method.
-
-- ora\_placeholders
-
- Set to false to disable processing of placeholders. Used mainly for loading a
- PL/SQL package that has been _wrapped_ with Oracle's `wrap` utility.
-
-- ora\_auto\_lob
-
- If true (the default), fetching retrieves the contents of the CLOB or
- BLOB column in most circumstances. If false, fetching retrieves the
- Oracle "LOB Locator" of the CLOB or BLOB value.
-
- See ["LOBS AND LONGS"](#lobs-and-longs) for more details.
-
- See also the LOB tests in 05dbi.t of Oracle::OCI for examples
- of how to use LOB Locators.
-
-- ora\_pers\_lob
-
- If true the ["Simple Fetch for CLOBs and BLOBs"](#simple-fetch-for-clobs-and-blobs) method for the ["Data Interface for Persistent LOBs"](#data-interface-for-persistent-lobs) will be
- used for LOBs rather than the default method ["Data Interface for LOB Locators"](#data-interface-for-lob-locators).
-
-- ora\_clbk\_lob
-
- If true the ["Piecewise Fetch with Callback"](#piecewise-fetch-with-callback) method for the ["Data
- Interface for Persistent LOBs"](#data-interface-for-persistent-lobs) will be used for LOBs.
-
-- ora\_piece\_lob
-
- If true the ["Piecewise Fetch with Polling"](#piecewise-fetch-with-polling) method for the ["Data
- Interface for Persistent LOBs"](#data-interface-for-persistent-lobs) will be used for LOBs.
-
-- ora\_piece\_size
-
- This is the max piece size for the ["Piecewise Fetch with Callback"](#piecewise-fetch-with-callback)
- and ["Piecewise Fetch with Polling"](#piecewise-fetch-with-polling) methods, in chars for CLOBS, and
- bytes for BLOBS.
-
-- ora\_check\_sql
-
- If 1 (default), force SELECT statements to be described in prepare().
- If 0, allow SELECT statements to defer describe until execute().
-
- See ["Prepare Postponed Till Execute"](#prepare-postponed-till-execute) for more information.
-
-- ora\_exe\_mode
-
- This will set the execute mode of the current statement. Presently
- only one mode is supported;
-
- OCI_STMT_SCROLLABLE_READONLY - make result set scrollable
-
- See ["SCROLLABLE CURSORS"](#scrollable-cursors) for more details.
-
-- ora\_prefetch\_rows
-
- Sets the number of rows to be prefetched. If it is not set, then the
- default value is 1. See ["Row Prefetching"](#row-prefetching) for more details.
-
-- ora\_prefetch\_memory
-
- Sets the memory level for rows to be prefetched. The application then
- fetches as many rows as will fit into that much memory. See ["Row
- Prefetching"](#row-prefetching) for more details.
-
-- ora\_row\_cache\_off
-
- By default DBD::Oracle will use a row cache when fetching to cut down
- the number of round trips to the server. If you do not want to use an
- array fetch set this value to any value other than 0;
-
- See ["Row Prefetching"](#row-prefetching) for more details.
-
-### **Placeholders**
-
-There are three types of placeholders that can be used in
-DBD::Oracle.
-
-The first is the "question mark" type, in which each placeholder is -represented by a single question mark character. This is the method -recommended by the DBI and is the most portable. Each question
-mark is internally replaced by a "dollar sign number" in the order in
-which they appear in the query (important when using ["bind\_param"](#bind_param)).
-
-The second type of placeholder is "named parameters" in the format
-":foo" which is the one Oracle prefers.
-
- $dbh->{RaiseError} = 1; # save having to check each method call
- $sth = $dbh->prepare("SELECT name, age FROM people WHERE name LIKE :name");
- $sth->bind_param(':name', "John%");
- $sth->execute;
- DBI::dump_results($sth);
-
-Note when calling bind\_param with named parameters you must include
-the leading colon. The advantage of this placeholder type is that you
-can use the same placeholder more than once in the same SQL statement
-but you only need to bind it once.
-
-The last placeholder type is a variation of the two above where you
-name each placeholder :N (where N is a number). Like the named
-placeholders above you can use the same placeholder multiple times in
-the SQL but when you call bind\_param you only need to pass the N
-(e.g., for :1 you use bind\_param(1,...) and not bind\_param(':1',...).
-
-The different types of placeholders cannot be mixed within a statement, but you may
-use different ones for each statement handle you have. This is confusing at best, so
[continued in next message]
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)