php-doc-en/reference/oci8/functions/oci-set-edition.xml
2012-11-29 07:01:04 +00:00

162 lines
4.1 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xml:id="function.oci-set-edition" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_set_edition</refname>
<refpurpose>Sets the database edition</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>oci_set_edition</methodname>
<methodparam><type>string</type><parameter>edition</parameter></methodparam>
</methodsynopsis>
<para>
Sets the database "edition" of objects to be used by a subsequent
connections.
</para>
<para>
Oracle Editions allow concurrent versions of applications to run
using the same schema and object names. This is useful for
upgrading live systems.
</para>
<para>
Call <function>oci_set_edition</function> before calling
<function>oci_connect</function>, <function>oci_pconnect</function>
or <function>oci_new_connect</function>.
</para>
<para>
If an edition is set that is not valid in the database, connection
will fail even if <function>oci_set_edition</function> returns success.
</para>
<para>
When using persistent connections, if a connection with the
requested edition setting already exists, it is reused. Otherwise,
a different persistent connection is created
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>edition</parameter></term>
<listitem>
<para>
Oracle Database edition name previously created with the <acronym>SQL</acronym>
"<literal>CREATE EDITION</literal>" command.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<title>Oracle version requirement</title>
<para>
This function is available from Oracle 11gR2 onwards.
</para>
</note>
<caution>
<title>Persistent connections</title>
<para>
To avoid inconsistencies and unexpected errors, do not use ALTER
SESSION SET EDITION to change the edition on persistent connections.
</para>
</caution>
<caution>
<title>DRCP Connection Pooling</title>
<para>
To avoid inconsistencies and unexpected errors when using editions
and <link linkend="oci8.connection">DRCP</link> with Oracle
11.2.0.1, keep a one-to-one correspondence between
the <link linkend="ini.oci8.connection-class">oci8.connection_class</link>
and the edition name used by applications. Each pooled server of
a given connection class should only be used with one edition.
This restriction has been removed with Oracle 11.2.0.2.
</para>
</caution>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Two scripts can use different versions of myfunc() at the same time</title>
<programlisting role="php">
<![CDATA[
<?php
// File 1
echo "Version 1 of application\n";
oci_set_edition('ORA$BASE');
$c = oci_connect('hr', 'welcome', 'localhost/XE');
$s = oci_parse($c, "begin :r := myfunc(); end;");
oci_bind_by_name($s, ":r", $r, 20);
oci_execute($s);
echo "The result is $r\n";
?>
]]>
</programlisting>
<programlisting role="php">
<![CDATA[
<?php
// File 2
echo "Version 2 of application\n";
oci_set_edition('E1');
$c = oci_connect('hr', 'welcome', 'localhost/XE');
$s = oci_parse($c, "begin :r := myfunc(); end;");
oci_bind_by_name($s, ":r", $r, 20);
oci_execute($s);
echo "The result is $r\n";
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->