1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-23 23:12:09 +01:00

feat(translation): update revision EN misc (#250)

This commit is contained in:
Philippe DELENTE
2025-07-03 21:51:59 +02:00
committed by GitHub
parent 9f7804a633
commit 8e8282ef72
776 changed files with 36203 additions and 28566 deletions

View File

@@ -2983,6 +2983,17 @@ xmlns="http://docbook.org/ns/docbook"><simpara>Esta función ha sido
</para>
'>
<!-- Easy links -->
<!ENTITY string '<link xmlns="http://docbook.org/ns/docbook" linkend="language.types.string">chaîne de caractères</link>'>
<!ENTITY integer '<link xmlns="http://docbook.org/ns/docbook" linkend="language.types.integer">entier</link>'>
<!ENTITY float '<link xmlns="http://docbook.org/ns/docbook" linkend="language.types.float">nombre décimal</link>'>
<!ENTITY boolean '<link xmlns="http://docbook.org/ns/docbook" linkend="language.types.boolean">booléen</link>'>
<!ENTITY array '<link xmlns="http://docbook.org/ns/docbook" linkend="language.types.array">tableau</link>'>
<!ENTITY object '<link xmlns="http://docbook.org/ns/docbook" linkend="language.types.object">objet</link>'>
<!ENTITY void '<link xmlns="http://docbook.org/ns/docbook" linkend="language.types.declarations.void">void</link>'>
<!ENTITY iterable '<link xmlns="http://docbook.org/ns/docbook" linkend="language.types.iterable">iterable</link>'>
<!ENTITY zero '<literal xmlns="http://docbook.org/ns/docbook">0</literal>'>
<!ENTITY one '<literal xmlns="http://docbook.org/ns/docbook">1</literal>'>

View File

@@ -1,28 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 1634a886415d0ab4df195fe49d18a1c150b70758 Maintainer: chuso Status: ready -->
<!-- Reviewed: no -->
<!-- EN-Revision: 68c2c871505aadf983f16113c5b077b335ce8d76 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<book xml:id="book.oauth" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<?phpdoc extension-membership="pecl" ?>
<title>OAuth</title>
<preface xml:id="intro.oauth">
&reftitle.intro;
<para>
Esta extensión provee un cliente y un servicio OAuth. OAuth es un
protocolo de autorización basado en HTTP el cual permite a las aplicaciones
garantizar el acceso a datos sin tener alojado un nombre de usuario y contraseña.
Esta extensión proporciona un cliente y un proveedor de servicio OAuth 1.0a. OAuth es un protocolo de autorización
que se construye sobre HTTP, y que permite a las aplicaciones asegurar
el acceso a los datos sin tener que almacenar nombres de usuario y contraseñas.
</para>
</preface>
&reference.oauth.setup;
&reference.oauth.constants;
&reference.oauth.examples;
&reference.oauth.reference;
&reference.oauth.oauth;
&reference.oauth.oauth;
&reference.oauth.oauthprovider;
&reference.oauth.oauthexception;
&reference.oauth.oauthexception;
</book>
<!-- Keep this comment at the end of the file
@@ -45,4 +46,3 @@ vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@@ -1,19 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 4de5cce5d886bf7ea08db8583141ff9715b47073 Maintainer: agarzon Status: ready -->
<!-- EN-Revision: 86e6094e86b84a51d00ab217ac50ce8dde33d82a Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<appendix xml:id="oauth.constants" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
&reftitle.constants;
&extension.constants;
<para>
La mayoría de estas constantes involucran problemas, los cuales son descritos en la documentación oficial de
OAuth <link xlink:href="&url.oauth.problemreporting;">Problem Reporting</link>.
Note sin embargo, que estos nombres de constantes son específicos para PHP, aunque
el nombre sea similar.
La mayoría de estas constantes implican problemas descritos en la documentación
oficial de <link xlink:href="&url.oauth.problemreporting;">informe de problemas</link>
de OAuth. Tenga en cuenta, sin embargo, que los nombres de las constantes son específicos de PHP, a pesar
del hecho de que el esquema de nomenclatura es similar.
</para>
<para>
<variablelist>
<!-- TODO: Ensure each constant mentions the exact oauth API name/value pair. -->
<varlistentry xml:id="constant.oauth-sig-method-rsasha1">
<term>
<constant>OAUTH_SIG_METHOD_RSASHA1</constant>
@@ -43,7 +43,7 @@
</term>
<listitem>
<simpara>
Método de firma OAuth <emphasis>HMAC-SHA256</emphasis> signature method.
Método de firma OAuth <emphasis>HMAC-SHA256</emphasis>.
</simpara>
</listitem>
</varlistentry>
@@ -54,8 +54,7 @@
</term>
<listitem>
<para>
Esta constante representa los parámetros OAuth en la cabecera de
<literal>Authorization</literal>.
Esta constante representa el encabezado <literal>Authorization</literal>.
</para>
</listitem>
</varlistentry>
@@ -66,7 +65,7 @@
</term>
<listitem>
<para>
Esta constante indica una petición NoAuth OAuth.
Esta constante indica una petición <literal>NoAuth OAuth</literal>.
</para>
</listitem>
</varlistentry>
@@ -77,8 +76,7 @@
</term>
<listitem>
<para>
Esta constante representa los parámetros OAuth en la
<acronym>URI</acronym> de petición.
Esta constante representa los parámetros OAuth en el <acronym>URI</acronym> de la petición.
</para>
</listitem>
</varlistentry>
@@ -89,8 +87,8 @@
</term>
<listitem>
<para>
Esta constante representa los parámetros OAuth como una parte del cuerpo
HTTP POST.
Esta constante representa los parámetros OAuth como parte
del cuerpo HTTP POST.
</para>
</listitem>
</varlistentry>
@@ -101,7 +99,7 @@
</term>
<listitem>
<para>
Usa el método <emphasis>GET</emphasis> para la petición OAuth.
Utiliza el método <emphasis>GET</emphasis> para la petición OAuth.
</para>
</listitem>
</varlistentry>
@@ -112,7 +110,7 @@
</term>
<listitem>
<para>
Usa el método <emphasis>POST</emphasis> para la petición OAuth.
Utiliza el método <emphasis>POST</emphasis> para la petición OAuth.
</para>
</listitem>
</varlistentry>
@@ -123,7 +121,7 @@
</term>
<listitem>
<para>
Usa el método <emphasis>PUT</emphasis> para la petición OAuth.
Utiliza el método <emphasis>PUT</emphasis> para la petición OAuth.
</para>
</listitem>
</varlistentry>
@@ -134,7 +132,7 @@
</term>
<listitem>
<para>
Usa el método <emphasis>HEAD</emphasis> para la petición OAuth.
Utiliza el método <emphasis>HEAD</emphasis> para la petición OAuth.
</para>
</listitem>
</varlistentry>
@@ -145,20 +143,20 @@
</term>
<listitem>
<simpara>
Usa el método <emphasis>DELETE</emphasis> para la petición OAuth.
Utiliza el método <emphasis>DELETE</emphasis> para la petición OAuth.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.oauth-reqengine-streams">
<term>
<constant>OAUTH_REQENGINE_STREAMS</constant>
(<type>integer</type>)
(<type>int</type>)
</term>
<listitem>
<simpara>
Utiliza el método <methodname>OAuth::setRequestEngine</methodname> para definir el motor de
<link linkend="book.stream">PHP streams</link>,
en lugar de <constant>OAUTH_REQENGINE_CURL</constant> para
Utilizado por el método <methodname>Oauth::setRequestEngine</methodname>
para definir el motor de <link linkend="book.stream">flujos PHP</link>,
en oposición a <constant>OAUTH_REQENGINE_CURL</constant> para
<link linkend="book.curl">Curl</link>.
</simpara>
</listitem>
@@ -166,20 +164,21 @@
<varlistentry xml:id="constant.oauth-reqengine-curl">
<term>
<constant>OAUTH_REQENGINE_CURL</constant>
(<type>integer</type>)
(<type>int</type>)
</term>
<listitem>
<simpara>
Utiliza el método <methodname>OAuth::setRequestEngine</methodname> para definir el motor de
<link linkend="book.curl">Curl</link>, en lugar de
<constant>OAUTH_REQENGINE_STREAMS</constant> para <link linkend="book.stream">PHP streams</link>.
Utilizado por el método <methodname>Oauth::setReqeustEngine</methodname>
para definir el motor de <link linkend="book.curl">Curl</link>,
en oposición a <constant>OAUTH_REQENGINE_STREAMS</constant> para
los <link linkend="book.stream">flujos PHP</link>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.oauth-ok">
<term>
<constant>OAUTH_OK</constant>
(<type>integer</type>)
(<type>int</type>)
</term>
<listitem>
<simpara>
@@ -190,127 +189,131 @@
<varlistentry xml:id="constant.oauth-bad-nonce">
<term>
<constant>OAUTH_BAD_NONCE</constant>
(<type>integer</type>)
(<type>int</type>)
</term>
<listitem>
<simpara>
El valor <emphasis>oauth_nonce</emphasis> que fue usado en una anterior petición,
y no se puede utilizar ahora.
El valor <emphasis>oauth_nonce</emphasis> ha sido utilizado para una
petición previa, y no puede ser utilizado ahora.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.oauth-bad-timestamp">
<term>
<constant>OAUTH_BAD_TIMESTAMP</constant>
(<type>integer</type>)
(<type>int</type>)
</term>
<listitem>
<simpara>
El valor <emphasis>oauth_timestamp</emphasis> que no fue aceptado por el proveedor de servicio.
En este caso, la respuesta deberá estar también contenida en el parámetro <emphasis>oauth_acceptable_timestamps</emphasis>.
El valor <emphasis>oauth_timestamp</emphasis> no es aceptado
por el proveedor de servicio. En este caso, la respuesta deberá también contener
el parámetro <emphasis>oauth_acceptable_timestamps</emphasis>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.oauth-consumer-key-unknown">
<term>
<constant>OAUTH_CONSUMER_KEY_UNKNOWN</constant>
(<type>integer</type>)
(<type>int</type>)
</term>
<listitem>
<simpara>
<emphasis>oauth_consumer_key</emphasis> es temporalmehte inaceptable para el proveedor de servicio.
Por ejemplo, el proveedor de servicio se ha sobrecargado.
<emphasis>oauth_consumer_key</emphasis> es temporalmente inaceptable
por el proveedor de servicio. Por ejemplo, el proveedor de servicio
sobrecarga al consumidor.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.oauth-consumer-key-refused">
<term>
<constant>OAUTH_CONSUMER_KEY_REFUSED</constant>
(<type>integer</type>)
(<type>int</type>)
</term>
<listitem>
<simpara>
La clave de cliente ha sido rechazada.
La clave del consumidor ha sido rechazada.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.oauth-invalid-signature">
<term>
<constant>OAUTH_INVALID_SIGNATURE</constant>
(<type>integer</type>)
(<type>int</type>)
</term>
<listitem>
<simpara>
La firma <emphasis>oauth_signature</emphasis> es inválida, no coincide la firma del cliente con la del proveedor.
<emphasis>oauth_signature</emphasis> es inválida porque no coincide
con la firma calculada por el proveedor de servicio.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.oauth-token-used">
<term>
<constant>OAUTH_TOKEN_USED</constant>
(<type>integer</type>)
(<type>int</type>)
</term>
<listitem>
<simpara>
El <emphasis>oauth_token</emphasis> ha sido consumido. No se puede utilizar más
debido a que ya había sido usada en la/s petición/peticiones anterior/es.
<emphasis>oauth_token</emphasis> ha sido consumido. Ya no puede ser utilizado
porque ha sido utilizado en una o más peticiones previas.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.oauth-token-expired">
<term>
<constant>OAUTH_TOKEN_EXPIRED</constant>
(<type>integer</type>)
(<type>int</type>)
</term>
<listitem>
<simpara>
El <emphasis>oauth_token</emphasis> ha expirado.
<emphasis>oauth_token</emphasis> ha expirado.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.oauth-token-revoked">
<term>
<constant>OAUTH_TOKEN_REVOKED</constant>
(<type>integer</type>)
(<type>int</type>)
</term>
<listitem>
<simpara>
El <emphasis>oauth_token</emphasis> ha sido revocado, y no será aceptado nunca más.
<emphasis>oauth_token</emphasis> ha sido revocado y no será aceptado.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.oauth-token-rejected">
<term>
<constant>OAUTH_TOKEN_REJECTED</constant>
(<type>integer</type>)
(<type>int</type>)
</term>
<listitem>
<simpara>
El <emphasis>oauth_token</emphasis> no fue aceptado por el proveedor de servicio.
La razón es desconocida, pero puede deberse a que el token nunca fue usado,
ya haa sido consumido, ya había expirado, y/o olvidado por el proveedor de servicio.
<emphasis>oauth_token</emphasis> no ha sido aceptado por el proveedor de
servicio. La razón es desconocida, pero podría ser que el token nunca
haya sido utilizado, ya haya sido consumido, haya expirado y/o haya sido olvidado por el
proveedor de servicio.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.oauth-verifier-invalid">
<term>
<constant>OAUTH_VERIFIER_INVALID</constant>
(<type>integer</type>)
(<type>int</type>)
</term>
<listitem>
<simpara>
El <emphasis>oauth_verifier</emphasis> es incorrecto.
<emphasis>oauth_verifier</emphasis> es incorrecto.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.oauth-parameter-absent">
<term>
<constant>OAUTH_PARAMETER_ABSENT</constant>
(<type>integer</type>)
(<type>int</type>)
</term>
<listitem>
<simpara>
Un parámetro no fue recibido. En ese caso, la respuesta debe también
Un parámetro requerido no ha sido recibido. En este caso, la respuesta debe también
contener el parámetro <emphasis>oauth_parameters_absent</emphasis>.
</simpara>
</listitem>
@@ -318,11 +321,12 @@
<varlistentry xml:id="constant.oauth-signature-method-rejected">
<term>
<constant>OAUTH_SIGNATURE_METHOD_REJECTED</constant>
(<type>integer</type>)
(<type>int</type>)
</term>
<listitem>
<simpara>
El método <emphasis>oauth_signature_method</emphasis> no fue aceptado por el proveedor de servicio.
<emphasis>oauth_signature_method</emphasis> no ha sido aceptado por el proveedor
de servicio.
</simpara>
</listitem>
</varlistentry>
@@ -350,4 +354,3 @@ vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@@ -1,40 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 38e65393c58b006a923c5bb7878aee5c73e21b20 Maintainer: agarzon Status: ready -->
<!-- Reviewed: no -->
<!-- EN-Revision: c44e9cb68b9b65771f9c45db2c07a06c63d71359 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<reference xml:id="class.oauth" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<title>La clase OAuth</title>
<title>&class.theclass; <classname>OAuth</classname></title>
<titleabbrev>OAuth</titleabbrev>
<partintro>
<!-- {{{ OAuth intro -->
<!-- {{{ OAuth intro -->
<section xml:id="oauth.intro">
&reftitle.intro;
<para>
La extensión OAuth provee una interfaz simple para interactuar con
proveedores de datos usando la especificación HTTP OAuth para proteger
los recursos privados.
La extensión OAuth proporciona una interfaz simple para interactuar con
proveedores de datos, utilizando las especificaciones HTTP OAuth
para proteger los recursos.
</para>
</section>
<!-- }}} -->
<!-- }}} -->
<section xml:id="oauth.synopsis">
&reftitle.classsynopsis;
<!-- {{{ Synopsis -->
<!-- {{{ Synopsis -->
<classsynopsis>
<ooclass><classname>OAuth</classname></ooclass>
<!-- {{{ Class synopsis -->
<!-- {{{ Class synopsis -->
<classsynopsisinfo>
<ooclass>
<classname>OAuth</classname>
</ooclass>
</classsynopsisinfo>
<!-- }}} -->
<!-- }}} -->
<classsynopsisinfo role="comment">&Properties;</classsynopsisinfo>
<fieldsynopsis>
<modifier>public</modifier>
@@ -48,14 +47,19 @@
<modifier>public</modifier>
<varname linkend="oauth.props.debuginfo">debugInfo</varname>
</fieldsynopsis>
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.oauth')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[1])" />
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.oauth')/db:refentry/db:refsect1[@role='description']/descendant::db:constructorsynopsis[not(@role='procedural')])">
<xi:fallback/>
</xi:include>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.oauth')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])">
<xi:fallback/>
</xi:include>
</classsynopsis>
<!-- }}} -->
<!-- }}} -->
</section>
<section xml:id="oauth.props">
&reftitle.properties;
<variablelist>
@@ -79,11 +83,11 @@
</varlistentry>
</variablelist>
</section>
</partintro>
&reference.oauth.entities.oauth;
</reference>
<!-- Keep this comment at the end of the file

View File

@@ -1,28 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: d8b968e63cba67a082e6e37aee1ebe7821b41258 Maintainer: agarzon Status: ready -->
<!-- Reviewed: no Maintainer: andresdzphp -->
<!-- EN-Revision: c44e9cb68b9b65771f9c45db2c07a06c63d71359 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="oauth.construct" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>OAuth::__construct</refname>
<refpurpose>Crea un nuevo objeto OAuth</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<constructorsynopsis>
<modifier>public</modifier> <methodname>OAuth::__construct</methodname>
<methodparam><type>string</type><parameter>consumer_key</parameter></methodparam>
<methodparam><type>string</type><parameter>consumer_secret</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>signature_method</parameter><initializer><constant>OAUTH_SIG_METHOD_HMACSHA1</constant></initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>auth_type</parameter><initializer>0</initializer></methodparam>
</methodsynopsis>
</constructorsynopsis>
<para>
Crea un nuevo objeto OAuth
Crea un nuevo objeto OAuth.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -31,7 +30,7 @@
<term><parameter>consumer_key</parameter></term>
<listitem>
<para>
La clave de lectura proporcionada por el proveedor de servicios.
La clave de consumidor proporcionada por el proveedor de servicios.
</para>
</listitem>
</varlistentry>
@@ -39,7 +38,7 @@
<term><parameter>consumer_secret</parameter></term>
<listitem>
<para>
El secreto de lectura proporcionada por el proveedor de servicios.
El secreto de consumidor proporcionado por el proveedor de servicios.
</para>
</listitem>
</varlistentry>
@@ -47,7 +46,8 @@
<term><parameter>signature_method</parameter></term>
<listitem>
<para>
Este parámetro es opcional define cual método usar, por omisión es <constant>OAUTH_SIG_METHOD_HMACSHA1</constant> (HMAC-SHA1).
Este parámetro opcional define el método de firma utilizado.
Por omisión, es <constant>OAUTH_SIG_METHOD_HMACSHA1</constant> (HMAC-SHA1).
</para>
</listitem>
</varlistentry>
@@ -55,9 +55,9 @@
<term><parameter>auth_type</parameter></term>
<listitem>
<para>
Este parámetro es opcional define como pasar los parámetros OAuth
al lector, por omisión es
<constant>OAUTH_AUTH_TYPE_AUTHORIZATION</constant> (en la cabecerá
Este parámetro opcional define el método de paso de los
parámetros OAuth al proveedor de servicios. Por omisión, es
<constant>OAUTH_AUTH_TYPE_AUTHORIZATION</constant> (en el encabezado
<literal>Authorization</literal>).
</para>
</listitem>
@@ -65,7 +65,7 @@
</variablelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View File

@@ -1,13 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 1df54c547078be837f9b9c33dc3ac7f292f447c0 Maintainer: agarzon Status: ready -->
<!-- EN-Revision: af5f2f87b3b0bb9ee0f83ccb787a4e7db1eb6bd4 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="oauth.disabledebug" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>OAuth::disableDebug</refname>
<refpurpose>Desactiva la depuración detallada</refpurpose>
<refpurpose>Desactiva los mensajes de depuración</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
@@ -15,24 +16,24 @@
<void />
</methodsynopsis>
<para>
Desactiva la solicitud de información detallada (desactivado por omisión).
Alternativamente, la propiedad <link linkend="oauth.props.debug">debug</link> puede
ser establecida al valor &false; para desactivar el depurador.
Desactiva los mensajes de depuración. Se encuentra desactivado por omisión.
Puede definirse la propiedad <link linkend="oauth.props.debug">debug</link>
a &false; para desactivar la depuración.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
&no.function.parameters;
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&true;
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
@@ -46,17 +47,17 @@
</thead>
<tbody>
<row>
<entry>0.99.8</entry>
<entry>PECL oauth 0.99.8</entry>
<entry>
La propiedad <link linkend="oauth.props.debug">debug</link> fue agregada.
Se ha añadido la propiedad <link linkend="oauth.props.debug">debug</link>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -65,7 +66,7 @@
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View File

@@ -1,13 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 1df54c547078be837f9b9c33dc3ac7f292f447c0 Maintainer: agarzon Status: ready -->
<!-- EN-Revision: af5f2f87b3b0bb9ee0f83ccb787a4e7db1eb6bd4 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="oauth.disablesslchecks" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>OAuth::disableSSLChecks</refname>
<refpurpose>Desactiva la verificación SSL</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
@@ -15,25 +16,23 @@
<void />
</methodsynopsis>
<para>
Desactiva la verificación del certificado y servidor SSL,
esto no se recomiendo para entornos en producción. Alternativamente, el miembro
<parameter>sslChecks</parameter> puede ser puesto &false;
para desactivar la revisión.
Desactiva las verificaciones de certificados y de hosts SSL (activado por omisión).
Se recomienda no utilizar esta función en producción.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
&no.function.parameters;
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&true;
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
@@ -47,9 +46,9 @@
</thead>
<tbody>
<row>
<entry>0.99.8</entry>
<entry>PECL oauth 0.99.8</entry>
<entry>
El miembro <parameter>sslChecks</parameter> fue agregado
Se ha añadido la propiedad <parameter>debug</parameter>
</entry>
</row>
</tbody>
@@ -57,7 +56,7 @@
</informaltable>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -66,7 +65,7 @@
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View File

@@ -1,13 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 1df54c547078be837f9b9c33dc3ac7f292f447c0 Maintainer: agarzon Status: ready -->
<!-- EN-Revision: af5f2f87b3b0bb9ee0f83ccb787a4e7db1eb6bd4 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="oauth.enabledebug" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>OAuth::enableDebug</refname>
<refpurpose>Activa la depuración detallada</refpurpose>
<refpurpose>Activa los mensajes de depuración</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
@@ -15,25 +16,23 @@
<void />
</methodsynopsis>
<para>
Activa la solititud de información detallada útil para depurar,
la información de depuración es almacenada en el miembro <parameter>debugInfo</parameter>.
Alternativamente, el miembro <parameter>debug</parameter> puede
ser establecido a un valor no-&false; para activar el depurador.
Activa los mensajes de depuración, útiles en desarrollo, pero
innecesarios en producción.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
&no.function.parameters;
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&true;
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
@@ -47,17 +46,17 @@
</thead>
<tbody>
<row>
<entry>0.99.8</entry>
<entry>PECL oauth 0.99.8</entry>
<entry>
Los miembros <parameter>debug</parameter> y <parameter>debugInfo</parameter> fueron agregados.
Se añadió la propiedad <parameter>debug</parameter>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -66,7 +65,7 @@
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View File

@@ -1,13 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 1df54c547078be837f9b9c33dc3ac7f292f447c0 Maintainer: agarzon Status: ready -->
<!-- EN-Revision: 5537c5f3caee7b8c688bc3adef258687a8365cb4 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="oauth.enablesslchecks" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>OAuth::enableSSLChecks</refname>
<refpurpose>Activa la verificación SSL</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
@@ -15,22 +16,24 @@
<void />
</methodsynopsis>
<para>
Activa la verificación del certificado y servidor SSL (activado por omisión). Alternativamente, el miembro <parameter>sslChecks</parameter> puede ser puesto a un valor distinto a &false; para desactivar la revisión.
Activa las verificaciones de certificados y de hosts SSL (activado por omisión).
Alternativamente, la propiedad <link linkend="oauth.props.sslchecks">sslChecks</link> puede ser definida sobre
un valor diferente de &false; para activar las verificaciones SSL.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
&no.function.parameters;
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&true;
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
@@ -44,17 +47,17 @@
</thead>
<tbody>
<row>
<entry>0.99.8</entry>
<entry>PECL oauth 0.99.8</entry>
<entry>
El miembro <parameter>sslChecks</parameter> fue agregado
La propiedad <parameter>debug</parameter> ha sido añadida
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -63,7 +66,7 @@
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View File

@@ -1,13 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: e60158c00b2c8cdfabd794b53332f453334b19b0 Maintainer: agarzon Status: ready -->
<!-- EN-Revision: 976425d4f6eec32448be3cc22ec063015921b753 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="oauth.fetch" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>OAuth::fetch</refname>
<refpurpose>Obtiene un recurso protegido por OAuth</refpurpose>
<refpurpose>Lee un recurso protegido por OAuth</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
@@ -18,10 +19,10 @@
<methodparam choice="opt"><type>array</type><parameter>http_headers</parameter></methodparam>
</methodsynopsis>
<para>
Obtiene un recurso.
Lee un recurso protegido por OAuth.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -30,7 +31,7 @@
<term><parameter>protected_resource_url</parameter></term>
<listitem>
<para>
URL del recurso OAuth protegio.
URL del recurso protegido por OAuth.
</para>
</listitem>
</varlistentry>
@@ -38,7 +39,7 @@
<term><parameter>extra_parameters</parameter></term>
<listitem>
<para>
Parámetros adicionales para enviar con la petición del recurso.
Argumentos adicionales a enviar con la petición, al recurso.
</para>
</listitem>
</varlistentry>
@@ -46,14 +47,14 @@
<term><parameter>http_method</parameter></term>
<listitem>
<para>
Una de las <constant>OAUTH_HTTP_METHOD_*</constant>
<link linkend="oauth.constants">constantes OAUTH</link>, which includes
GET, POST, PUT, HEAD, or DELETE.
Una de las constantes <link linkend="oauth.constants">OAUTH constants</link>
<constant>OAUTH_HTTP_METHOD_<replaceable>*</replaceable></constant>, incluyendo
GET, POST, PUT, HEAD, o DELETE.
</para>
<para>
HEAD (<constant>OAUTH_HTTP_METHOD_HEAD</constant>) can be useful for
discovering information prior to the request (if OAuth credentials are
in the <literal>Authorization</literal> header).
HEAD (<constant>OAUTH_HTTP_METHOD_HEAD</constant>) puede ser útil
para descubrir información antes de la petición (si las autorizaciones
OAuth están en el encabezado <literal>Authorization</literal>).
</para>
</listitem>
</varlistentry>
@@ -61,21 +62,22 @@
<term><parameter>http_headers</parameter></term>
<listitem>
<para>
Encabezados cliente HTTP (como por ejemplo User-Agent, Accept, etc.)
Los encabezados HTTP del cliente (tales como <literal>User-Agent</literal>,
<literal>Accept</literal>, etc.)
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
@@ -89,20 +91,21 @@
</thead>
<tbody>
<row>
<entry>1.0.0</entry>
<entry>PECL oauth 1.0.0</entry>
<entry>
&oauth.changelog.error.null;
</entry>
</row>
<row>
<entry>0.99.5</entry>
<entry>PECL oauth 0.99.5</entry>
<entry>
El parámetro <parameter>http_method</parameter> fue agregado </entry>
Se añadió el argumento <parameter>http_method</parameter>
</entry>
</row>
<row>
<entry>0.99.8</entry>
<entry>PECL oauth 0.99.8</entry>
<entry>
El parámetro <parameter>http_headers</parameter> fue agregado
Se añadió el argumento <parameter>http_headers</parameter>
</entry>
</row>
</tbody>
@@ -110,12 +113,12 @@
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Ejemplo de <function>OAuth::fetch</function></title>
<title>Ejemplo con <function>OAuth::fetch</function></title>
<programlisting role="php">
<![CDATA[
<?php
@@ -129,8 +132,8 @@ try {
header("Content-Type: {$response_info["content_type"]}");
echo $oauth->getLastResponse();
} catch(OAuthException $E) {
echo "Excepción atrapada!\n";
echo "Respuesta: ". $E->lastResponse . "\n";
echo "Exception caught!\n";
echo "Response: ". $E->lastResponse . "\n";
}
?>
]]>
@@ -138,7 +141,7 @@ try {
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -149,7 +152,7 @@ try {
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View File

@@ -1,24 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 53d154b0f75eed67fc3081ce42f8638113829834 Maintainer: andresdzphp Status: ready -->
<!-- Reviewed: no Maintainer: andresdzphp -->
<!-- EN-Revision: b95d28e6ec86e4a71e012737d36ebdc1cf009180 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="oauth.generatesignature" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>OAuth::generateSignature</refname>
<refpurpose>Generar una firma</refpurpose>
<refpurpose>Genera una firma</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<modifier>public</modifier> <type>string</type><methodname>OAuth::generateSignature</methodname>
<modifier>public</modifier> <type class="union"><type>string</type><type>false</type></type><methodname>OAuth::generateSignature</methodname>
<methodparam><type>string</type><parameter>http_method</parameter></methodparam>
<methodparam><type>string</type><parameter>url</parameter></methodparam>
<methodparam choice="opt"><type>mixed</type><parameter>extra_parameters</parameter></methodparam>
</methodsynopsis>
<para>
Generar una firma basada en el método HTTP final, URL y un string/array de parámetros.
Genera una firma basada en el método HTTP final,
la URL y una cadena/array de parámetros.
</para>
</refsect1>
@@ -30,7 +31,7 @@
<term><parameter>http_method</parameter></term>
<listitem>
<para>
Método HTTP para la solicitud
Método HTTP para la petición.
</para>
</listitem>
</varlistentry>
@@ -38,7 +39,7 @@
<term><parameter>url</parameter></term>
<listitem>
<para>
URL de solicitud
URL de la petición.
</para>
</listitem>
</varlistentry>
@@ -46,7 +47,7 @@
<term><parameter>extra_parameters</parameter></term>
<listitem>
<para>
String o array de parámetros adicionales.
Cadena o array de parámetros adicionales.
</para>
</listitem>
</varlistentry>
@@ -56,11 +57,10 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Un string que contiene la firma generada &return.falseforfailure;
Una cadena que contiene la firma generada&return.falseforfailure;
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View File

@@ -1,13 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: cd5817f79f50178dcc2bc6d7332694ba669fa9bf Maintainer: agarzon Status: ready -->
<!-- EN-Revision: e41806c30bf6975e452c0d4ce35ab0984c2fa68c Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="oauth.getaccesstoken" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>OAuth::getAccessToken</refname>
<refpurpose>Obtiene el token de acceso</refpurpose>
<refpurpose>Recupera un token de acceso</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
@@ -15,13 +16,14 @@
<methodparam><type>string</type><parameter>access_token_url</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>auth_session_handle</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>verifier_token</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>http_method</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>http_method</parameter></methodparam>
</methodsynopsis>
<para>
Obtiene un token de acceso, secreto y cualquier parámetro de respuesta adicional del proveedor de servicio.
Lee un token de acceso, un secreto y cualquier información adicional en
un proveedor de servicios.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -30,7 +32,7 @@
<term><parameter>access_token_url</parameter></term>
<listitem>
<para>
URL al token de acceso de la API.
La URL a utilizar.
</para>
</listitem>
</varlistentry>
@@ -38,11 +40,11 @@
<term><parameter>auth_session_handle</parameter></term>
<listitem>
<para>
El manejador de autorización de sesión, este parámetro no existe
en la especificación OAuth 1.0 pero puede ser implementada
por muchos proveedores.
<link xlink:href="&url.oauth.scale;">Visite ScalableOAuth</link>
para más información.
El identificador de sesión. Este parámetro no existe
en las especificaciones OAuth 1.0, pero puede ser implementado
por grandes implementaciones. Véase
<link xlink:href="&url.oauth.scale;"><literal>ScalableOAuth</literal></link>
para más detalles.
</para>
</listitem>
</varlistentry>
@@ -50,36 +52,40 @@
<term><parameter>verifier_token</parameter></term>
<listitem>
<para>
Para los proveedores de servicio que soportan 1.0a, Un parámetro <parameter>verifier_token</parameter>
debe ser pasado mientras se solicita el token de acceso.
Si el parámetro <parameter>verifier_token</parameter> está presente en <parameter>$_GET</parameter>
o <parameter>$_POST</parameter> es pasado automáticamente y el solicitante ya no necesita
especificar el <parameter>verifier_token</parameter> (usualmente el token de acceso
es intercambiado en la URL del oauth_callback).
<link xlink:href="&url.oauth.scale;">Visite ScalableOAuth</link>
Para los proveedores de servicio que soportan 1.0a,
el parámetro <parameter>verifier_token</parameter> debe ser
proporcionado, al intercambiar el token de solicitud para obtener el token
de acceso. Si <parameter>verifier_token</parameter> está presente en
<parameter>$_GET</parameter> o <parameter>$_POST</parameter>, es
automáticamente pasado y el llamante no necesita especificar
el parámetro <parameter>verifier_token</parameter> (generalmente, el token
de acceso es intercambiado vía la URL de devolución <parameter>callback_url</parameter>).
Véase <link xlink:href="&url.oauth.scale;">ScalableOAuth</link>
para más información.
</para>
</listitem>
</varlistentry>
<varlistentry>
<varlistentry>
<term><parameter>http_method</parameter></term>
<listitem>
<para>
Método HTTP a usar, por ejemplo <literal>GET</literal> o <literal>POST</literal>.
Método HTTP a utilizar, por ejemplo
<literal>GET</literal> o <literal>POST</literal>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve un array que contiene las respuestas OAuth analizadas al tener éxito o &false; al fallar.
Devuelve un array que contiene la respuesta OAuth analizada, en caso de éxito,
y &false; en caso contrario.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
@@ -93,28 +99,28 @@
</thead>
<tbody>
<row>
<entry>1.0.0</entry>
<entry>PECL oauth 1.0.0</entry>
<entry>
&oauth.changelog.error.null;
</entry>
</row>
<row>
<entry>0.99.9</entry>
<entry>PECL oauth 0.99.9</entry>
<entry>
El parámetro <parameter>verifier_token</parameter> fue agregado
Se añadió el parámetro <parameter>verifier_token</parameter>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Ejemplo de <function>OAuth::getAccessToken</function></title>
<title>Ejemplo con <function>OAuth::getAccessToken</function></title>
<programlisting role="php">
<![CDATA[
<?php
@@ -125,7 +131,7 @@ try {
if(!empty($access_token_info)) {
print_r($access_token_info);
} else {
print "Falló obteniendo el token de acceso, la respuesta fue: " . $oauth->getLastResponse();
print "Error al obtener el token de acceso, la respuesta fue: " . $oauth->getLastResponse();
}
} catch(OAuthException $E) {
echo "Respuesta: ". $E->lastResponse . "\n";
@@ -146,7 +152,7 @@ Array
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -157,7 +163,7 @@ Array
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View File

@@ -1,22 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 53d154b0f75eed67fc3081ce42f8638113829834 Maintainer: andresdzphp Status: ready -->
<!-- EN-Revision: b95d28e6ec86e4a71e012737d36ebdc1cf009180 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="oauth.getlastresponseheaders" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>OAuth::getLastResponseHeaders</refname>
<refpurpose>Obtener encabezados de la última respuesta</refpurpose>
<refpurpose>Recupera los encabezados de la última respuesta</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<modifier>public</modifier> <type>string</type><methodname>OAuth::getLastResponseHeaders</methodname>
<modifier>public</modifier> <type class="union"><type>string</type><type>false</type></type><methodname>OAuth::getLastResponseHeaders</methodname>
<void />
</methodsynopsis>
<para>
Obtiene los encabezados de la última respuesta.
Recupera los encabezados de la última respuesta.
</para>
</refsect1>
@@ -28,11 +28,11 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Un string que contiene los encabezados de la última respuesta &return.falseforfailure;
Un &string; que contiene los encabezados de la última
respuesta&return.falseforfailure;
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View File

@@ -1,27 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 53d154b0f75eed67fc3081ce42f8638113829834 Maintainer: seros Status: ready -->
<!-- EN-Revision: b95d28e6ec86e4a71e012737d36ebdc1cf009180 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="oauth.getrequestheader" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>OAuth::getRequestHeader</refname>
<refpurpose>Generar un string de firma de cabecera OAuth</refpurpose>
<refpurpose>Genera una firma de encabezado OAuth</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<modifier>public</modifier> <type>string</type><methodname>OAuth::getRequestHeader</methodname>
<modifier>public</modifier> <type class="union"><type>string</type><type>false</type></type><methodname>OAuth::getRequestHeader</methodname>
<methodparam><type>string</type><parameter>http_method</parameter></methodparam>
<methodparam><type>string</type><parameter>url</parameter></methodparam>
<methodparam choice="opt"><type>mixed</type><parameter>extra_parameters</parameter></methodparam>
</methodsynopsis>
<para>
Generar un string de firma de cabecera OAuth basada en el método HTTP final, el URL y los parámetros de string/array
Genera una firma de encabezado OAuth basada en el método HTTP
final, así como en la URL y sus parámetros.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<variablelist>
@@ -37,7 +38,7 @@
<term><parameter>url</parameter></term>
<listitem>
<para>
URL para la petición.
URL de la petición.
</para>
</listitem>
</varlistentry>
@@ -45,21 +46,21 @@
<term><parameter>extra_parameters</parameter></term>
<listitem>
<para>
String o array de parámetros adicionales.
Parámetros adicionales (&string; o array).
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Un string que contiene la cabecera solicitada generada &return.falseforfailure;
Un &string; que contiene el encabezado generado de la petición
&return.falseforfailure;
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View File

@@ -1,26 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: cd5817f79f50178dcc2bc6d7332694ba669fa9bf Maintainer: agarzon Status: ready -->
<!-- EN-Revision: e41806c30bf6975e452c0d4ce35ab0984c2fa68c Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="oauth.getrequesttoken" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>OAuth::getRequestToken</refname>
<refpurpose>Obtiene un token de petición</refpurpose>
<refpurpose>Lee el token de solicitud</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<modifier>public</modifier> <type>array</type><methodname>OAuth::getRequestToken</methodname>
<methodparam><type>string</type><parameter>request_token_url</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>callback_url</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>http_method</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>http_method</parameter></methodparam>
</methodsynopsis>
<para>
Obtiene un token de petición, secreto y cualquier parámetro adicional de respuesta del proveedor de servicio.
Lee el token de solicitud, el secreto y cualquier información adicional
del proveedor de servicios.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -29,7 +31,7 @@
<term><parameter>request_token_url</parameter></term>
<listitem>
<para>
URL al token de solicitud de la API.
La URL de la que se debe obtener el token.
</para>
</listitem>
</varlistentry>
@@ -37,7 +39,10 @@
<term><parameter>callback_url</parameter></term>
<listitem>
<para>
URL del callback OAuth. Si <parameter>callback_url</parameter> es pasado y es un valor vacío, este es puesto a "oob" para satisfacer las exigencias de OAuth 2009.1 advisory.
URL de devolución de llamada OAuth. Si <parameter>callback_url</parameter> es pasado
y su valor es vacío, entonces toma el valor de
<literal>"oob"</literal> para cumplir con los requisitos de
<literal>OAuth 2009.1 advisory</literal>.
</para>
</listitem>
</varlistentry>
@@ -45,21 +50,23 @@
<term><parameter>http_method</parameter></term>
<listitem>
<para>
Método HTTP a usar, por ejemplo <literal>GET</literal> o <literal>POST</literal>.
Método HTTP a utilizar, por ejemplo
<literal>GET</literal> o <literal>POST</literal>.
</para>
</listitem>
</varlistentry>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve un array conteniendo las respuestas OAuth analizadas al tener éxitoo &false; al fallar.
Devuelve un array que contiene la respuesta OAuth analizada, en caso de éxito,
o &false; en caso de fallo.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
@@ -73,28 +80,28 @@
</thead>
<tbody>
<row>
<entry>1.0.0</entry>
<entry>PECL oauth 1.0.0</entry>
<entry>
&oauth.changelog.error.null;
</entry>
</row>
<row>
<entry>0.99.9</entry>
<entry>PECL oauth 0.99.9</entry>
<entry>
El parámetro <parameter>callback_url</parameter> fue agregado
Se ha añadido el parámetro <parameter>callback_url</parameter>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Ejemplo de <function>OAuth::getRequestToken</function></title>
<title>Ejemplo con <function>OAuth::getRequestToken</function></title>
<programlisting role="php">
<![CDATA[
<?php
@@ -104,10 +111,10 @@ try {
if(!empty($request_token_info)) {
print_r($request_token_info);
} else {
print "Falló obteniendo el token de petición, la respuesta fue: " . $oauth->getLastResponse();
print "Failed fetching request token, response was: " . $oauth->getLastResponse();
}
} catch(OAuthException $E) {
echo "Respuesta: ". $E->lastResponse . "\n";
echo "Response: ". $E->lastResponse . "\n";
}
?>
]]>
@@ -125,7 +132,7 @@ Array
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -135,7 +142,7 @@ Array
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View File

@@ -1,13 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 62db3b394233900c39f39d2af685665089bd6a34 Maintainer: agarzon Status: ready -->
<!-- EN-Revision: af5f2f87b3b0bb9ee0f83ccb787a4e7db1eb6bd4 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="oauth.setauthtype" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>OAuth::setAuthType</refname>
<refpurpose>Establece el tipo de autorización</refpurpose>
<refpurpose>Define el tipo de autorización</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
@@ -15,25 +16,27 @@
<methodparam><type>int</type><parameter>auth_type</parameter></methodparam>
</methodsynopsis>
<para>
Establece donde un parámetro OAuthdebería ser pasado.
Configura los parámetros OAuth.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>auth_type</parameter></term>
<listitem>
<para>
<parameter>auth_type</parameter> puede ser una de las siguientes banderas (in orden descendente de preferencia según OAuth 1.0 sección 5.2):
<variablelist>
<varlistentry>
<term><constant>OAUTH_AUTH_TYPE_AUTHORIZATION</constant></term>
<listitem>
<listitem>
<para>
<parameter>auth_type</parameter> puede ser una de las siguientes opciones
(clasificadas por orden decreciente de preferencia,
como se especifica en la sección 5.2 de OAuth 1.0) :
<variablelist>
<varlistentry>
<term><constant>OAUTH_AUTH_TYPE_AUTHORIZATION</constant></term>
<listitem>
<simpara>
Pasa los parámetros OAuth en la cabecera de <literal>Authorization</literal> HTTP.
Pasa los parámetros OAuth en el encabezado HTTP <literal>Authorization</literal>.
</simpara>
</listitem>
</varlistentry>
@@ -41,7 +44,7 @@
<term><constant>OAUTH_AUTH_TYPE_FORM</constant></term>
<listitem>
<simpara>
Anexa los parámetros OAuth al cuerpo de petición HTTP POST.
Añade los parámetros OAuth al cuerpo de la petición HTTP POST.
</simpara>
</listitem>
</varlistentry>
@@ -49,7 +52,7 @@
<term><constant>OAUTH_AUTH_TYPE_URI</constant></term>
<listitem>
<simpara>
Anexa los parámetros OAuth a la URI de petición.
Añade los parámetros OAuth a la URI.
</simpara>
</listitem>
</varlistentry>
@@ -68,15 +71,15 @@
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve &true; si el parámetro es correctamente establecido, de otra manera &false;
(Ejemplo, si un inválido parámetro <parameter>auth_type</parameter> es pasado.)
Devuelve &true; si un parámetro es definido correctamente,
&false; en los demás casos.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
@@ -90,7 +93,7 @@
</thead>
<tbody>
<row>
<entry>1.0.0</entry>
<entry>PECL oauth 1.0.0</entry>
<entry>
&oauth.changelog.error.null;
</entry>
@@ -100,7 +103,7 @@
</informaltable>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View File

@@ -1,13 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 81ba8c58c0bd938de19a7e9c40db23d847903be8 Maintainer: agarzon Status: ready -->
<!-- EN-Revision: af5f2f87b3b0bb9ee0f83ccb787a4e7db1eb6bd4 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="oauth.setcapath" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>OAuth::setCAPath</refname>
<refpurpose>Establece la ruta a CA y su información</refpurpose>
<refpurpose>Define el camino y la información de la CA</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
@@ -16,14 +17,14 @@
<methodparam choice="opt"><type>string</type><parameter>ca_info</parameter></methodparam>
</methodsynopsis>
<para>
Establece el Certificado de Autoridad (<acronym>CA</acronym>), tanto la ruta
como la información.
Define el certificado de autoridad (<acronym>CA</acronym>), tanto para
el camino como para la información.
</para>
&warn.undocumented.func;
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<variablelist>
@@ -31,7 +32,7 @@
<term><parameter>ca_path</parameter></term>
<listitem>
<para>
La ruta CA a ser establecida.
El camino de la CA a definir.
</para>
</listitem>
</varlistentry>
@@ -39,22 +40,22 @@
<term><parameter>ca_info</parameter></term>
<listitem>
<para>
La ruta de información CA a ser establecido.
La información de la CA a definir.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve &true; al tener éxitos, o &false; si tanto <parameter>ca_path</parameter>
o <parameter>ca_info</parameter> son considerados como inválidos.
Retorna &true; en caso de éxito, o &false; si <parameter>ca_path</parameter>
o <parameter>ca_info</parameter> son considerados inválidos.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
@@ -68,7 +69,7 @@
</thead>
<tbody>
<row>
<entry>1.0.0</entry>
<entry>PECL oauth 1.0.0</entry>
<entry>
&oauth.changelog.error.null;
</entry>
@@ -78,14 +79,14 @@
</informaltable>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<simplelist>
<member><methodname>OAuth::getCaPath</methodname></member>
</simplelist>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View File

@@ -1,13 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: e60158c00b2c8cdfabd794b53332f453334b19b0 Maintainer: agarzon Status: ready -->
<!-- EN-Revision: af5f2f87b3b0bb9ee0f83ccb787a4e7db1eb6bd4 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="oauth.setnonce" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>OAuth::setNonce</refname>
<refpurpose>Configura el nonce para las solicitudes posteriores</refpurpose>
<refpurpose>Configura el nonce OAuth</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
@@ -15,10 +16,10 @@
<methodparam><type>string</type><parameter>nonce</parameter></methodparam>
</methodsynopsis>
<para>
Establece el nonce para todas las solicitudes posteriores.
Configura el nonce OAuth para las llamadas siguientes.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -27,22 +28,23 @@
<term><parameter>nonce</parameter></term>
<listitem>
<para>
El valor para oauth_nonce.
El valor de oauth_nonce.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve &true; si tiene éxito, o &false; si
<parameter>nonce</parameter> es considerado como inválido.
Devuelve &true; en caso de éxito, o &false; si el
argumento <parameter>nonce</parameter> es considerado
inválido.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
@@ -56,7 +58,7 @@
</thead>
<tbody>
<row>
<entry>1.0.0</entry>
<entry>PECL oauth 1.0.0</entry>
<entry>
&oauth.changelog.error.null;
</entry>
@@ -66,7 +68,7 @@
</informaltable>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -77,7 +79,7 @@
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View File

@@ -1,13 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: e60158c00b2c8cdfabd794b53332f453334b19b0 Maintainer: agarzon Status: ready -->
<!-- EN-Revision: af5f2f87b3b0bb9ee0f83ccb787a4e7db1eb6bd4 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="oauth.setrsacertificate" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>OAuth::setRSACertificate</refname>
<refpurpose>establece el certificado RSA</refpurpose>
<refpurpose>Define el certificado RSA</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
@@ -15,13 +16,13 @@
<methodparam><type>string</type><parameter>cert</parameter></methodparam>
</methodsynopsis>
<para>
Establece el certificado <acronym>RSA</acronym>.
Define el certificado <acronym>RSA</acronym>.
</para>
&warn.undocumented.func;
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<variablelist>
@@ -35,15 +36,15 @@
</varlistentry>
</variablelist>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve &true; si tiene éxito, o &false; al fallar (Ejemplo, el certificado RSA
no se pudo procesar.)
Devuelve &true; en caso de éxito, o &false; si ocurre un error
(es decir, el certificado RSA no puede ser analizado).
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
@@ -57,7 +58,7 @@
</thead>
<tbody>
<row>
<entry>1.0.0</entry>
<entry>PECL oauth 1.0.0</entry>
<entry>
&oauth.changelog.error.null;
</entry>
@@ -67,11 +68,11 @@
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<example xml:id="oauth.setrsacertificate.example">
<title>Ejemplo de <methodname>OAuth::setRsaCertificate</methodname></title>
<title>Ejemplo con <methodname>OAuth::setRsaCertificate</methodname></title>
<programlisting role="php">
<![CDATA[
<?php
@@ -83,14 +84,14 @@ $consume->setRSACertificate(file_get_contents('test.pem'));
</programlisting>
</example>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<simplelist>
<member><methodname>OAuth::setCaPath</methodname></member>
</simplelist>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View File

@@ -1,13 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: f4aa8ee5554325362b307c45c30c5ecccd05b1a2 Maintainer: agarzon Status: ready -->
<!-- EN-Revision: af5f2f87b3b0bb9ee0f83ccb787a4e7db1eb6bd4 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="oauth.settimestamp" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>OAuth::setTimestamp</refname>
<refpurpose>Establece el timestamp</refpurpose>
<refpurpose>Define el timestamp</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
@@ -15,13 +16,13 @@
<methodparam><type>string</type><parameter>timestamp</parameter></methodparam>
</methodsynopsis>
<para>
Establece el timestamp de OAuth para las subsecuentes peticiones.
Define el timestamp OAuth para las próximas peticiones.
</para>
&warn.undocumented.func;
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<variablelist>
@@ -35,15 +36,14 @@
</varlistentry>
</variablelist>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve &true;, a menos que <parameter>timestamp</parameter> sea inválido, en cuyo caso
&false; será devuelto.
Retorna &true;, o &false; si <parameter>timestamp</parameter> es inválido.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
@@ -57,7 +57,7 @@
</thead>
<tbody>
<row>
<entry>1.0.0</entry>
<entry>PECL oauth 1.0.0</entry>
<entry>
&oauth.changelog.error.null;
</entry>
@@ -67,14 +67,14 @@
</informaltable>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<simplelist>
<member><methodname>OAuth::setNonce</methodname></member>
</simplelist>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View File

@@ -1,56 +1,56 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: fe5e528ec97c8cac06bbd97aa2ad5af598bcb875 Maintainer: agarzon Status: ready -->
<!-- EN-Revision: b1ef3427055358ff6d092ddb0a8b5e748a7bbbb2 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<reference xml:id="class.oauthprovider" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Clase OAuthProvider</title>
<title>La clase OAuthProvider</title>
<titleabbrev>OAuthProvider</titleabbrev>
<partintro>
<!-- {{{ OAuthProvider intro -->
<!-- {{{ OAuthProvider intro -->
<section xml:id="oauthprovider.intro">
&reftitle.intro;
<para>
Administra una clase OAuthProvider.
Gestiona una clase OAuthProvider.
</para>
<para>
Vea también el tutorial externo llamado
<link xlink:href="&url.oauth.provider.tutorial;">Escribiendo un proveedor de servicios OAuth</link>,
Que tiene un enfoque práctico a la prestación de este servicio. También hay
<link xlink:href="&url.oauth.examples;">Ejemplos de proveedor OAuth</link> en la fuente de la extensión
Oauth.
Consúltese también un tutorial externo denominado
<link xlink:href="&url.oauth.provider.tutorial;">Escribir un servicio OAuth Provider</link>,
que proporciona un buen enfoque para ofrecer este servicio. Asimismo, existen
<link xlink:href="&url.oauth.examples;">ejemplos OAuth provider</link> directamente
en las fuentes de la extensión OAuth.
</para>
</section>
<!-- }}} -->
<!-- }}} -->
<section xml:id="oauthprovider.synopsis">
&reftitle.classsynopsis;
<!-- {{{ Synopsis -->
<!-- {{{ Synopsis -->
<classsynopsis>
<ooclass><classname>OAuthProvider</classname></ooclass>
<!-- {{{ Class synopsis -->
<!-- {{{ Class synopsis -->
<classsynopsisinfo>
<ooclass>
<classname>OAuthProvider</classname>
</ooclass>
</classsynopsisinfo>
<!-- }}} -->
<classsynopsisinfo role="comment">Methods</classsynopsisinfo>
<!-- }}} -->
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.oauthprovider')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[1])" />
</classsynopsis>
<!-- }}} -->
<!-- }}} -->
</section>
</partintro>
&reference.oauth.entities.oauthprovider;
</reference>
<!-- Keep this comment at the end of the file

View File

@@ -1,13 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 6b65b2d86df7e3ac423c23a3c8358672b0d9033c Maintainer: agarzon Status: ready -->
<!-- EN-Revision: 976425d4f6eec32448be3cc22ec063015921b753 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="oauthprovider.checkoauthrequest" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>OAuthProvider::checkOAuthRequest</refname>
<refpurpose>Revisa una petición OAuth</refpurpose>
<refpurpose>Verifica una petición OAuth</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
@@ -16,13 +17,13 @@
<methodparam choice="opt"><type>string</type><parameter>method</parameter></methodparam>
</methodsynopsis>
<para>
Revisa una petición OAuth.
Verifica una petición OAuth.
</para>
&warn.undocumented.func;
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<variablelist>
@@ -30,7 +31,7 @@
<term><parameter>uri</parameter></term>
<listitem>
<para>
La <acronym>URI</acronym> opcional, o punto final.
La <acronym>URI</acronym>, opcional, o un punto final.
</para>
</listitem>
</varlistentry>
@@ -38,36 +39,36 @@
<term><parameter>method</parameter></term>
<listitem>
<para>
El método<acronym>HTTP</acronym>. opcionalmente pasar una de las
<constant>OAUTH_HTTP_METHOD_*</constant> <link linkend="oauth.constants">Constantes OAuth</link>.
El método <acronym>HTTP</acronym>. Opcional; pase una constante entre las
<link linkend="oauth.constants">constantes OAuth</link> <constant>OAUTH_HTTP_METHOD_<replaceable>*</replaceable></constant>.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.void;
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<para>
Emite un error <constant>E_ERROR</constant> si
el método HTTP no puede ser detectado.
Emite un error de nivel <constant>E_ERROR</constant> si el método
HTTP no puede ser detectado.
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<simplelist>
<member><methodname>OAuthProvider::reportProblem</methodname></member>
</simplelist>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View File

@@ -1,25 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 46b1d8ab8ff801b67995aa2a2e1b934fe237b239 Maintainer: agarzon Status: ready -->
<!-- EN-Revision: b8758b0605e80c4e3610137b7502a6abeea5c69b Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="oauthprovider.generatetoken" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>OAuthProvider::generateToken</refname>
<refpurpose>Genera un token aleatorio</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<modifier>final</modifier> <modifier>public</modifier> <modifier>static</modifier> <type>string</type><methodname>OAuthProvider::generateToken</methodname>
<methodparam><type>int</type><parameter>size</parameter></methodparam>
<methodparam choice="opt"><type>bool</type><parameter>strong</parameter><initializer>false</initializer></methodparam>
<methodparam choice="opt"><type>bool</type><parameter>strong</parameter><initializer>&false;</initializer></methodparam>
</methodsynopsis>
<para>
Genera una <type>string</type> de bytes pseudo-aleatorios.
Genera un &string; de bytes pseudo-aleatorios.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<variablelist>
@@ -27,7 +28,7 @@
<term><parameter>size</parameter></term>
<listitem>
<para>
La longitud The desired token length, in terms of bytes.
La longitud deseada del token, en bytes.
</para>
</listitem>
</varlistentry>
@@ -35,37 +36,36 @@
<term><parameter>strong</parameter></term>
<listitem>
<para>
Establecer a &true; significa que <literal>/dev/random</literal> será usada para
la entropía, de lo contrario <literal>/dev/urandom</literal> será usado.
Este parámetro es ignorado en Windows.
Definido como &true;, indica que se utilizará <literal>/dev/random</literal>,
de lo contrario, se utilizará <literal>/dev/urandom</literal>. Este parámetro es ignorado en Windows.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
El token generado, como un <type>string</type> de bytes.
El token generado, en forma de &string; de bytes.
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<para>
Si el parámetro <parameter>strong</parameter> es &true;, entonces un
error <constant>E_WARNING</constant> será emitido cuando la implementación
<function>rand</function> sea usada para rellenar
los restantes bytes aleatorios (Ejemplo, cuando no suficientes datos aleatorios fueron encontrados,
inicialmente).
Si el parámetro <parameter>strong</parameter> es &true;, entonces se emitirá
una advertencia de nivel <constant>E_WARNING</constant> cuando la
función de devolución de llamada <function>rand</function> se utilice para completar
los bytes aleatorios faltantes (es decir, cuando no hay suficientes datos
aleatorios inicialmente).
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<example>
<title>Ejemplo de <function>OAuthProvider::generateToken</function></title>
<title>Ejemplo con <function>OAuthProvider::generateToken</function></title>
<programlisting role="php">
<![CDATA[
<?php
@@ -88,17 +88,18 @@ b6a82c27
</screen>
</example>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Cuando no suficientes datos aleatorios están disponibles para el sistema, esta función
llenará los restantes bytes aleatorios usando la implementación interna de PHP <function>rand</function>.
Cuando no hay suficientes datos aleatorios disponibles en el sistema,
esta función completará los bytes faltantes utilizando la función
interna de PHP <function>rand</function>.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<simplelist>
@@ -106,7 +107,7 @@ b6a82c27
<member><function>mcrypt_create_iv</function></member>
</simplelist>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View File

@@ -1,11 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 81ba8c58c0bd938de19a7e9c40db23d847903be8 Maintainer: agarzon Status: ready -->
<!-- EN-Revision: b8758b0605e80c4e3610137b7502a6abeea5c69b Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="oauthprovider.reportproblem" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>OAuthProvider::reportProblem</refname>
<refpurpose>Reportar un problema</refpurpose>
<refpurpose>Se informa sobre un problema</refpurpose>
</refnamediv>
<refsect1 role="description">
@@ -13,13 +14,14 @@
<methodsynopsis>
<modifier>final</modifier> <modifier>public</modifier> <modifier>static</modifier> <type>string</type><methodname>OAuthProvider::reportProblem</methodname>
<methodparam><type>string</type><parameter>oauthexception</parameter></methodparam>
<methodparam choice="opt"><type>bool</type><parameter>send_headers</parameter><initializer>true</initializer></methodparam>
<methodparam choice="opt"><type>bool</type><parameter>send_headers</parameter><initializer>&true;</initializer></methodparam>
</methodsynopsis>
<para>
Sucede en un problema como <classname>OAuthException</classname>, con posibles problemas listados
en la sección <link linkend="oauth.constants">OAuth constants</link>.
Se informa sobre un problema en forma de excepción
<classname>OAuthException</classname>; los problemas posibles se enumeran
en la sección de las <link linkend="oauth.constants">constantes OAuth</link>.
</para>
&warn.undocumented.func;
</refsect1>
@@ -31,7 +33,7 @@
<term><parameter>oauthexception</parameter></term>
<listitem>
<para>
La <classname>OAuthException</classname>.
La excepción <classname>OAuthException</classname>.
</para>
</listitem>
</varlistentry>

View File

@@ -1,38 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 9f317636b9eed094aa437c88f378af2f87809797 Maintainer: agarzon Status: ready -->
<!-- EN-Revision: 48ce43fe79fa0c9f31f187ea8ec995b4cb13037e Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<chapter xml:id="oauth.setup" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
&reftitle.setup;
<section xml:id="oauth.requirements">
&reftitle.required;
<para>
PECL/oauth requiere PHP 5.1 o superior, ext/hash y ext/pcre.
PECL/oauth requiere PHP 5.1 o una versión más reciente, así como las extensiones
ext/hash y ext/pcre.
</para>
<para>
PECL/oauth puede requerir opcionalmente libcurl si se selecciona
en el momento de compilación. Si se configura con libcurl, debe ser
compilado con soporte HTTPS.
PECL/oauth puede también requerir la biblioteca libcurl
si fue seleccionada durante la compilación. En tal caso, PECL/oauth debe también ser compilado con
soporte HTTPS.
</para>
</section>
<!-- {{{ Installation -->
&reference.oauth.configure;
<!-- }}} -->
<!-- {{{ Configuration -->
<section xml:id="oauth.configuration">
&reftitle.runtime;
&no.config;
</section>
<!-- }}} -->
<section xml:id="oauth.resources">
&reftitle.resources;
&no.resource;
</section>
</chapter>
<!-- Keep this comment at the end of the file

View File

@@ -1,28 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 2cbc05daa73bce1e2e18335a0ff498bf07074101 Maintainer: seros Status: ready -->
<!-- Reviewed: yes Maintainer: seros -->
<!-- EN-Revision: 86177fa035acc7fdb972855bdd6c0b19edd505cd Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<book xml:id="book.oci8" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<?phpdoc extension-membership="bundledexternal" ?>
<?phpdoc extension-membership="pecl" ?>
<title>Oracle OCI8</title>
<titleabbrev>OCI8</titleabbrev>
<!-- {{{ preface -->
<preface xml:id="intro.oci8">
&reftitle.intro;
<warning>
<simpara>
Esta extensión está <emphasis>SEPARADA</emphasis> a partir de PHP 8.4.0.
</simpara>
</warning>
<para>
Estas funciones permiten acceder a Oracle Database 12<emphasis>c</emphasis>, 11<emphasis>g</emphasis>, 10<emphasis>g</emphasis>, 9<emphasis>i</emphasis>
y 8<emphasis>i</emphasis>. Admiten sentencias SQL y PL/SQL. Sus características básicas
incluyen el control de transacciones, la vinculación de variables de PHP a parámetros de
sustitución de Oracle, y la admisión de tipos de objetos grandes (LOB) y colecciones.
Las características de escalabilidad de Oracle, como el Agrupamiento de Conexiones
Residentes de Bases de Datos (DRCP por sus siglás en inglés),
también tienen soporte.
Estas funciones permiten acceder a las bases de datos Oracle.
Soportan las comandos SQL y PL/SQL. Las funciones básicas
incluyen el control de transacción, la ligadura de variables PHP con contenedores Oracle,
el soporte de los tipos de grandes objetos (LOB) y de las colecciones.
Las funciones de extensibilidad de Oracle, tales como Database
Resident Connection Pooling (DRCP) y el caché de resultados también
son soportadas.
</para>
</preface>
<!-- }}} -->
&reference.oci8.setup;
&reference.oci8.constants;
&reference.oci8.examples;
@@ -35,7 +39,7 @@
&reference.oci8.ocicollection;
&reference.oci8.ocilob;
&reference.oci8.aliases;
</book>
<!-- Keep this comment at the end of the file
@@ -58,4 +62,3 @@ vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@@ -1,56 +1,261 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: ba08db8805ddb14cbab613c893dd47eacbda22f2 Maintainer: seros Status: ready -->
<!-- EN-Revision: 5e41012cfdf8f2eff5fa56de446c7656afac536c Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<section xml:id="oci8.installation">
&reftitle.install;
<section xml:id="oci8.configure" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Configurar PHP con OCI8</title>
<title>Configuración de PHP con OCI8</title>
<para>
Revise la sección
previa <link linkend="oci8.requirements">Requerimientos</link>
antes de configurar OCI8.
Revísese la sección anterior sobre los
<link linkend="oci8.requirements">Requisitos previos</link> antes de configurar OCI8.
</para>
<para>
Para habilitar la extensión OCI8 se ha de configurar PHP con la opción
<option role="configure">--with-oci8</option>.
Antes de iniciar el servidor web, OCI8, típicamente, requiere varias
variables de entorno (ver a continuación) para localizar las bibliotecas,
para apuntar a archivos de configuración, y para definir algunas
propiedades básicas como el juego de caracteres utilizado por las bibliotecas
OCI8. Las variables deben ser definidas <emphasis>antes</emphasis> del inicio
de cualquier proceso PHP.
</para>
<para>
Antes de iniciar el servidor web, OCI8 normalmente necesita diversas
variables de entorno de Oracle (véase abajo) para localizar bibliotecas, apuntar
a ficheros de configuración, y establecer algunas propiedades básicas como el conjunto
de caracteres usado por las bibliotecas de Oracle. Las variables deben ser establecidas
<emphasis>antes</emphasis> de que se inicie cualquier proceso de PHP.
</para>
<para>
El binario de PHP debe vincularse con la misma, o más reciente, versión mayor de las
bibliotecas de Oracle con las que se configuró. Por ejemplo, si se construyó
OCI8 con las bibliotecas de Oracle 11.2, entonces PHP debería también PHP usarse
y ejecutarse con la bibliotecas de Oracle 11.2. Las aplicaciones de PHP pueden conectarse a
otras versiones Oracle Database, ya que Oracle posee compatibilidad cliente-servidor entre versiones.
El binario PHP debe ser enlazado con las mismas (o versiones más recientes)
de las bibliotecas Oracle para las cuales ha sido configurado. Por ejemplo,
si se compila OCI8 con las bibliotecas Oracle 19, entonces PHP
también debe ser desplegado y ejecutado con las bibliotecas Oracle 19.
Las aplicaciones PHP pueden conectarse a otras versiones de bases
de datos Oracle, sabiendo que Oracle contiene compatibilidades de versiones
de los diferentes clientes - servidores.
</para>
</section>
<section>
<title>Instalar OCI8 con una extensión compartida</title>
<para>
La opciones de configuración <literal>shared</literal>
construye OCI8 como una biblioteca compartida que puede ser cargada dinámicamente en
PHP. La construcción de una extensión compartida permite que OCI8 sea actualizada fácilmente
sin que tenga impacto sobre el resto de PHP.
</para>
<para>
Se ha de configurar OCI8 usando una de las siguientes opciones de configuración:
<title>Instalación de OCI8 desde PECL utilizando el comando pecl</title>
<para xmlns:xlink="http://www.w3.org/1999/xlink">
La extensión OCI8 puede ser añadida a una instalación PHP existente utilizando
el repositorio <link xlink:href="&url.pecl.package;oci8">PECL</link>.
</para>
<para>
<itemizedlist>
<listitem>
<para>
Si se usan las bibliotecas <link xmlns="http://docbook.org/ns/docbook"
Si se encuentra detrás de un firewall, defínase el proxy de PEAR, por ejemplo:
</para>
<para>
<informalexample>
<screen>
<![CDATA[
pear config-set http_proxy http://my-proxy.example.com:80/
]]>
</screen>
</informalexample>
</para>
</listitem>
<listitem>
<para>
Ejecútese:
</para>
<para>
<informalexample>
<screen>
<![CDATA[
pecl install oci8
]]>
</screen>
</informalexample>
</para>
<para>
Para PHP 7, utilícese <literal>pecl install oci8-2.2.0</literal>.
</para>
</listitem>
<listitem>
<para>
Cuando se le solicite, introdúzcase el valor de <literal>$ORACLE_HOME</literal> o
<literal>instantclient,/ruta/al/directorio/instant/client/lib</literal>.
</para>
<para>
Nota: No se introduzcan nombres de variables como <literal>$ORACLE_HOME</literal>
o <literal>$HOME</literal> ya que <literal>pecl</literal> no los
expandirá. En su lugar, introdúzcase una ruta expandida, por ejemplo <literal>/opt/oracle/product/19c/dbhome_1</literal>
o <literal>instantclient,/Users/monnom/Descargas/instantclient_19_8</literal>.
</para>
</listitem>
<listitem>
<para>
Si se obtiene un error <literal>oci8_dtrace_gen.h: No existe el archivo o
directorio</literal>, esto significa que PHP ha sido compilado
con <link linkend="features.dtrace">DTrace Dynamic Tracing</link> activado.
Instálese utilizando el comando:
</para>
<para>
<informalexample>
<screen>
<![CDATA[
$ export PHP_DTRACE=yes
$ pecl install oci8
]]>
</screen>
</informalexample>
</para>
</listitem>
<listitem>
<para>
Modifíquese el archivo &php.ini; y añádase la línea:
</para>
<para>
<informalexample>
<screen>
<![CDATA[
extension=oci8.so
]]>
</screen>
</informalexample>
</para>
<para>
Asegúrese de que la directiva &php.ini;
<link linkend="ini.extension-dir">extension_dir</link> está
definida en el directorio en el cual <filename>oci8.so</filename> ha sido instalado.
</para>
</listitem>
</itemizedlist>
</para>
</section>
<section>
<title>Instalación de OCI8 desde PECL utilizando phpize</title>
<para xmlns:xlink="http://www.w3.org/1999/xlink">
Para instalar OCI8 en una instalación PHP existente cuando
el comando <literal>pecl</literal> no está disponible, descárguese manualmente
el paquete OCI8 <link xlink:href="&url.pecl.package;oci8">PECL</link>,
por ejemplo <filename>oci8-3.0.0.tgz</filename>.
</para>
<para>
<itemizedlist>
<listitem>
<para>
Extraer el paquete:
</para>
<para>
<informalexample>
<screen>
<![CDATA[
tar -zxf oci8-3.0.0.tgz
cd oci8-3.0.0
]]>
</screen>
</informalexample>
</para>
</listitem>
<listitem>
<para>
Preparar el paquete:
</para>
<para>
<informalexample>
<screen>
<![CDATA[
phpize
]]>
</screen>
</informalexample>
</para>
</listitem>
<listitem>
<para>
Configurar el paquete utilizando <literal>$ORACLE_HOME</literal> o Instant Client.
</para>
<para>
<informalexample>
<screen>
<![CDATA[
./configure -with-oci8=shared,$ORACLE_HOME
]]>
</screen>
</informalexample>
</para>
<para>
o
</para>
<para>
<informalexample>
<screen>
<![CDATA[
./configure -with-oci8=shared,instantclient,/ruta/a/instant/client/lib
]]>
</screen>
</informalexample>
</para>
</listitem>
<listitem>
<para>
Instalar el paquete:
</para>
<para>
<informalexample>
<screen>
<![CDATA[
make install
]]>
</screen>
</informalexample>
</para>
</listitem>
<listitem>
<para>
Si se obtiene un error <literal>oci8_dtrace_gen.h: No existe el archivo o
directorio</literal>, esto significa que PHP ha sido compilado
con <link linkend="features.dtrace">DTrace Dynamic Tracing</link> activado.
Ejecútese nuevamente los comandos <literal>configure</literal> y <literal>make</literal>
después de haber definido esta variable de entorno:
</para>
<para>
<informalexample>
<screen>
<![CDATA[
$ export PHP_DTRACE=yes
]]>
</screen>
</informalexample>
</para>
</listitem>
<listitem>
<para>
Modifíquese el archivo &php.ini; y añádase la línea:
</para>
<para>
<informalexample>
<screen>
<![CDATA[
extension=oci8.so
]]>
</screen>
</informalexample>
</para>
<para>
Asegúrese de que la directiva &php.ini;
<link linkend="ini.extension-dir">extension_dir</link> está
configurada en el directorio en el cual <filename>oci8.so</filename>
ha sido instalado.
</para>
</listitem>
</itemizedlist>
</para>
</section>
<section>
<title>Instalación de OCI8 como extensión compartida durante la compilación de PHP</title>
<para>
Si se compila PHP a partir del código fuente, la opción de configuración <literal>shared</literal> puede ser utilizada para construir OCI8 como una biblioteca compartida que puede ser cargada dinámicamente en PHP. La construcción de una extensión compartida permite a OCI8 ser fácilmente actualizado sin afectar al resto de PHP.
</para>
<para>
Configúrese OCI8 utilizando una de las siguientes opciones de configuración.
</para>
<para>
<itemizedlist>
<listitem>
<para>
Si se utilizan las bibliotecas gratuitas <link xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:href="&url.oracle.instant.client;">Oracle Instant
Client</link> gratuitas, se ha de hacer lo siguiente:
Client</link>, hágase lo siguiente:
</para>
<para>
<informalexample>
@@ -62,13 +267,13 @@
</informalexample>
</para>
<para>
Si Instant Client está instalado desde ficheros ZIP, asegúrese de crear
el enlace simbólico de la biblioteca primero, por ejemplo <literal>ln -s
Si Instant Client 12.2 (o una versión anterior) está instalado a partir de archivos ZIP, asegúrese de crear
primero el enlace simbólico a la biblioteca, por ejemplo <literal>ln -s
libclntsh.so.12.1 libclntsh.so</literal>.
</para>
<para>
Si se usa una instalación de Oracle Instant Client basada en RPM, la línea
de confiugraicón se parecerá a esta:
Si se utiliza una instalación basada en RPM de Oracle Instant Client,
la línea de configuración se verá así:
</para>
<para>
<informalexample>
@@ -80,18 +285,12 @@
</informalexample>
</para>
<para>
Por ejemplo, <option role="configure">--with-oci8=shared,instantclient,/usr/lib/oracle/12.1/client/lib</option>
</para>
<para>
Nótese que el soporte para Oracle Instant Client apareció primero en PHP
4.3.11 y 5.0.4 y que originalmente se utilizaba la opción
<option role="configure">--with-oci8-instant-client</option> para
configurar PHP.
</para>
Por ejemplo, <option role="configure">--with-oci8=shared,instantclient,/usr/lib/oracle/19.9/client/lib</option>
</para>
</listitem>
<listitem>
<para>
Si se usa una base de datos de Oracle o una instalación completa de Oracle Client, la línea ha de ser:
Si se utiliza una base de datos Oracle o una instalación completa de Oracle Client, procedase de la siguiente manera:
</para>
<para>
<informalexample>
@@ -103,55 +302,54 @@
</informalexample>
</para>
<para>
Asegúrese de que el usuario del servidor web
(<literal>nobody</literal>, <literal>www</literal>) tiene acceso a
las biblitecas, a los ficheros de inicialización
y a <filename>tnsnames.ora</filename> (si se utiliza) bajo
Asegúrese de que el usuario del servidor web (<literal>nobody</literal>, <literal>www</literal>) tiene acceso a las
bibliotecas, a los archivos de inicialización
y al archivo <filename>tnsnames.ora</filename> (si se utiliza) bajo
el directorio <literal>$ORACLE_HOME</literal>. Con Oracle
10<emphasis>g</emphasis>R2 podría ser necesario ejecutar
10<emphasis>g</emphasis>R2, puede que sea necesario ejecutar
la utilidad <filename>$ORACLE_HOME/install/changePerm.sh</filename>
para proporcionar acceso al directorio.
</para>
</listitem>
</itemizedlist>
</para>
<para>
Después de la configuración, siga los procedimientos habituales de construcción de PHP,
p.ej., <emphasis>make install</emphasis>. Se creará la extensión
compartida <filename>oci8.so</filename>. Podría ser necesario
moverla manualmente al directorio de extensiones de PHP, especificado por
la opción <link linkend="ini.extension-dir">extension_dir</link>
del fichero &php.ini;.
</para>
<para>
Para completar la instalación de OCI8, edite &php.ini; y añada la línea:
</para>
<para>
<informalexample>
<screen>
para dar acceso al directorio.
</para>
</listitem>
</itemizedlist>
</para>
<para>
Después de la configuración, sigase el procedimiento habitual de compilación de PHP,
por ejemplo <emphasis>make install</emphasis>. La extensión compartida OCI8 <filename>oci8.so</filename>
será creada. Puede ser necesario moverla manualmente al directorio de extensiones PHP, especificado por
la opción <link linkend="ini.extension-dir">extension_dir</link> en su
archivo &php.ini;.
</para>
<para>
Para completar la instalación de OCI8, modifíquese el archivo &php.ini; y añádase la línea:
</para>
<para>
<informalexample>
<screen>
<![CDATA[
extension=oci8.so
]]>
</screen>
</informalexample>
</para>
</section>
<section>
<title>Instalar OCI8 como una extensión compilada estáticamente</title>
<para>
Se ha de configurar PHP para incluir OCI8 usando una de las siguientes opciones de configuración:
</para>
<para>
<itemizedlist>
<listitem>
<para>
Si se usa Oracle Instant Client, se ha de utilizar lo siguiente:
</screen>
</informalexample>
</para>
</section>
<section>
<title>Instalación de OCI8 como extensión compilada estáticamente durante la compilación de PHP</title>
<para>
Si se compila PHP a partir del código fuente, puede configurarse PHP para incluir
OCI8 como una extensión estática utilizando una de las siguientes opciones de configuración.
</para>
<para>
<itemizedlist>
<listitem>
<para>
Si se utiliza Oracle Instant Client, hágase lo siguiente:
</para>
<para>
<informalexample>
<screen>
<![CDATA[
./configure --with-oci8=instantclient,/path/to/instant/client/lib
./configure --with-oci8=instantclient,/ruta/a/instant/client/lib
]]>
</screen>
</informalexample>
@@ -159,7 +357,7 @@ extension=oci8.so
</listitem>
<listitem>
<para>
Si se usa una base de datos de Oracle o una instalación completa de Oracle Client, la línea ha de ser:
Si se utiliza una base de datos Oracle o una instalación completa del cliente Oracle, hágase lo siguiente:
</para>
<para>
<informalexample>
@@ -174,225 +372,80 @@ extension=oci8.so
</itemizedlist>
</para>
<para>
Después de la configuración, siga los procedimientos habituales de construcción de PHP,
p.ej., <emphasis>make install</emphasis>. Después de una compilación
satisfactoria no es necesario añadir <filename>oci8.so</filename> a
&php.ini;. No se requieren pasos adicionales para la construcción.
Después de la configuración, sigase el procedimiento habitual
de construcción de PHP, por ejemplo <emphasis>make install</emphasis>. Después de una compilación
exitosa, no es necesario añadir <filename>oci8.so</filename> a
su &php.ini;. No se requiere ningún paso adicional de construcción.
</para>
</section>
<section>
<title>Instalar OCI8 desde PECL</title>
<title>Instalación de OCI8 bajo Windows</title>
<para xmlns:xlink="http://www.w3.org/1999/xlink">
La extensión OCI8 se puede añadir a una instalación de PHP existente,
automática o manualmente,
desde <link xlink:href="&url.pecl.package;oci8">PECL</link>.
La biblioteca OCI8 puede ser añadida a una instalación existente de PHP utilizando
las DLL del repositorio <link xlink:href="&url.pecl.package;oci8">PECL</link> o las bibliotecas situadas en el directorio
<literal>ext</literal> de su instalación PHP.
</para>
<para>
Para una instalación automática, siga estos pasos:
Con las bibliotecas Oracle 12<emphasis>c</emphasis> (o posteriores), descoméntese una de las
siguientes líneas en su archivo &php.ini; <literal>extension=php_oci8_12c.dll</literal>
o <literal>extension=php_oci8_11g.dll</literal>, o bien
<literal>extension=php_oci8.dll</literal>. Solo una de estas DLLs debe
estar activa al mismo tiempo. Las DLLs con versiones superiores pueden
contener más funcionalidades. Todas las DLLs pueden no estar disponibles
para todas las versiones de PHP. Asegúrese de que la opción
<link linkend="ini.extension-dir">extension_dir</link> está definida en la carpeta
que contiene las extensiones DLL de PHP.
</para>
<para>
<itemizedlist>
<listitem>
<para>
Si está detrás de un cortafuegos, establezca el proxy de PEAR, por ejemplo:
</para>
<para>
<informalexample>
<screen>
<![CDATA[
pear config-set http_proxy http://mi-proxy.example.com:80/
]]>
</screen>
</informalexample>
</para>
</listitem>
<listitem>
<para>
Ejecute
</para>
<para>
<informalexample>
<screen>
<![CDATA[
pecl install oci8
]]>
</screen>
</informalexample>
</para>
<para>
Cuando se le pregunte, introduzca el valor de <literal>$ORACLE_HOME</literal>, o
<literal>instantclient,/path/to/instant/client/lib</literal>.
</para>
<para>
Nota: No introduzca la variable <literal>$ORACLE_HOME</literal>
ya que no será expandida. En su lugar, introduzca la ruta real
del directorio inicial de Oracle.
</para>
</listitem>
</itemizedlist>
</para>
<para>
Para una instalación manual cuando el comando <literal>pecl</literal> no esté
disponible, descargue el paquete OCI8 de PECL, p.ej. <filename>oci8-1.4.10.tgz</filename>.
</para>
<para>
<itemizedlist>
<listitem>
<para>
Extraiga el paquete:
</para>
<para>
<informalexample>
<screen>
<![CDATA[
tar -zxf oci8-1.4.10.tgz
cd oci8-1.4.10
]]>
</screen>
</informalexample>
</para>
</listitem>
<listitem>
<para>
Prepare el paquete:
</para>
<para>
<informalexample>
<screen>
<![CDATA[
phpize
]]>
</screen>
</informalexample>
</para>
</listitem>
<listitem>
<para>
Configure el paquete, usando
<literal>$ORACLE_HOME</literal> o Instant Client
</para>
<para>
<informalexample>
<screen>
<![CDATA[
./configure -with-oci8=shared,$ORACLE_HOME
]]>
</screen>
</informalexample>
</para>
<para>
o
</para>
<para>
<informalexample>
<screen>
<![CDATA[
./configure -with-oci8=shared,instantclient,/path/to/instant/client/lib
]]>
</screen>
</informalexample>
</para>
</listitem>
<listitem>
<para>
Instale el paquete:
</para>
<para>
<informalexample>
<screen>
<![CDATA[
make install
]]>
</screen>
</informalexample>
</para>
</listitem>
</itemizedlist>
</para>
<para>
Después de la instalación manual o automática, edite el fichero &php.ini;
y añada la línea:
</para>
<para>
<informalexample>
<screen>
<![CDATA[
extension=oci8.so
]]>
</screen>
</informalexample>
</para>
<para>
Asegúrese de que la directiva
de &php.ini; <link linkend="ini.extension-dir">extension_dir</link> está
establecida al directorio donde <filename>oci8.so</filename> fue
instalado.
Si se utiliza el cliente Oracle Instant, defínase la variable
de entorno <envar>PATH</envar> del sistema a la carpeta que contiene las
bibliotecas Oracle.
</para>
</section>
<section>
<title>Instalar OCI8 en Windows</title>
<title>Definición del entorno Oracle</title>
<para>
Al usar las bibiotecas cliente de Oracle 10<emphasis>g</emphasis>R2 en
Windows, descomente la línea del &php.ini;
<literal>extension=php_oci8.dll</literal>. Al usar las bibliotecas cliente
de Oracle 11<emphasis>g</emphasis>R2 o posterior, descomente
<literal>extension=php_oci8_11g.dll</literal>
o <literal>extension=php_oci8.dll</literal>. Con las bibliotecas
de Oracle 12<emphasis>c</emphasis>
use <literal>extension=php_oci8_12c.dll</literal>
o <literal>extension=php_oci8_11g.dll</literal>
o <literal>extension=php_oci8.dll</literal>. Solamente puede estar habilitada
una de estas DLLs al mismo tiempo. Las DLLs de versiones posteriores pueden contener más
funcionalidad. No todas las DLLs pueden estar disponibles para todas las versiones
PHP. Asegúrese
de que <link linkend="ini.extension-dir">extension_dir</link> está establecido
al directorio que contiene las DDLs de extensiones de PHP.
</para>
<para>
Si usa Instant Client, establezca la variable de entorno
de sistema <envar>PATH</envar> al directorio de la biblioteca de Oracle.
</para>
</section>
<section>
<title>Establecer el entorno de Oracle</title>
<para>
Antes de usar esta extensión, asegúrese de que las variables de entorno
de Oracle están establecidas apropiadamente para el usuario del demonio web. Si el servidor
web se inicia automáticamente durante el arranque, asegúrese de que el
entorno de tiempo de arranque está también configurado correctamente.
Antes de utilizar esta extensión, asegúrese de que las variables de entorno
Oracle están correctamente definidas para el usuario que ejecuta el servidor Web.
Si su servidor Web se inicia automáticamente al arrancar el servidor,
entonces asegúrese también de la correcta configuración de la variable
de entorno utilizada en ese momento.
</para>
<note>
<para>
No establezca las variables de entorno de Oracle
usando <function>putenv</function> en un script de PHP, ya que la bibliotecas
de Oracle podrían ser cargadas e inicializadas antes de que el script
se ejecute. Las variables establecidas con <function>putenv</function> podrían ocasionar
conflictos, fallas, o comportamientos impredecibles. Algunas funciones podrían
funcionar, mientras que otras darían errores imperceptibles. Las variables deberían estar
configuradas <emphasis>antes</emphasis> de que se inicie el servidor web.
No se definan las variables de entorno Oracle utilizando la función
<function>putenv</function> en sus scripts PHP, ya que las bibliotecas
Oracle son cargadas e inicializadas antes de la ejecución de su script.
Las variables definidas con <function>putenv</function> podrían
entrar en conflicto y provocar tanto fallos como comportamientos totalmente inesperados. Algunas funciones pueden reaccionar
normalmente, otras pueden provocar errores. Las variables
deben ser definidas <emphasis>antes</emphasis> del inicio del
servidor.
</para>
</note>
<para>
En Red Hat Linux y sus variantes, exporte las variables al final de
<filename>/etc/sysconfig/httpd</filename>. Otros sistemas con
Apache 2 podrían usar un script <filename>envvars</filename> en el
directorio <filename>bin</filename> de Apache. Una tercera opción, la
directiva <literal>SetEnv</literal> de Apache
en <filename>httpd.conf</filename>, podría funcionar en algunos sistemas, pero se
sabe que es insuficiente en otros.
En los sistemas Red Hat Linux y sus variantes, debe exportarse
las variables al final del archivo <filename>/etc/sysconfig/httpd</filename>.
En otros sistemas que utilicen Apache 2, debe utilizarse el
script <filename>envvars</filename> que se encontrará en el directorio
<filename>bin</filename> de Apache. Otra opción consiste en utilizar
la directiva <literal>SetEnv</literal> del archivo
<filename>httpd.conf</filename>, pero esto puede no ser suficiente
en algunos sistemas.
</para>
<para>
Para verificar que las variables de entorno están establecidas correctamente,
use <function>phpinfo</function> y compruebe la sección
<emphasis>Environment</emphasis> (no la de
<emphasis>Apache</emphasis>) que contiene las variables requeridas.
Para verificar si las variables de entorno han sido definidas
correctamente, utilícese la función <function>phpinfo</function>
y prestese atención a la sección <emphasis>Environment</emphasis>
(y no a la sección <emphasis>Apache Environment</emphasis>);
debe contener todas las variables definidas.
</para>
<para>
Las variables que podrían ser necesarias están incluidas en la siguiente
tabla. Consulte la documentación de Oracle para más información sobre
todas las variables disponibles.
Las variables que se necesitan están
incluidas en la tabla siguiente. Consúltese la documentación Oracle
para más información sobre todas las variables.
<table>
<title>Variables de entorno comunes de Oracle</title>
<title>Variables de entorno Oracle comunes</title>
<tgroup cols="2">
<thead>
<row>
@@ -403,95 +456,109 @@ extension=oci8.so
<tbody>
<row>
<entry>ORACLE_HOME</entry>
<entry>Contiene el directorio del software completo de
Oracle Database. No la establezca cuando use Oracle Instant Client ya que
no es necesaria y podría causar problemas de instalación.</entry>
<entry>
Ruta al directorio que contiene el software de base de datos
Oracle. No se defina esta variable si se utiliza el cliente
Oracle Instant. De hecho, no es necesaria pero puede causar
problemas durante la instalación.
</entry>
</row>
<row>
<entry>ORACLE_SID</entry>
<entry>Contiene el nombre de la base de datos de la máquina local a la
que conectarse. Na hay necesidad de establecerla si se usa
Oracle Instant Client, o si siempre se proporciona el parámetro de conexión
a <function>oci_connect</function>.</entry>
<entry>
El nombre de la base de datos en la máquina local. No es
necesario definirla si se utiliza el cliente Oracle Instant,
o entonces, pasarla siempre como argumento de conexión a la
función <function>oci_connect</function>.</entry>
</row>
<row>
<entry>LD_LIBRARY_PATH</entry>
<entry>Establézcala (o su equivalente de plataforma, como
<literal>DYLD_LIBRARY_PATH</literal>, <literal>LIBPATH</literal>, o
<literal>SHLIB_PATH</literal>) a la ubicación de las bibliotecas
de Oracle, por ejemplo, <filename>$ORACLE_HOME/lib</filename>
o <filename>/usr/lib/oracle/11.1/client/lib</filename>. Esta
variable no es necesaria si las bibliotecas está localizadas mediante un
mecanismo de búsqueda diferente, como
<entry>
Defínase esta variable (o su equivalente en la plataforma
actual, como <literal>LIBPATH</literal>,
o <literal>SHLIB_PATH</literal>)
como la ruta a las bibliotecas Oracle, por ejemplo
<filename>$ORACLE_HOME/lib</filename> o
<filename>/usr/lib/oracle/19/client/lib</filename>.
Esta variable no es necesaria si las bibliotecas
son localizadas por un mecanismo de búsqueda diferente, como
con <filename>ldconfig</filename> o
<literal>LD_PRELOAD</literal>.</entry>
con <literal>LD_PRELOAD</literal> en lugar
de <literal>LD_LIBRARY_PATH</literal>.
</entry>
</row>
<row>
<entry>NLS_LANG</entry>
<entry>Esta es la variable principal para configurar el conjunto de
caracteres y la información de globalización usados por las bibliotecas
de Oracle.</entry>
<entry>
Es la variable principal para definir el
juego de caracteres y las informaciones de globalización
utilizadas por las bibliotecas Oracle.
</entry>
</row>
<row>
<entry>ORA_SDTZ</entry>
<entry>Establece la zona horaria de la sesión de Oracle.</entry>
<entry>
Define el desplazamiento horario a utilizar por las sesiones Oracle.
</entry>
</row>
<row>
<entry>TNS_ADMIN</entry>
<entry>Contiene el directorio donde residen los ficheros de configuración
de Oracle Net Services, tales como <filename>tnsnames.ora</filename>
y <filename>sqlnet.ora</filename>. No es necesaria si
la cadena de conexión <function>oci_connect</function> utiliza la
sintaxis de nombramiento sencillo de conexiones, como
<literal>localhost/XE</literal>. No es necesaria si los ficheros
de configuración de red está en las ubicaciones predeterminadas, como
<filename>$ORACLE_HOME/network/admin</filename> o
<filename>/etc</filename>.</entry>
<entry>
Ruta al directorio que contiene los archivos de configuración
Oracle Net Services (<filename>tnsnames.ora</filename>
y <filename>sqlnet.ora</filename>). Innecesario si la cadena
de conexión utilizada por la función
<function>oci_connect</function> está en formato de conexión fácil
como <literal>localhost/XE</literal>. También innecesario si los
archivos de configuración de red están en ubicaciones por defecto como <filename>/usr/lib/oracle/VERSION/client/lib/network/admin</filename>, <filename>$ORACLE_HOME/network/admin</filename>
o <filename>/etc</filename>.
</entry>
</row>
</tbody>
</tgroup>
</table>
Las variables de entorno de Oracle que se usan con menos frecuencia incluyen
<literal>TWO_TASK</literal>, <literal>ORA_TZFILE</literal>, y las
diversas configuraciones de globalización de Oracle
como <literal>NLS*</literal> y las variables
<literal>ORA_NLS_*</literal>.
Existen otras variables de entorno Oracle menos frecuentemente
utilizadas, como <literal>TWO_TASK</literal>,
<literal>ORA_TZFILE</literal>, así como las diversas variables
de globalización como <literal>NLS*</literal> y
<literal>ORA_NLS_*</literal>.
</para>
</section>
<section>
<title>Resolución de problemas</title>
<title>En caso de problemas</title>
<para>
El problema más común al instalar OCI8 es no tener el
entorno de Oracle correctamente establecido. Esto, normalmente, aparece como
un problema al utilizar <function>oci_connect</function>
o <function>oci_pconnect</function>. El error podría ser un error de PHP
tal como <emphasis>Call to undefined function
oci_connect()</emphasis>, un error de Oracle como ORA-12705, o incluso
que Apache falle. Compruebe los ficheros de registro de Apache para los errores de arranque y
lea las secciones sobre la resolución de este problema.
El problema más común durante la instalación de OCI8 es
haber configurado incorrectamente el juego de variables de entorno.
Es un problema típico cuando se recibe un mensaje
de error al utilizar las funciones
<function>oci_connect</function> o <function>oci_pconnect</function>.
El error puede ser un error puramente PHP como <emphasis>Llamada a la función
no definida oci_connect()</emphasis>, un error Oracle como ORA-12705 o
incluso un fallo brusco de Apache. Verifíquese el contenido de los archivos de
registro de Apache durante su inicio y refiérase a las secciones
anteriores para resolver el problema.
</para>
<para>
Mientras que los errores de red como ORA-12154 u ORA-12514 indican un problema con el
nombramiento de redes o de configuraicón de Oracle, la raíz de la causa podría ser debida
a que el entorno de PHP no esté correctamente configurado, y por lo tanto, las bibliotecas de
Oracle no son capaces de localizar el fichero de configuración
<filename>tnsnames.ora</filename>.
Mientras que los errores de red como ORA-12154 o ORA-12514 indican
un problema de nombramiento de red o un problema de configuración,
muy a menudo, la causa principal es que el entorno PHP no está
correctamente definido y que las bibliotecas Oracle son incapaces
de encontrar el archivo de configuración <filename>tnsnames.ora</filename>.
</para>
<para>
En Windows, el tener múltiples versiones de Oracle en la misma máquina
puede ocasionar fácilmente que las bibliotecas fallen, a menos que se asegure
de que PHP utilice solamente la versión correcta de Oracle.
En Windows, tener varias versiones de Oracle en la misma
máquina puede hacer que la instalación falle fácilmente a menos que se
asegure de que PHP no está utilizando únicamente la versión correcta de Oracle.
</para>
<para>
Una utilidad para examinar las bibliotecas que están siendo buscadas y cargadas
puede ayudar a resolver problemas de bibliotecas ausentes o que fallen, particularmente en
Windows.
Una utilidad que permite examinar las bibliotecas buscadas
y cargadas puede ayudar a resolver este tipo
de problema, especialmente en Windows.
</para>
<note>
<title>Si el servidor web no se inicia o falla durante
el arranque</title>
<title>Si el servidor Web no arranca o falla al inicio</title>
<para>
Compruebe que Apache está vinculado con la biblioteca pthread:
Verifíquese que Apache está enlazado con la biblioteca pthread:
</para>
<para>
<informalexample>
@@ -509,7 +576,7 @@ extension=oci8.so
</informalexample>
</para>
<para>
Si libpthread no se muestra, reinstale Apache:
Si la biblioteca libpthread no está listada, reinstálese Apache:
</para>
<para>
<informalexample>
@@ -525,14 +592,13 @@ extension=oci8.so
</informalexample>
</para>
<para>
Por favor, observe que en algunos sistemas como UnixWare, es libthread
en lugar de libpthread. PHP y Apache tienen que estar configurados con
EXTRA_LIBS=-lthread.
Tenga en cuenta que en sistemas como UnixWare, la biblioteca se llama
libthread en lugar de libpthread. PHP y Apache deben ser configurados
con EXTRA_LIBS=-lthread.
</para>
</note>
</section>
</section> <!-- oci8.installation -->
<!-- Keep this comment at the end of the file
Local variables:
@@ -554,4 +620,3 @@ vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@@ -1,122 +1,138 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 05699686607d6714c532dafac4e19de932cb7c63 Maintainer: seros Status: ready -->
<!-- EN-Revision: 5e41012cfdf8f2eff5fa56de446c7656afac536c Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<chapter xml:id="oci8.connection" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Manejo de conexiones de OCI8 y agrupamiento de conexiones</title>
<title>Gestión de la conexión OCI8 y la cola de espera</title>
<section>
<title>Funciones de conexión</title>
<para>
La extenisón OCI8 proporciona tres funciones diferentes para
conectarse a Oracle. La función de conexión estándar
es <function>oci_connect</function>. Esta crea una conexión a
una base de datos de Oracle y devuelve un recurso utilizado por las llamadas
subsiguientes a dicha base de datos.
La extensión oci8 proporciona tres funciones diferentes para conectarse
a Oracle. La función de conexión estándar es la función
<function>oci_connect</function>. Esta función crea una conexión
a la base de datos Oracle y devuelve un recurso utilizado
por las futuras llamadas a la base de datos.
</para>
<para>
Conectarse a un servidor Oracle es una operación razonablemente cara
en términos del tiempo que toma en completarse.
La función <function>oci_pconnect</function> utiliza una caché de conexiones
persistentes que puede ser reutilizada a través de diferentes peticiones de
scripts. Esto significa que una conexión únicamente tendrá carga adicional normalmente
una vez por cada proceso de PHP (o subproceso de Apache).
La conexión a un servidor Oracle es una operación razonablemente costosa
en términos de tiempo. La función <function>oci_pconnect</function>
utiliza un caché persistente de conexiones que puede ser reutilizado a través
de diferentes scripts. Esto significa que una sola conexión será utilizada por
proceso PHP (o un hijo Apache).
</para>
<para>
Si una aplicación se conecta a Oracle usando un conjunto diferente de
credenciales para cada usuario de la web, la caché persistente empleada por
<function>oci_pconnect</function> no será muy útil ya que el
número de usuarios concurrentes aumentará, hasta el punto donde podría
empezar a afectar negativamente al rendimiendo global del servidor de Oracle
debido a que mantiene demasiadas conexiones inactivas. Si la
aplicación está estructurada de esta manera, se recomienda
ajustarla a través de las opciones de configuración
<link linkend="ini.oci8.max-persistent">oci8.max_persistent</link>
y <link linkend="ini.oci8.persistent-timeout">oci8.persistent_timeout</link>
(éstas otorgan control sobre el tamaño y el tiempo de vida
de la caché de conexiones persistentes), usar Oracle Database
Resident Connection Pooling (en Oracle Database 11g o posterior), o usar
<function>oci_connect</function> en su lugar.
Si su aplicación se conecta a Oracle utilizando un juego diferente de derechos
de base de datos para cada usuario web, el caché persistente utilizado
por la función <function>oci_pconnect</function> se vuelve menos apropiado
ya que el aumento del número de usuarios concurrentes afectará el rendimiento
del servidor Oracle, ya que deberá mantener demasiadas conexiones en caché.
Si su aplicación es de este tipo, se recomienda optimizar su aplicación
utilizando las opciones de configuración <link
linkend="ini.oci8.max-persistent">oci8.max_persistent</link> y <link
linkend="ini.oci8.persistent-timeout">oci8.persistent_timeout</link>
(estas opciones le dan control sobre el tamaño y la vida útil del caché
de conexiones persistentes) o utilizar el pool de conexiones residentes de Oracle
(para las bases de datos Oracle 11g y posteriores), o bien, utilizar la función
<function>oci_connect</function>.
</para>
<para>
<function>oci_connect</function>
y <function>oci_pconnect</function> emplean una caché de conexiones; si
mútiples llamadas a
<function>oci_connect</function> usan los mismos parámetros en un script
dado, la segunda y subsiguientes llamadas devolverán el gestor de conexión
existente. La caché usada por
<function>oci_connect</function> se limpia al final de la ejecución
del script, o cuando se cierra explícitamente el gestor de conexión. La
función <function>oci_pconnect</function> tiene un comportamiento similar,
aunque su caché se mantiene de forma separada y sobrevive entre
peticiones HTTP.
Las funciones <function>oci_connect</function> y <function>oci_pconnect</function>
emplean un caché de conexiones; si se realizan múltiples llamadas
a <function>oci_connect</function>, utilizando los mismos parámetros en
un script dado, la segunda llamada y las siguientes devolverán el manejador
de conexión existente. El caché utilizado por la función <function>oci_connect</function>
se limpia al final de la ejecución del script o cuando se cierra explícitamente
el manejador de conexión. <function>oci_pconnect</function> tiene un comportamiento
sustancialmente idéntico, con la diferencia de que el caché se mantiene por separado
y se conserva entre las peticiones HTTP.
</para>
<para>
Esta característica de almacenamiento en caché significa que dos gestores no están transaccionalmente
aislados (de hecho, son el mismo gestor de conexión, por lo que no existe
aislamiento alguno). Si la aplicación necesita dos conexiones transaccionalmente
aisladas por separado, se ha de usar
<function>oci_new_connect</function>.
Es importante recordar esta funcionalidad de caché, ya que da la apariencia de que
los dos manejadores no están aislados a nivel de transacciones
(en realidad representan el mismo manejador de conexión, por lo que no están aislados
en absoluto). Si su conexión necesita dos conexiones separadas, aisladas
a nivel de transacciones, debe utilizar la función <function>oci_new_connect</function>.
</para>
<para>
La caché de <function>oci_pconnect</function> es limpiada y cualquier
conexión a bases de datos cerrada cuando finaliza el proceso de PHP, por lo que
el uso efectivo de conexiones persistentes requiere que PHP sea un
módulo de Apache o se use con FCGI, o similar. Las conexiones persistentes
no tendrán ningún beneficio con <function>oci_connect</function>
cuando PHP se use con CGI o mediante la línea de comandos.
El caché de la función <function>oci_pconnect</function> se borra
y todas las conexiones a la base de datos se cierran cuando el proceso
PHP termina, por lo que las conexiones persistentes solo tienen interés cuando
PHP se utiliza como módulo Apache o con FPM o similar.
Las conexiones persistentes no tienen ningún interés a través de <function>oci_connect</function>
cuando PHP se utiliza como CGI o en línea de comandos.
</para>
<para>
La función <function>oci_new_connect</function> siempre crea una
nueva conexión al servidor de Oracle, independientemente de que existan
otras conexiones. Las aplicaciones web con mucho tráfico
deberían evitar el uso de
<function>oci_new_connect</function>, especialmente las secciones más concurridas de
la aplicación.
<function>oci_new_connect</function> siempre crea una nueva conexión al
servidor Oracle, independientemente de la existencia de otras conexiones.
Las aplicaciones web de alto tráfico deben evitar utilizar
<function>oci_new_connect</function>, especialmente en las secciones
más cargadas de la aplicación.
</para>
<para>
Las conexiones persistentes pueden ahora ser cerradas
por el usuario, permitiendo un mejor control de los recursos
de conexión. Las conexiones persistentes pueden ahora ser cerradas
automáticamente cuando ninguna variable PHP las referencia, como podría ser el caso
al final de un contexto de una función de usuario PHP.
Esto invalidará todas las transacciones no confirmadas. Estos cambios en las
conexiones persistentes hacen que funcionen como las funciones
no persistentes, simplificando la interfaz, permitiendo una mayor
coherencia de la aplicación y previsibilidad. Defina la directiva
<link linkend="ini.oci8.old-oci-close-semantics">oci8.old_oci_close_semantics</link>
a <emphasis>On</emphasis> para recuperar el comportamiento histórico.
</para>
<para>
El restablecimiento automático de las conexiones persistentes PHP
después del reinicio de un proceso Apache o FPM hace que los triggers
<literal>LOGON</literal> sean únicamente recomendados para definir
los atributos de sesión y no las peticiones de conexión de usuarios
por aplicación.
</para>
</section>
<section>
<title>Agrupamiento de conexiones DRCP</title>
<title>Pool de conexión DRCP</title>
<para>
PHP, desde 5.3 (PECL OCI8 1.3), posee soporte para Oracle Database Resident
Connection Pooling (DRCP). DRCP permite el uso más eficiente de la memoria
de la máquina donde reside la base de datos y proporciona una alta escalabilidad. Se
requiren cambios mínimos, o ninguno, en la aplicación para usar DRCP.
PHP soporta el pool de conexiones residentes
Oracle (DRCP). DRCP permite utilizar más eficientemente la memoria de la base de datos
y permite una mejor escalabilidad. Se requieren pocos o ningún cambio
para aprovechar DRCP.
</para>
<para>
DRCP es apropiado para aplicaciones que se conectan usando pocos esquemas de
bases de datos y mantienen abiertas dichas conexiones durante un corto periodo de
tiempo. Las demás aplicaciones deberían usar los procesos de servidor de bases de datos
predeterminado <literal>Dedicado</literal> de Oracle, o
usar servidores <literal>Compartidos</literal>.
DRCP está previsto para aplicaciones que se conectan utilizando poco
esquema de base de datos, y que mantienen las conexiones abiertas
durante un corto período de tiempo. Las otras aplicaciones deben
utilizar el proceso dedicado a la base de datos Oracle, o utilizar
los servidores compartidos.
</para>
<para>
DRCP beneficia a las tres funciones de conexión, pero proporciona la mayor
escalabilidad cuando las conexiones se crean
con <function>oci_pconnect</function>.
DRCP se beneficia de las 3 funciones de conexión, pero solo la función
<function>oci_pconnect</function> ofrece el mayor rendimiento.
</para>
<para>
Para que DRCP esté disponible en OCI8, las bibliotecas cliente de Oracle usadas por
PHP y la versión de Oracle Database deben ser 11g o superior.
Para hacer DRCP disponible con OCI8, la versión de las bibliotecas clientes Oracle
utilizadas por PHP así como la versión de la base de datos Oracle
deben ser 11g o superiores.
</para>
<para>
La documentación de DRCP se encuentra en varios manuales de Oracle. Por
ejemplo,
véase <link xlink:href="&url.oracle.drcp.configure;">Configuring
Database Resident Connection Pooling</link> en la documentación de
Oracle para obtner información de su uso.
Un <link xlink:href="&url.oracle.drcp.whitepaper;">Libro blanco
de DRCP</link> contiene información de antecedentes sobre DRCP.
La documentación sobre DRCP puede encontrarse en los diferentes manuales
Oracle. Por ejemplo, consulte la
<link xlink:href="&url.oracle.drcp.configure;">configuración del pool
de conexiones residentes a la base de datos</link> de la documentación
Oracle para un ejemplo de uso.
Un <link xlink:href="&url.oracle.drcp.whitepaper;">libro blanco sobre DRCP</link>
contiene varias informaciones internas sobre DRCP.
</para>
<para>
Para usar DRCP, construya PHP con la extensión OCI8 1.3 (o posterior) y las bibliotecas de
Oracle 11g (o posteriores), y luego siga estos pasos:
Para utilizar DRCP, instale la extensión OCI8 y las
bibliotecas Oracle 11g (o posterior), luego, siga estos pasos:
</para>
<para>
<itemizedlist>
<listitem>
<para>
Como administrador de bases de datos privilegiado, use un programa como
SQL*Plus para iniciar el agrupamiento de conexiones en la base de datos:
Utilizando los privilegios de administrador de la base de datos,
utilice un programa como SQL*Plus para iniciar un pool
de conexiones a la base de datos:
</para>
<para>
<informalexample>
@@ -130,30 +146,29 @@
</listitem>
<listitem>
<para>
Opcionalmente
use <literal>dbms_connection_pool.alter_param()</literal> para
configurar los ajustes de DRCP. La configuración de la agrupación actual se puede
consultar desde la vista <literal>DBA_CPOOL_INFO</literal>.
Opcionalmente, utilice <literal>dbms_connection_pool.alter_param()</literal>
para configurar las opciones DRCP. Las opciones comunes del pool
pueden encontrarse utilizando la vista <literal>DBA_CPOOL_INFO</literal>.
</para>
</listitem>
<listitem>
<para>
Actualice las cadenas de conexión usadas. Para las aplicaciones de PHP que
actualmente se conecten usando un Nombre de Conexión de Red
como <literal>MYDB</literal>:
Actualice las cadenas de conexión utilizadas. Para las aplicaciones PHP
que actualmente se conectan mediante un nombre de conexión de red como
<literal>MYDB</literal>:
</para>
<para>
<informalexample>
<screen>
<![CDATA[
$c = oci_pconnect("mi_usuario", "mi_contraseña", "MYDB");
$c = oci_pconnect("myuser", "mypassword", "MYDB");
]]>
</screen>
</informalexample>
</para>
<para>
Modifique el fichero tnsnames.ora y añada
una cláusula <literal>(SERVER=POOLED)</literal>, por ejemplo:
modifique el archivo tnsnames.ora y añada una cláusula
<literal>(SERVER=POOLED)</literal>, por ejemplo:
</para>
<para>
<informalexample>
@@ -167,14 +182,14 @@
</informalexample>
</para>
<para>
Alternativamente, modifique la sintaxis de Easy Connect en PHP y añada
<literal>:POOLED</literal> después del nombre del servidor:
De lo contrario, puede modificar la sintaxis de conexión fácil en PHP y añadir
<literal>:POOLED</literal> después del nombre del servicio:
</para>
<para>
<informalexample>
<screen>
<![CDATA[
$c = oci_pconnect("mi_usuario", "mi_contraseña", "mi_host.dom.com:1521/sales:POOLED");
$c = oci_pconnect("myuser", "mypassword", "myhost.dom.com:1521/sales:POOLED");
]]>
</screen>
</informalexample>
@@ -182,18 +197,18 @@
</listitem>
<listitem>
<para>
Edite &php.ini; y elija un nombre de clase de conexión. Este nombre
señala una división lógica de la agrupación de conexiones y se puede
usar para aislar la agrupación para diferentes aplicaciones. Cualquier aplicación
de PHP con el mismo nombre de usuario y valor de clase de conexión
podrá compartir conexiones de la agrupación, proporcionando una mayor
escalabilidad.
Edite &php.ini; y elija el nombre de la clase de conexión.
Este nombre indica una división lógica del pool de conexión y puede
ser utilizado para aislar el pool de diferentes aplicaciones.
Todas las aplicaciones PHP utilizando el mismo usuario así como
el mismo valor de clase de conexión podrán compartir
el pool de conexiones, permitiendo así obtener una mayor disponibilidad.
</para>
<para>
<informalexample>
<screen>
<![CDATA[
oci8.connection_class = "NOMBRE_DE_MI_APLICACIÓN"
oci8.connection_class = "MY_APPLICATION_NAME"
]]>
</screen>
</informalexample>
@@ -201,114 +216,28 @@
</listitem>
<listitem>
<para>
Ejecute la aplicación, conectándose a la base de datos 11g (o posterior).
Ejecute su aplicación, conéctese a la base de datos
11g (o superior).
</para>
</listitem>
</itemizedlist>
</para>
<note>
<para>
Las aplicaciones que usen Oracle 10g que requieran el rendimiento de
conexiones persitentes, pueden reducir la cantidad de memoria que el servidor de
bases de datos use utilizando sevidores <literal>Compartidos</literal> de Oracle
(anteriormente conocidos como Servidores de Multisubprocesos). Consulte la documentación
de Oracle para más información.
Las aplicaciones que utilizan las bibliotecas cliente Oracle 10g que necesitan el rendimiento
de las conexiones persistentes, pueden reducir la cantidad de memoria
asignada al servidor de la base de datos utilizando los servidores
compartidos Oracle (conocidos anteriormente como servidores multihilo).
Consulte la documentación Oracle para obtener más información.
</para>
</note>
<note>
<para>
La modificación de una contraseña durante conexiones DRCP fallará
con el error "<emphasis>ORA-56609: Usage not supported with DRCP</emphasis>".
Esto es una restricción documentada de la base de datos Oracle 11g.
</para>
</note>
</section>
<section>
<title>Recomendaciones para DRCP y limitaciones conocidas</title>
<para>
El cambio de una contraseña con conexiones DRCP fallará con el error
<emphasis>ORA-56609: Usage not supported with DRCP</emphasis>.
Ésta es una restricción documentada de Oracle Database 11g.
</para>
<para>
Con la extensión OCI8 1.3, las conexiones persistentas pueden ser
cerradas por el usuario, permitiendo mayor control sobre el uso de recursos
de conexión. Las conexiones persistentes ahora también serán cerradas
automáticamente cuando no haya variables de PHP que hagan referncia a ellas, como
al final del ámbito de una función de usuario de PHP. Esto revertirá
cualquier transacción no consignada. Estos cambios a las conexiones
persistentes hacen que se comporten de forma similar a las conexiones no
persistentes, simplificando la interfaz, permitiendo así mayor
consistencia y predictabilidad a las aplicaciones.
Use <link linkend="ini.oci8.old-oci-close-semantics">oci8.old_oci_close_semantics</link>
con el valor de
<emphasis>On</emphasis> para conservar el comportamiento histórico.
</para>
<para>
Si Oracle Database es la versión 11.1.0.6, se deben aplicar los parches de las
bases de datos de Oracle para el error 6474441 de Oracle para usar DRCP.
Sin este parche, los errores como <emphasis>ORA-01000: maximum
open cursors exceeded</emphasis>, <emphasis>ORA-01001 invalid
cursor</emphasis> o <emphasis>ORA-01002 fetch out of
sequence</emphasis> podrían ocurrir. Este error fue corregido en Oracle
11.1.0.7 en adelante.
</para>
<para>
Si no se puede aplicar el parche de las bases de datos de Oracle 11.1.0.6, se pueden seguir
una de estas tres alternativas en su lugar:
</para>
<para>
<itemizedlist>
<listitem>
<simpara>
Conectarse usando servidores de Oracle <literal>Dedicados</literal>
o <literal>Compartidos</literal> en lugar de DRCP.
</simpara>
</listitem>
<listitem>
<simpara>
Establecer <link linkend="ini.oci8.statement-cache-size">oci8.statement_cache_size</link> de PHP
a 0.
</simpara>
</listitem>
<listitem>
<simpara>
Establecer un evento en el fichero de parámetros de inicialización de bases de datos:
<emphasis>event="56699 trace name context forever, level 128"</emphasis>.
</simpara>
</listitem>
</itemizedlist>
</para>
<para>
Los parches Oracle Database 11.1.0.7 y Oracle Database 11.1.0.6 para
el error 6474441 de Oracle permiten a las aplicacinones de PHP con conexión DRCP
usar el disparador <literal>LOGON</literal> de la base de datos para establecer las propiedades
de una sesión en el momento de crearla. Ejemplo de tales
configuraciones son el lenguaje NLS y el formato de fecha.
</para>
<para>
Si no se puede aplicar el parche para bases de datos Oracle 11.1.0.6, se pueden seguir
las siguientes alternativas en lugar
de usar los disparadores <literal>LOGON</literal>:
</para>
<para>
<itemizedlist>
<listitem>
<simpara>
Después de la identificación, establecer explícitamente las propiedades de la sesión usando
código de la aplicación de PHP.
</simpara>
</listitem>
<listitem>
<simpara>
Conectarse usando servidores de Oracle <literal>Dedicados</literal>
o <literal>Compartidos</literal> en lugar de DRCP.
</simpara>
</listitem>
</itemizedlist>
</para>
<para>
El reestableciemiento automático de las conexiones persistentes de PHP después
de la regeneración de procesos de Apache o FCGI significa que únicamente se recomiendan
los disparadores <literal>LOGON</literal> de PHP para establecer los atributos de sesiones
y no para peticiones de conexiones de usuario por cada aplicación. Esto es incluso más recomendado
con DRCP debido al ajuste automático de la agrupación y a la
manera de desencadenar los disparadores <literal>LOGON</literal> con la
autenticación de DRCP.
</para>
</section>
</chapter>
@@ -332,4 +261,3 @@ vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 44e38e287d29857e5cd5da1f045695e6838170b3 Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<!-- EN-Revision: aca4a6319c606a9222b423b9f8d917a14b2b9b3f Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<appendix xml:id="oci8.constants" xmlns="http://docbook.org/ns/docbook">
&reftitle.constants;
&extension.constants;
<table>
<title>Modos de funciones y métodos de OCI8</title>
<title>Métodos y funciones OCI8</title>
<tgroup cols="2">
<thead>
<row>
@@ -18,174 +18,166 @@
<row xml:id="constant.oci-assoc">
<entry><constant>OCI_ASSOC</constant></entry>
<entry>
Usada con <function>oci_fetch_all</function> y con
<function>oci_fetch_array</function> para obtener los resultados como un array
asociativo.
Utilizado con <function>oci_fetch_all</function> y
<function>oci_fetch_array</function> para recuperar los resultados
en un array asociativo.
</entry>
</row>
<row xml:id="constant.oci-both">
<entry><constant>OCI_BOTH</constant></entry>
<entry>
Usada con <function>oci_fetch_all</function> y con
<function>oci_fetch_array</function> para obtener los resultados como un
array con índeces tanto asociativos como numéricos.
Utilizado con <function>oci_fetch_all</function> y
<function>oci_fetch_array</function> para recuperar los resultados
en un array asociativo e indexado numéricamente.
</entry>
</row>
<row xml:id="constant.oci-commit-on-success">
<entry><constant>OCI_COMMIT_ON_SUCCESS</constant></entry>
<entry>
El modo de ejecución de sentencias para <function>oci_execute</function>.
Automáticamente consolida los cambios cuando la sentencia ha tenido
éxito.
Modo de ejecución de comandos para <function>oci_execute</function>.
El comando se valida automáticamente tras el éxito de la consulta.
</entry>
</row>
<row xml:id="constant.oci-cred-ext">
<entry><constant>OCI_CRED_EXT</constant></entry>
<entry>
Usada con <function>oci_connect</function> para utilizar la
autenticación externa de Oracle o la del SO. Introducida en PHP
5.3 y PECL OCI8 1.3.4.
Utilizado con <function>oci_connect</function> para la identificación
en un servidor Oracle externo o en el sistema operativo.
</entry>
</row>
<row xml:id="constant.oci-default">
<entry><constant>OCI_DEFAULT</constant></entry>
<entry>
Véase <constant>OCI_NO_AUTO_COMMIT</constant>.
Ver la constante <constant>OCI_NO_AUTO_COMMIT</constant>.
</entry>
</row>
<row xml:id="constant.oci-describe-only">
<entry><constant>OCI_DESCRIBE_ONLY</constant></entry>
<entry>
Modo de ejecución de sentencias
para <function>oci_execute</function>. Se ha de usar este modo si
se quieren obtener metadatos tales como los nombres de las columnas, pero no
se desea obtener filas de la consulta.
Modo de ejecución de comandos para <function>oci_execute</function>.
Utilícelo si no desea ejecutar el comando, pero obtener descripciones.
</entry>
</row>
<row xml:id="constant.oci-exact-fetch">
<entry><constant>OCI_EXACT_FETCH</constant></entry>
<entry>
Obsoleta. El modo de obtención de sentencias. Usada cuando la aplicación
conoce de antemano exactamente cuántas filas se obtendrán.
Este modo desactiva la precarga del modo de Oracle versión 8 o
posterior. El cursor es cancelado después de obtener las filas
deseadas, lo que puede reducir el uso de recursos
por parte del servidor.
Obsoleto.
Modo de lectura de resultados. Utilizado cuando las aplicaciones
conocen de antemano el número de líneas que se necesitarán leer.
Este modo desactiva la lectura anticipada de Oracle versión 8
y posteriores. El cursor se anula una vez que se alcanza el número
de líneas a leer, lo que reduce los recursos consumidos en el servidor.
</entry>
</row>
<row xml:id="constant.oci-fetchstatement-by-column">
<entry><constant>OCI_FETCHSTATEMENT_BY_COLUMN</constant></entry>
<entry>
Modo predetermiado de <function>oci_fetch_all</function>.
Modo por defecto de <function>oci_fetch_all</function>.
</entry>
</row>
<row xml:id="constant.oci-fetchstatement-by-row">
<entry><constant>OCI_FETCHSTATEMENT_BY_ROW</constant></entry>
<entry>
Modo alternativo de <function>oci_fetch_all</function>.
Modo alternativo para <function>oci_fetch_all</function>.
</entry>
</row>
<row xml:id="constant.ocilob-buffer-free">
<entry><constant>OCI_LOB_BUFFER_FREE</constant></entry>
<entry>
Usada con <xref linkend="ocilob.flush"/> para liberar
los búferes utilzados.
Utilizado con <xref linkend="ocilob.flush"/> para liberar
los buffers utilizados.
</entry>
</row>
<row xml:id="constant.oci-no-auto-commit">
<entry><constant>OCI_NO_AUTO_COMMIT</constant></entry>
<entry>
Modo de ejecución de sentencias
para <function>oci_execute</function>. La transacción no se
consolida automáticamente cuando se usa este modo. Para una mejor
legibilidad en código nuevo, use este valor en lugar de la
cosntante antigua y equivalente <constant>OCI_DEFAULT</constant>.
Introducida en PHP 5.3.2 (PECL OCI8 1.4).
Modo de ejecución de la consulta para <function>oci_execute</function>.
La transacción no se valida automáticamente al utilizar este modo. Para mayor claridad en su código, utilice este valor en lugar del antiguo valor <constant>OCI_DEFAULT</constant>.
</entry>
</row>
<row xml:id="constant.oci-num">
<entry><constant>OCI_NUM</constant></entry>
<entry>
Usada con <function>oci_fetch_all</function> y con
<function>oci_fetch_array</function> para obtener los resultados como
un array enumerado.
Utilizado con <function>oci_fetch_all</function> y
<function>oci_fetch_array</function> para leer un array
enumerado.
</entry>
</row>
<row xml:id="constant.oci-return-lobs">
<entry><constant>OCI_RETURN_LOBS</constant></entry>
<entry>
Usada con <function>oci_fetch_array</function> para obtener el
valor de los datos del LOB en lugar del descriptor.
Utilizado con <function>oci_fetch_array</function> para obtener la
valor del LOB en lugar del puntero.
</entry>
</row>
<row xml:id="constant.oci-return-nulls">
<entry><constant>OCI_RETURN_NULLS</constant></entry>
<entry>
Usada con <function>oci_fetch_array</function> para obtener elementos
de array vacíos si el valor de los elementos de la fila es &null;.
Utilizado con <function>oci_fetch_array</function> para obtener
elementos vacíos, si el valor del campo es &null;.
</entry>
</row>
<row xml:id="constant.oci-seek-cur">
<entry><constant>OCI_SEEK_CUR</constant></entry>
<entry>
Usada con <xref linkend="ocilob.seek" /> para establecer la posición de búsqueda.
Utilizado con <xref linkend="ocilob.seek" /> para definir la posición.
</entry>
</row>
<row xml:id="constant.oci-seek-end">
<entry><constant>OCI_SEEK_END</constant></entry>
<entry>
Usada con <xref linkend="ocilob.seek" /> para establecer la posición de búsqueda.
Utilizado con <xref linkend="ocilob.seek" /> para definir la posición.
</entry>
</row>
<row xml:id="constant.oci-seek-set">
<entry><constant>OCI_SEEK_SET</constant></entry>
<entry>
Usada con <xref linkend="ocilob.seek" /> para establecer la posición de búsqueda.
Utilizado con <xref linkend="ocilob.seek" /> para definir la posición.
</entry>
</row>
<row xml:id="constant.oci-sysdate">
<entry><constant>OCI_SYSDATE</constant></entry>
<entry>
Obsoleta.
Obsoleto.
</entry>
</row>
<row xml:id="constant.oci-sysdba">
<entry><constant>OCI_SYSDBA</constant></entry>
<entry>
Usada con <function>oci_connect</function> para conectarse con
el privilegio SYSDBA. El ajuste de &php.ini;
<link linkend="ini.oci8.privileged-connect">oci8.privileged_connect</link>
debería estar habilitado para poder usar esta constante.
Utilizado con <function>oci_connect</function> para conectarse como SYSDBA
utilizando credenciales externas (<link
linkend="ini.oci8.privileged-connect">oci8.privileged_connect</link>
debe estar activado para utilizar esta constante).
</entry>
</row>
<row xml:id="constant.oci-sysoper">
<entry><constant>OCI_SYSOPER</constant></entry>
<entry>
Usada con <function>oci_connect</function> para conectarse con
el privilegio SYSOPER. El ajuste de &php.ini;
<link linkend="ini.oci8.privileged-connect">oci8.privileged_connect</link>
debería estar habilitado para poder usar esta constante.
Utilizado con <function>oci_connect</function> para conectarse como SYSOPER
utilizando credenciales externas (<link
linkend="ini.oci8.privileged-connect">oci8.privileged_connect</link>
debe estar activado para utilizar esta constante).
</entry>
</row>
<row xml:id="constant.oci-temp-blob">
<entry><constant>OCI_TEMP_BLOB</constant></entry>
<entry>
Usada con <xref linkend="ocilob.writetemporary"/>
para indicar que debería crearse un BLOB temporal.
Utilizado con <xref linkend="ocilob.writetemporary"/> para
indicar explícitamente que debe crearse un BLOB temporal.
</entry>
</row>
<row xml:id="constant.oci-temp-clob">
<entry><constant>OCI_TEMP_CLOB</constant></entry>
<entry>
Usada con <xref linkend="ocilob.writetemporary"/>
para indicar que debería crearse un CLOB temporal.
Utilizado con <xref linkend="ocilob.writetemporary"/> para
indicar explícitamente que debe crearse un CLOB temporal.
</entry>
</row>
</tbody>
</tgroup>
</table>
<table>
<title>Tipos vinculados y definidos de OCI8</title>
<title>Tipos definidos y vinculados OCI8</title>
<tgroup cols="2">
<thead>
<row>
@@ -197,239 +189,240 @@
<row xml:id="constant.oci-b-bfile">
<entry><constant>OCI_B_BFILE</constant></entry>
<entry>
Usada con <function>oci_bind_by_name</function> cuando se vinculan
Utilizado con <function>oci_bind_by_name</function> para vincular
BFILEs.
</entry>
</row>
<row xml:id="constant.oci-b-bin">
<entry><constant>OCI_B_BIN</constant></entry>
<entry>
Usada con <function>oci_bind_by_name</function> para vincular valores RAW.
Utilizado con <function>oci_bind_by_name</function> para vincular
valores brutos (RAW).
</entry>
</row>
<row xml:id="constant.oci-b-blob">
<entry><constant>OCI_B_BLOB</constant></entry>
<entry>
Usada con <function>oci_bind_by_name</function> cuando se vinculan
BLOBs.
Utilizado con <function>oci_bind_by_name</function>
para vincular BLOB.
</entry>
</row>
<row xml:id="constant.oci-b-bol">
<entry><constant>OCI_B_BOL</constant></entry>
<entry>
Usada con <function>oci_bind_by_name</function> para vincular una variable
BOOLEAN de PL/SQL.
Utilizado con <function>oci_bind_by_name</function> para
vincular una variable booleana PL/SQL.
</entry>
</row>
<row xml:id="constant.oci-b-cfilee">
<entry><constant>OCI_B_CFILEE</constant></entry>
<entry>
Usada con <function>oci_bind_by_name</function> cuando se vinculan
CFILEs.
Utilizado con <function>oci_bind_by_name</function>
para vincular CFILEs.
</entry>
</row>
<row xml:id="constant.oci-b-clob">
<entry><constant>OCI_B_CLOB</constant></entry>
<entry>
Usada con <function>oci_bind_by_name</function> cuando se vinculan
CLOBs.
Utilizado con <function>oci_bind_by_name</function>
para vincular CLOB.
</entry>
</row>
<row xml:id="constant.oci-b-cursor">
<entry><constant>OCI_B_CURSOR</constant></entry>
<entry>
Usada con <function>oci_bind_by_name</function> cuando se vinculan
cursores, previamente asignados
con <function>oci_new_descriptor</function>.
Utilizado con <function>oci_bind_by_name</function>
para vincular cursores, previamente asignados con
<function>oci_new_descriptor</function>.
</entry>
</row>
<row xml:id="constant.oci-b-int">
<entry><constant>OCI_B_INT</constant></entry>
<entry>
Usada con <function>oci_bind_array_by_name</function> para vincular arrays de
tipo INTEGER.
Utilizado con <function>oci_bind_array_by_name</function>
para vincular arrays de enteros.
</entry>
</row>
<row xml:id="constant.oci-b-nty">
<entry><constant>OCI_B_NTY</constant></entry>
<entry>
Usada con <function>oci_bind_by_name</function> cuando se vinculan
tipos de datos con nombre. Nota: en PHP &lt; 5.0 se le denominaba
<constant>OCI_B_SQLT_NTY</constant>.
Utilizado con <function>oci_bind_by_name</function>
para vincular nombres de tipos de datos.
</entry>
</row>
<row xml:id="constant.oci-b-num">
<entry><constant>OCI_B_NUM</constant></entry>
<entry>
Usada con <function>oci_bind_array_by_name</function> para vincular arrays de
tipo NUMBER.
Utilizado con <function>oci_bind_array_by_name</function> para vincular
arrays de números.
</entry>
</row>
<row xml:id="constant.oci-b-rowid">
<entry><constant>OCI_B_ROWID</constant></entry>
<entry>
Usada con <function>oci_bind_by_name</function> cuando se vinculan
ROWIDs.
Utilizado con <function>oci_bind_by_name</function>
para vincular ROWID.
</entry>
</row>
<row xml:id="constant.sqlt-afc">
<entry><constant>SQLT_AFC</constant></entry>
<entry>
Usada con <function>oci_bind_array_by_name</function> para vincular arrays de
tipo CHAR.
Utilizado con <function>oci_bind_array_by_name</function> para vincular
arrays de CHAR.
</entry>
</row>
<row xml:id="constant.sqlt-avc">
<entry><constant>SQLT_AVC</constant></entry>
<entry>
Usada con <function>oci_bind_array_by_name</function> para vincular arrays de
tipo VARCHAR2.
Utilizado con <function>oci_bind_array_by_name</function> para vincular
arrays de VARCHAR2.
</entry>
</row>
<row xml:id="constant.sqlt-bdouble">
<entry><constant>SQLT_BDOUBLE</constant></entry>
<entry>
No soportada.
No soportado.
</entry>
</row>
<row xml:id="constant.sqlt-bfilee">
<entry><constant>SQLT_BFILEE</constant></entry>
<entry>
Lo mismo que <constant>OCI_B_BFILE</constant>.
Idéntico a <constant>OCI_B_BFILE</constant>.
</entry>
</row>
<row xml:id="constant.sqlt-bfloat">
<entry><constant>SQLT_BFLOAT</constant></entry>
<entry>
No soportada.
No soportado.
</entry>
</row>
<row xml:id="constant.sqlt-bin">
<entry><constant>SQLT_BIN</constant></entry>
<entry>
Lo mismo que <constant>OCI_B_BIN</constant>.
Idéntico a <constant>OCI_B_BIN</constant>.
</entry>
</row>
<row xml:id="constant.sqlt-blob">
<entry><constant>SQLT_BLOB</constant></entry>
<entry>
Lo mismo que <constant>OCI_B_BLOB</constant>.
Idéntico a <constant>OCI_B_BLOB</constant>.
</entry>
</row>
<row xml:id="constant.sqlt-bol">
<entry><constant>SQLT_BOL</constant></entry>
<entry>
Lo mismo que <constant>OCI_B_BOL</constant>.
Idéntico a <constant>OCI_B_BOL</constant>.
</entry>
</row>
<row xml:id="constant.sqlt-cfilee">
<entry><constant>SQLT_CFILEE</constant></entry>
<entry>
Lo mismo que <constant>OCI_B_CFILEE</constant>.
Idéntico a <constant>OCI_B_CFILEE</constant>.
</entry>
</row>
<row xml:id="constant.sqlt-chr">
<entry><constant>SQLT_CHR</constant></entry>
<entry>
Usada con <function>oci_bind_array_by_name</function> para vincular arrays de
tipo VARCHAR2.
También se usa con <function>oci_bind_by_name</function>.
Utilizado con <function>oci_bind_array_by_name</function> para vincular
arrays de VARCHAR2.
También utilizado con <function>oci_bind_by_name</function>.
</entry>
</row>
<row xml:id="constant.sqlt-clob">
<entry><constant>SQLT_CLOB</constant></entry>
<entry>
Lo mismo que <constant>OCI_B_CLOB</constant>.
Idéntico a <constant>OCI_B_CLOB</constant>.
</entry>
</row>
<row xml:id="constant.sqlt-flt">
<entry><constant>SQLT_FLT</constant></entry>
<entry>
Usada con <function>oci_bind_array_by_name</function> para vincular arrays de
tipo FLOAT.
Utilizado con <function>oci_bind_array_by_name</function> para vincular
arrays de FLOAT.
</entry>
</row>
<row xml:id="constant.sqlt-int">
<entry><constant>SQLT_INT</constant></entry>
<entry>
Lo mismo que <constant>OCI_B_INT</constant>.
Idéntico a <constant>OCI_B_INT</constant>.
</entry>
</row>
<row xml:id="constant.sqlt-lbi">
<entry><constant>SQLT_LBI</constant></entry>
<entry>
Usada con <function>oci_bind_by_name</function> para vincular valores LONG RAW.
Utilizado con <function>oci_bind_by_name</function> para vincular
valores LONG RAW.
</entry>
</row>
<row xml:id="constant.sqlt-lng">
<entry><constant>SQLT_LNG</constant></entry>
<entry>
Usada con<function>oci_bind_by_name</function> para vincular valores LONG.
Utilizado con <function>oci_bind_by_name</function> para vincular valores LONG.
</entry>
</row>
<row xml:id="constant.sqlt-lvc">
<entry><constant>SQLT_LVC</constant></entry>
<entry>
Usada con <function>oci_bind_array_by_name</function> para vincular arrays de
tipo LONG VARCHAR.
Utilizado con <function>oci_bind_array_by_name</function> para vincular
arrays de LONG VARCHAR.
</entry>
</row>
<row xml:id="constant.sqlt-nty">
<entry><constant>SQLT_NTY</constant></entry>
<entry>
Lo mismo que <constant>OCI_B_NTY</constant>.
Idéntico a <constant>OCI_B_NTY</constant>.
</entry>
</row>
<row xml:id="constant.sqlt-num">
<entry><constant>SQLT_NUM</constant></entry>
<entry>
Lo mismo que <constant>OCI_B_NUM</constant>.
Idéntico a <constant>OCI_B_NUM</constant>.
</entry>
</row>
<row xml:id="constant.sqlt-odt">
<entry><constant>SQLT_ODT</constant></entry>
<entry>
Usada con <function>oci_bind_array_by_name</function> para vincular arrays de
tipo LONG.
Utilizado con <function>oci_bind_array_by_name</function> para
vincular arrays de LONG.
</entry>
</row>
<row xml:id="constant.sqlt-rdd">
<entry><constant>SQLT_RDD</constant></entry>
<entry>
Lo mismo que <constant>OCI_B_ROWID</constant>.
Idéntico a <constant>OCI_B_ROWID</constant>.
</entry>
</row>
<row xml:id="constant.sqlt-rset">
<entry><constant>SQLT_RSET</constant></entry>
<entry>
Lo mismo que <constant>OCI_B_CURSOR</constant>.
Idéntico a <constant>OCI_B_CURSOR</constant>.
</entry>
</row>
<row xml:id="constant.sqlt-str">
<entry><constant>SQLT_STR</constant></entry>
<entry>
Usada con <function>oci_bind_array_by_name</function> para vincular arrays de
tipo STRING.
Utilizado con <function>oci_bind_array_by_name</function> para
vincular arrays de string.
</entry>
</row>
<row xml:id="constant.sqlt-uin">
<entry><constant>SQLT_UIN</constant></entry>
<entry>
No soportada.
No soportado.
</entry>
</row>
<row xml:id="constant.sqlt-vcs">
<entry><constant>SQLT_VCS</constant></entry>
<entry>
Usada con <function>oci_bind_array_by_name</function> para vincular arrays de
tipo VARCHAR.
Utilizado con <function>oci_bind_array_by_name</function> para
vincular arrays de VARCHAR.
</entry>
</row>
</tbody>
</tgroup>
</table>
<table>
<title>Tipos de descriptores de OCI8</title>
<title>Tipos de descriptores OCI8</title>
<tgroup cols="2">
<thead>
<row>
@@ -441,47 +434,167 @@
<row xml:id="constant.oci-dtype-file">
<entry><constant>OCI_DTYPE_FILE</constant></entry>
<entry>
Esta bandera indica a <function>oci_new_descriptor</function> que
inicialice un nuevo descriptor FILE.
Esta opción indica a <function>oci_new_descriptor</function>
que inicialice un nuevo puntero FILE.
</entry>
</row>
<row xml:id="constant.oci-dtype-lob">
<entry><constant>OCI_DTYPE_LOB</constant></entry>
<entry>
Esta bandera indica a <function>oci_new_descriptor</function> que
inicialice un nuevo descriptor LOB.
Esta opción indica a <function>oci_new_descriptor</function>
que inicialice un nuevo descriptor LOB.
</entry>
</row>
<row xml:id="constant.oci-dtype-rowid">
<entry><constant>OCI_DTYPE_ROWID</constant></entry>
<entry>
Esta bandera indica a <function>oci_new_descriptor</function> que
inicialice un nuevo descriptor ROWID.
Esta opción indica a <function>oci_new_descriptor</function>
que inicialice un nuevo puntero LOB.
</entry>
</row>
<row xml:id="constant.oci-d-file">
<entry><constant>OCI_D_FILE</constant></entry>
<entry>
Lo mismo que <constant>OCI_DTYPE_FILE</constant>.
Idéntico a <constant>OCI_DTYPE_FILE</constant>.
</entry>
</row>
<row xml:id="constant.oci-d-lob">
<entry><constant>OCI_D_LOB</constant></entry>
<entry>
Lo mismo que <constant>OCI_DTYPE_LOB</constant>.
Idéntico a <constant>OCI_DTYPE_LOB</constant>.
</entry>
</row>
<row xml:id="constant.oci-d-rowid">
<entry><constant>OCI_D_ROWID</constant></entry>
<entry>
Lo mismo que <constant>OCI_DTYPE_ROWID</constant>.
Idéntico a <constant>OCI_DTYPE_ROWID</constant>.
</entry>
</row>
</tbody>
</tgroup>
</table>
<variablelist role="constant_list">
<title>Constantes de OCI8 Transparent Application Failover (TAF)</title>
<varlistentry xml:id="constant.oci-fo-abort">
<term>
<constant>OCI_FO_ABORT</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
El failover ha fallado y no hay posibilidad de reintentar.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.oci-fo-begin">
<term>
<constant>OCI_FO_BEGIN</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
El failover ha detectado una conexión perdida y comienza el failover.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.oci-fo-end">
<term>
<constant>OCI_FO_END</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
El failover ha finalizado con éxito.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.oci-fo-error">
<term>
<constant>OCI_FO_ERROR</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
El failover ha fallado pero permite a la aplicación gestionar el error y devolver <constant>OCI_FO_RETRY</constant> para reintentar el failover.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.oci-fo-none">
<term>
<constant>OCI_FO_NONE</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
El usuario no ha solicitado ningún tipo de failover.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.oci-fo-reauth">
<term>
<constant>OCI_FO_REAUTH</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Un usuario de Oracle ha sido reautenticado.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.oci-fo-retry">
<term>
<constant>OCI_FO_RETRY</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
El failover debe ser reintentado por Oracle.
En caso de error durante el failover a una nueva
conexión, TAF puede reintentar el failover.
Típicamente, el código de la aplicación debe dormir
durante un tiempo antes de devolver <constant>OCI_FO_RETRY</constant>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.oci-fo-select">
<term>
<constant>OCI_FO_SELECT</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
El usuario también ha solicitado el failover SELECT.
Permite a los usuarios con cursores abiertos continuar utilizándolos tras una caída.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.oci-fo-session">
<term>
<constant>OCI_FO_SESSION</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
El usuario ha solicitado únicamente el failover de sesión.
Por ejemplo, si la conexión de un usuario se pierde,
entonces se crea automáticamente una nueva sesión para el usuario en la copia de seguridad.
Este tipo de failover no intenta recuperar los SELECT.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.oci-fo-txnal">
<term>
<constant>OCI_FO_TXNAL</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
El usuario ha solicitado un failover de transacción.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</appendix>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
@@ -502,4 +615,3 @@ vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@@ -1,117 +1,119 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: a48bfbee2a121bdf25ceee2946aa27728e611365 Maintainer: seros Status: ready -->
<!-- EN-Revision: 5e41012cfdf8f2eff5fa56de446c7656afac536c Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<chapter xml:id="oci8.examples" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
&reftitle.examples;
<para>
En estos ejemplos se realiza la conexión con el usuario <literal>HR</literal>, que es
el esquema de ejemplo &quot;Human Resources&quot; proporcionado con la
base de datos Oracle. Podría ser necesario desbloquear la cuenta y
reiniciar la contraseña antes de poder usarla.
Estos ejemplos utilizan, para conectarse a la base de datos,
el usuario <literal>HR</literal> que es el esquema
<literal>&quot;Human Resources&quot;</literal> proporcionado por la
base de datos Oracle. Esta cuenta debe haber sido desbloqueada y
la contraseña reestablecida antes de poder utilizarla.
</para>
<para>
Los ejemplos se conectan a la base de datos <literal>XE</literal> de su
máquina. Cambie la cadena de conexión a su base de datos antes de ejecutar
los ejemplos.
Estos ejemplos se conectan a la base de datos
<literal>XE</literal> de su máquina. Modifique la cadena de conexión
para que corresponda a su base de datos antes de ejecutar los
ejemplos de esta documentación.
</para>
<example>
<title>Consulta básica</title>
<title>Consulta simple</title>
<para>
Este ejemplo muestra la realización de consultas y la visualización de resultados. Las sentencias
en OCI8 usan la secuencia de pasos 'preparación-ejecución-obtención'.
Este ejemplo muestra la ejecución de una consulta y la visualización de los resultados.
Las consultas OCI8 utilizan las etapas preparación/ejecución/recuperación
de datos.
</para>
<programlisting role="php">
<![CDATA[
<?php
$conexión = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conexión) {
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
// Preparar la sentencia
$stid = oci_parse($conexión, 'SELECT * FROM departments');
// Preparación de la consulta
$stid = oci_parse($conn, 'SELECT * FROM departments');
if (!$stid) {
$e = oci_error($conexión);
$e = oci_error($conn);
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
// Realizar la lógica de la consulta
// Ejecución de la lógica de la consulta
$r = oci_execute($stid);
if (!$r) {
$e = oci_error($stid);
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
// Obtener los resultados de la consulta
// Recuperación de los resultados de la consulta
print "<table border='1'>\n";
while ($fila = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
print "<tr>\n";
foreach ($fila as $elemento) {
print " <td>" . ($elemento !== null ? htmlentities($elemento, ENT_QUOTES) : "") . "</td>\n";
foreach ($row as $item) {
print " <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "") . "</td>\n";
}
print "</tr>\n";
}
print "</table>\n";
oci_free_statement($stid);
oci_close($conexión);
oci_close($conn);
?>
]]>
</programlisting>
</example>
<example>
<title>Inserción con variables vinculadas</title>
<title>Inserción de datos utilizando variables ligadas</title>
<para>
Las variables vinculadas mejoran el rendimiento permitiendo la reutilización de contextos
ejecutados y cachés. Las variables vinculadas mejoran la seguridad previniendo
algunos tipos de problemas de Inyecciones SQL.
Las variables ligadas aumentan el rendimiento permitiendo la reutilización
del caché y el contexto de ejecución. Las variables ligadas aumentan también
la seguridad previniendo muchos casos de inyección SQL.
</para>
<programlisting role="php">
<![CDATA[
<?php
// Antes de ejecutarlo, cree la tabla:
// Antes de la ejecución, cree la siguiente tabla:
// CREATE TABLE MYTABLE (mid NUMBER, myd VARCHAR2(20));
$conexión = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conexión) {
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$stid = oci_parse($conexión, 'INSERT INTO MYTABLE (mid, myd) VALUES(:myid, :mydata)');
$stid = oci_parse($conn, 'INSERT INTO MYTABLE (mid, myd) VALUES(:myid, :mydata)');
$id = 60;
$datos = 'Algunos datos';
$data = 'Some data';
oci_bind_by_name($stid, ':myid', $id);
oci_bind_by_name($stid, ':mydata', $datos);
oci_bind_by_name($stid, ':mydata', $data);
$r = oci_execute($stid); // ejecuta y consigna
$r = oci_execute($stid); // ejecución y validación
if ($r) {
print "Una fila insertada";
}
oci_free_statement($stid);
oci_close($conexión);
oci_close($conn);
?>
]]>
</programlisting>
</example>
<example>
<title>Vincular la cláusula WHERE a una consulta</title>
<title>Ligadura de una cláusula WHERE de una consulta</title>
<para>
Lo siguiente muestra una vinculación escalar única.
Esto muestra la ligadura simple.
</para>
<programlisting role="php">
<![CDATA[
@@ -132,7 +134,7 @@ while (($row = oci_fetch_array($stid, OCI_ASSOC)) != false) {
echo $row['LAST_NAME'] ."<br>\n";
}
// La salida es
// Muestra:
// Austin
// Ernst
// Hunold
@@ -146,54 +148,55 @@ oci_close($conn);
]]>
</programlisting>
</example>
<example>
<title>Insertar datos en una columna CLOB</title>
<title>Inserción de datos en una columna CLOB</title>
<para>
Para datos grandes use los tipos objeto grande binario (BLOB) u objeto
grande de caracteres (CLOB). Este ejemplo usa CLOB.
Para datos grandes, utilice un objeto binario largo (BLOB)
o un objeto de caracteres largo (CLOB). Este ejemplo utiliza los CLOB.
</para>
<programlisting role="php">
<![CDATA[
<?php
// Antes de ejecutarlo, cree la tabla:
// Antes de la ejecución, cree la siguiente tabla:
// CREATE TABLE MYTABLE (mykey NUMBER, myclob CLOB);
$conexión = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conexión) {
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$mykey = 12343; // clave arbitraria para este ejemplo;
$mykey = 12343; // clave arbitraria para el ejemplo
$sql = "INSERT INTO mytable (mykey, myclob)
VALUES (:mykey, EMPTY_CLOB())
RETURNING myclob INTO :myclob";
$stid = oci_parse($conexión, $sql);
$clob = oci_new_descriptor($conexión, OCI_D_LOB);
$stid = oci_parse($conn, $sql);
$clob = oci_new_descriptor($conn, OCI_D_LOB);
oci_bind_by_name($stid, ":mykey", $mykey, 5);
oci_bind_by_name($stid, ":myclob", $clob, -1, OCI_B_CLOB);
oci_execute($stid, OCI_NO_AUTO_COMMIT); // utilice OCI_DEFAULT para PHP <= 5.3.1
$clob->save("Una cadena muy grande");
oci_execute($stid, OCI_NO_AUTO_COMMIT);
$clob->save("Una cadena realmente muy larga");
oci_commit($conexión);
oci_commit($conn);
// Obtener los datos CLOB
// Recuperación de datos CLOB
$consulta = 'SELECT myclob FROM mytable WHERE mykey = :mykey';
$query = 'SELECT myclob FROM mytable WHERE mykey = :mykey';
$stid = oci_parse ($conexión, $consulta);
$stid = oci_parse ($conn, $query);
oci_bind_by_name($stid, ":mykey", $mykey, 5);
oci_execute($stid);
print '<table border="1">';
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_LOBS)) {
print '<tr><td>'.$row['MYCLOB'].'</td></tr>';
// En un bucle, liberar la variable grande antes de la 2ª obtención reduce el uso de memoria de picos de PHP
unset($row);
// En un bucle, liberar la variable antes de recuperar la
// segunda línea permite reducir el uso de memoria de PHP
unset($row);
}
print '</table>';
@@ -201,20 +204,20 @@ print '</table>';
]]>
</programlisting>
</example>
<example>
<title>Usar una función almacenada de PL/SQL</title>
<title>Uso de una función almacenada PL/SQL</title>
<para>
Se debe vincular una variable para el valor de retorno y, opcionalmente, para
cualquier argumento de la función de PL/SQL.
Debe ligar una variable para el valor devuelto y, opcionalmente,
para todos los argumentos de la función PL/SQL.
</para>
<programlisting role="php">
<![CDATA[
<?php
/*
Antes de ejecutar el programa de PHP, cree una función almacenada en
SQL*Plus o SQL Developer:
Antes de ejecutar el programa PHP, cree una función almacenada
en lenguaje SQL*Plus o SQL Developer:
CREATE OR REPLACE FUNCTION myfunc(p IN NUMBER) RETURN NUMBER AS
BEGIN
@@ -223,42 +226,43 @@ print '</table>';
*/
$conexión = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conexión) {
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$p = 8;
$stid = oci_parse($conexión, 'begin :r := myfunc(:p); end;');
$stid = oci_parse($conn, 'begin :r := myfunc(:p); end;');
oci_bind_by_name($stid, ':p', $p);
oci_bind_by_name($stid, ':r', $r, 40);
oci_execute($stid);
print "$r\n"; // imprime 24
print "$r\n"; // Muestra 24
oci_free_statement($stid);
oci_close($conexión);
oci_close($conn);
?>
]]>
</programlisting>
</example>
<example>
<title>Utilizar un procedimiento almacenado de PL/SQL</title>
<title>Uso de una procedimiento almacenado PL/SQL</title>
<para>
Con los procedimientos almacenados se deberían vincular variables para cualquier argumento.
Con los procedimientos almacenados, debe ligar las variables para todos
los argumentos.
</para>
<programlisting role="php">
<![CDATA[
<?php
/*
Antes de ejecutar el programa de PHP, cree un procedimiento almacenado en
SQL*Plus or SQL Developer:
Antes de ejecutar el programa PHP, cree un procedimiento almacenado en
lenguaje SQL*Plus o SQL Developer:
CREATE OR REPLACE PROCEDURE myproc(p1 IN NUMBER, p2 OUT NUMBER) AS
BEGIN
@@ -267,41 +271,41 @@ oci_close($conexión);
*/
$conexión = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conexión) {
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$p1 = 8;
$stid = oci_parse($conexión, 'begin myproc(:p1, :p2); end;');
$stid = oci_parse($conn, 'begin myproc(:p1, :p2); end;');
oci_bind_by_name($stid, ':p1', $p1);
oci_bind_by_name($stid, ':p2', $p2, 40);
oci_execute($stid);
print "$p2\n"; // imprime 16
print "$p2\n"; // muestra 16
oci_free_statement($stid);
oci_close($conexión);
oci_close($conn);
?>
]]>
</programlisting>
</example>
<example>
<title>Llamar a una función de PL/SQL que devuelve un <literal>REF CURSOR</literal></title>
<title>Llamada a una función PL/SQL que devuelve un <literal>REF CURSOR</literal></title>
<para>
Cada valor devuelto por la consulta es un <literal>REF
CURSOR</literal> desde el que se pueden obtener datos.
CURSOR</literal> a utilizar para recuperar los datos.
</para>
<programlisting role="php">
<![CDATA[
<?php
/*
Cree una función almacenada de PL/SQL como:
Cree una función almacenada PL/SQL de la siguiente manera:
CREATE OR REPLACE FUNCTION myfunc(p1 IN NUMBER) RETURN SYS_REFCURSOR AS
rc SYS_REFCURSOR;
@@ -311,32 +315,32 @@ oci_close($conexión);
END;
*/
$conexión = oci_connect('hr', 'welcome', 'localhost/XE');
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
$stid = oci_parse($conexión, 'SELECT myfunc(5) AS mfrc FROM dual');
$stid = oci_parse($conn, 'SELECT myfunc(5) AS mfrc FROM dual');
oci_execute($stid);
echo "<table border='1'>\n";
while (($fila = oci_fetch_array($stid, OCI_ASSOC))) {
while (($row = oci_fetch_array($stid, OCI_ASSOC))) {
echo "<tr>\n";
$rc = $fila['MFRC'];
oci_execute($rc); // el valor de la columna devuelta por la consulta es un ref cursor
while (($fila_rc = oci_fetch_array($rc, OCI_ASSOC))) {
echo " <td>" . $fila_rc['CITY'] . "</td>\n";
$rc = $row['MFRC'];
oci_execute($rc); // El valor de la columna devuelto desde la consulta es una referencia de cursor
while (($rc_row = oci_fetch_array($rc, OCI_ASSOC))) {
echo " <td>" . $rc_row['CITY'] . "</td>\n";
}
oci_free_statement($rc);
echo "</tr>\n";
}
echo "</table>\n";
// La salida es:
// Muestra:
// Beijing
// Bern
// Bombay
// Geneva
oci_free_statement($stid);
oci_close($conexión);
oci_close($conn);
?>
]]>
@@ -364,4 +368,3 @@ vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@@ -1,62 +1,63 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: cb2e7b70b1354e5468e538720d59c37e273bc98e Maintainer: seros Status: ready -->
<!-- EN-Revision: f4c44b86948f70a7e89f582b500e2595452e00f0 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<chapter xml:id="oci8.fan" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>OCI8 Fast Application Notification (FAN) Support</title>
<section>
<title>Soporte para Fast Application Notification (FAN)</title>
<title>Soporte de FAN (Fast Application Notification : Notificación Rápida de Aplicación) OCI8</title>
<para>
El soporte para FAN proporciona tolerancia a fallos rápida para conexiones, una característica de alta
disponibilidad de Oracle Database. Permite que los scripts de OCI8 para PHP sean informados cuando una
máquina o una instancia de una base de datos no esté disponible. Sin
FAN, OCI8 puede suspenderse hasta que se agote el tiempo de espera de TCP, lo que devolvería
un error que podría llevar varios minutos en emitirse. La habilitación de FAN en OCI8 puede
hacer que las aplicaciones detecten errores y se reconecten a una instancia de bases
de datos disponbile sin que el usuario web note ningún corte.
El soporte de FAN proporciona un cambio de conexión rápido,
una funcionalidad de alta disponibilidad para la base de datos Oracle.
Permite a los scripts PHP OCI8 ser notificados cuando una máquina
de base de datos o una instancia de base de datos se vuelve
no disponible. Sin FAN, OCI8 puede bloquearse en caso de alcanzar el tiempo límite
TCP, y se devuelve un error, lo cual puede tomar varios minutos.
La activación de FAN en OCI8 permite a las aplicaciones detectar los errores
y reconectarse a una instancia de conexión disponible sin
que el servidor Web necesite conocerlo.
</para>
<para>
El soporte para FAN está disponible cuando las bibliotecas cliente de Oracle que PHP
vincule con Oracle Database sean la versión 10gR2 o posterior.
El soporte de FAN está disponible cuando las bibliotecas clientes
Oracle vinculadas a PHP y la base de datos Oracle son de la versión
10gR2 o superiores.
</para>
<para>
FAN beneficia a los usuarios de la tecnología del uso de clúster de Oracle (RAC) debido a que
se pueden realizar de forma inmediata conexiones a instancias de bases de datos
supervivientes. Los usarios de Oracle's Data Guard con un agente verán los eventos
de FAN generados cuando una base de datos en espera vuelva a estar en línea. Las bases de datos
independientes enviarán eventos FAN cuando se reinicien.
FAN beneficia a los usuarios de la tecnología de clúster Oracle (RAC)
ya que las conexiones sobrevivientes a las instancias de base de datos pueden
realizarse inmediatamente. Los usuarios de Oracle Data Guard con un broker,
verán los eventos FAN generados cuando una base de datos pasa a estar en línea. Las bases de datos que no forman parte de un clúster
enviarán eventos FAN cuando la base de datos se reinicie.
</para>
<para>
Para conexiones activas, cuando una máquina o una instancia de bases de datos no esté
disponible, la función de la extensión OCI8 que está siendo llamada
devolverá un error de fallo de conexión. En una reconexión subsiguiente
de un script de PHP, se establecerá una conexión a una instancia de una
base de datos superviviente. La extensión OCI8 también
limpia de forma transparente cualquier conexión inactiva afectafa por un fallo de una máquina
o instancia de base de datos, por lo que la conexión de PHP establecerá una
conexión fresca sin que el script note ninguna interrupción del
servicio.
Para las conexiones activas, cuando una máquina o una instancia de
base de datos se vuelve indisponible, se devolverá un error de conexión
por la función de la extensión OCI8 llamada. Durante la reconexión
de un script PHP subyacente, se establecerá una conexión a una instancia de base de datos
sobreviviente. La extensión OCI8 también, de forma transparente,
limpiará todas las conexiones inactivas afectadas por una máquina de
base de datos o una instancia en fallo, así, las llamadas de conexión PHP
establecerán una nueva conexión sin que el script lo sepa,
evitando así cualquier interrupción del servicio.
</para>
<para>
Cuando el valor de <link linkend="ini.oci8.events">oci8.events</link>
es <literal>On</literal>, se sugiere establecer
Cuando <link linkend="ini.oci8.events">oci8.events</link>
vale <literal>On</literal>, se sugiere definir
<link linkend="ini.oci8.ping-interval">oci8.ping_interval</link>
a -1 para deshabilitar la comprobación de la conexión, ya que al habilitar los eventos de FAN se proporciona
una gestión de conexiones proactivas de conexiones inactivas invalidadas
por la interrupción de un servicio.
a -1 para desactivar el ping, sabiendo que la activación de los eventos FAN
proporciona un gestor de conexiones proactivo de las conexiones inactivas
que se han vuelto inválidas por una interrupción del servicio.
</para>
<para>
Para habilitar el soporte de FAN en PHP, construya PHP con las bibliotecas 10gR2 o posteriores
de Oracle y siga estos pasos:
Para activar el soporte FAN en PHP OCI8, compile PHP OCI8 con las
bibliotecas Oracle 10gR2 o superiores, luego, siga estos pasos:
</para>
<para>
<itemizedlist>
<listitem>
<simpara>
Como administrador de bases de datos con privilegios, use un programa como
SQL*Plus para habilitar el servicio de bases de datos para enviar enventos FAN, por
ejemplo:
Con los privilegios de administrador de la base de datos, utilice
un programa como SQL*Plus para activar el servicio de base de datos
para publicar los eventos FAN; por ejemplo:
</simpara>
<para>
<informalexample>
@@ -72,7 +73,7 @@
</listitem>
<listitem>
<simpara>
Edite php.ini y agregue
Edite el archivo php.ini y añada:
</simpara>
<para>
<informalexample>
@@ -86,20 +87,19 @@
</listitem>
<listitem>
<simpara>
Si la aplicación aún no gestiona las condiciones de error
de OCI8, modifíquela para que detecte fallos y tome las acciones
apropiadas. Esto prodría incluir la reconexión y la reejecución
de sentencias.
Si la aplicación no gestiona aún las condiciones de error
OCI8, modifíquela para detectar los fallos. Esto puede requerir
la reconexión y la re-ejecución de las consultas.
</simpara>
</listitem>
<listitem>
<simpara>
Ejecute la aplicación, conecte a una base de datos de Oracle 10gR2 o posterior.
Ejecute la aplicación, conéctese a la base de datos
Oracle 10gR2 o superiores.
</simpara>
</listitem>
</itemizedlist>
</para>
</section>
</chapter>
<!-- Keep this comment at the end of the file
@@ -122,4 +122,3 @@ vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@@ -1,32 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: fc4b5ceed64bea906904851d0ab8b1cd84b2e2e8 Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<!-- EN-Revision: ed6de1ae20ce16c0c7be0b3fef282b6065bebfac Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.oci-bind-array-by-name" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_bind_array_by_name</refname>
<refpurpose>Vincula un array de PHP con un parámetro de un array de Oracle PL/SQL</refpurpose>
<refpurpose>Asocia un array PHP a un parámetro de array Oracle PL/SQL</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>oci_bind_array_by_name</methodname>
<methodparam><type>resource</type><parameter>statement</parameter></methodparam>
<methodparam><type>string</type><parameter>name</parameter></methodparam>
<methodparam><type>array</type><parameter role="reference">var_array</parameter></methodparam>
<methodparam><type>int</type><parameter>max_table_length</parameter></methodparam>
<methodparam><type>string</type><parameter>param</parameter></methodparam>
<methodparam><type>array</type><parameter role="reference">var</parameter></methodparam>
<methodparam><type>int</type><parameter>max_array_length</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>max_item_length</parameter><initializer>-1</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>type</parameter><initializer>SQLT_AFC</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>type</parameter><initializer><constant>SQLT_AFC</constant></initializer></methodparam>
</methodsynopsis>
<para>
Vincular el array de PHP <parameter>var_array</parameter> al parámetro de sustitución
de Oracle <parameter>name</parameter>, el cual apunta a un array de Oracle PL/SQL.
Se determinará si será usado para entrada o salida en
tiempo de ejecución.
Asocia un array PHP <parameter>var</parameter> a un marcador
Oracle <parameter>param</parameter>, que apunta a un array PL/SQL.
Puede ser utilizado para entrada o salida, dependiendo de la configuración en tiempo de ejecución.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -35,20 +35,20 @@
<term><parameter>statement</parameter></term>
<listitem>
<para>
Un identificador de sentencia de OCI válido.
Un identificador de consulta OCI válido.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>name</parameter></term>
<term><parameter>param</parameter></term>
<listitem>
<para>
El parámetro de sustitución de Oracle.
El marcador Oracle.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>var_array</parameter></term>
<term><parameter>var</parameter></term>
<listitem>
<para>
Un array.
@@ -56,10 +56,10 @@
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>max_table_length</parameter></term>
<term><parameter>max_array_length</parameter></term>
<listitem>
<para>
Establece la longitud máxima para los arrays entrantes y resultantes.
Especifica la longitud máxima de los arrays de entrada y resultado.
</para>
</listitem>
</varlistentry>
@@ -67,9 +67,11 @@
<term><parameter>max_item_length</parameter></term>
<listitem>
<para>
Establece la longitud máxima para los elementos del array. Si no se especifica o es igual a -1,
<function>oci_bind_array_by_name</function> buscará el elemento más
largo en el array entrante y usará su longitud como valor.
Define la longitud máxima para los elementos del array.
Si <parameter>max_item_length</parameter> no se proporciona
o si vale -1, <function>oci_bind_array_by_name</function> buscará
el elemento más largo en el array de entrada y lo utilizará como
longitud máxima.
</para>
</listitem>
</varlistentry>
@@ -77,8 +79,8 @@
<term><parameter>type</parameter></term>
<listitem>
<para>
Debería usarse para establecer el tipo de los elementos del arrary de PL/SQL. La lista
siguiente muestra los tipos disponibles:
Debe ser utilizado para definir el tipo de los elementos PL/SQL.
Consulte la lista de tipos disponibles a continuación:
</para>
<para>
<itemizedlist>
@@ -89,50 +91,49 @@
</listitem>
<listitem>
<para>
<constant>SQLT_INT</constant> - para arrays de INTEGER (Nota: INTEGER
es en realidad un sinónimo de NUMBER(38), pero el tipo
<constant>SQLT_NUM</constant> no funcionará en este caso
aunque sean sinónimos).
<constant>SQLT_INT</constant> - para arrays INTEGER (Nota: INTEGER
actualmente es un sinónimo de NUMBER(38), pero el tipo
<constant>SQLT_NUM</constant> no funcionará en este caso aunque sean sinónimos).
</para>
</listitem>
<listitem>
<para>
<constant>SQLT_FLT</constant> - para arrays de tipo FLOAT.
<constant>SQLT_FLT</constant> - para arrays de FLOAT.
</para>
</listitem>
<listitem>
<para>
<constant>SQLT_AFC</constant> - para arrays de tipo CHAR.
<constant>SQLT_AFC</constant> - para arrays de CHAR.
</para>
</listitem>
<listitem>
<para>
<constant>SQLT_CHR</constant> - para arrays de tipo VARCHAR2.
<constant>SQLT_CHR</constant> - para arrays de VARCHAR2.
</para>
</listitem>
<listitem>
<para>
<constant>SQLT_VCS</constant> - para arrays de tipo VARCHAR.
<constant>SQLT_VCS</constant> - para arrays de VARCHAR.
</para>
</listitem>
<listitem>
<para>
<constant>SQLT_AVC</constant> - para arrays de tipo CHARZ.
<constant>SQLT_AVC</constant> - para arrays de CHARZ.
</para>
</listitem>
<listitem>
<para>
<constant>SQLT_STR</constant> - para arrays de tipo STRING.
<constant>SQLT_STR</constant> - para arrays de STRING.
</para>
</listitem>
<listitem>
<para>
<constant>SQLT_LVC</constant> - para arrays de tipo LONG VARCHAR.
<constant>SQLT_LVC</constant> - para arrays de LONG VARCHAR.
</para>
</listitem>
<listitem>
<para>
<constant>SQLT_ODT</constant> - para arrays de tipo DATE.
<constant>SQLT_ODT</constant> - para arrays de DATE.
</para>
</listitem>
</itemizedlist>
@@ -142,19 +143,19 @@
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Ejemplo de <function>oci_bind_array_by_name</function></title>
<title>Ejemplo con <function>oci_bind_array_by_name</function></title>
<programlisting role="php">
<![CDATA[
<?php
@@ -186,7 +187,7 @@ CREATE OR REPLACE PACKAGE BODY ARRAYBINDPKG1 AS
FORALL i IN INDICES OF c1
INSERT INTO bind_example VALUES (c1(i));
-- Fetch and reverse
-- Fetch and reverse;
IF NOT CUR%ISOPEN THEN
OPEN CUR;
END IF;
@@ -215,9 +216,8 @@ var_dump($array);
</example>
</para>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
@@ -238,4 +238,3 @@ vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

File diff suppressed because it is too large Load Diff

View File

@@ -1,13 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: cd110607fd94ccea0f99a693be555a50ce5c6b1e Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<!-- EN-Revision: ed6de1ae20ce16c0c7be0b3fef282b6065bebfac Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes Maintainer: PhilDaiguille -->
<refentry xml:id="function.oci-client-version" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_client_version</refname>
<refpurpose>Devuelve la versión de la biblioteca cliente de Oracle</refpurpose>
<refpurpose>Devuelve la versión de la biblioteca cliente Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
@@ -15,51 +16,53 @@
<void />
</methodsynopsis>
<para>
Devuelve un string que contiene el número de la versión de la biblioteca cliente en C de Oracle a la que está vinculada PHP.
Devuelve un &string; que contiene el número de versión
de la biblioteca cliente Oracle C, a la cual PHP está ligada.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
Ninguno
Ninguno.
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve el número de la versión como un string.
Devuelve el número de versión, en forma de un &string;.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Ejemplo de <function>oci_client_version</function></title>
<title>Ejemplo con <function>oci_client_version</function></title>
<programlisting role="php">
<![CDATA[
<?php
echo "Versión cliente: " . oci_client_version(); // Versión cliente: 11.2.0.2
echo "Client Version: " . oci_client_version(); // Versión del cliente: 19.9.0.0.0
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Las bibliotecas de Oracle anteriores a 10<emphasis>g</emphasis>R2 no tienen la funcionalidad
subyacente para obtener el número de la versión de la biblioteca cliente. En
este caso será devuelto la cadena "Unknown".
Las bibliotecas Oracle anteriores a la 10<emphasis>g</emphasis>R2 no poseían
funcionalidad interna para recuperar el número
de versión de la biblioteca. La cadena "Unknow" será devuelta
en este caso.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -68,7 +71,7 @@
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View File

@@ -1,31 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: a44a1e0b7918846659a3c91013855d2c3d674fb9 Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<!-- EN-Revision: 5e41012cfdf8f2eff5fa56de446c7656afac536c Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.oci-close" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_close</refname>
<refpurpose>Cierra una conexión a Oracle</refpurpose>
<refpurpose>Cierra una conexión Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>oci_close</methodname>
<type class="union"><type>bool</type><type>null</type></type><methodname>oci_close</methodname>
<methodparam><type>resource</type><parameter>connection</parameter></methodparam>
</methodsynopsis>
<para>
Desestablece <parameter>connection</parameter>. La conexión subyacentte
a la base de datos se cierra si otros recursos no la están utilizando y si
fue creada con <function>oci_connect</function>
o <function>oci_new_connect</function>.
Cierra una conexión <parameter>connection</parameter> Oracle.
La conexión se cerrada si ninguna recurso la utiliza y si
fue creada con la función <function>oci_connect</function>
o la función <function>oci_new_connect</function>.
</para>
<para>
Se recomienda cerrar las conexiones que no sean necesarias
ya que esto hace que los recursos de la base de datos estén disponbles para otros usuarios.
Se recomienda cerrar las conexiones que ya no sean necesarias,
liberando así más recursos para otros usuarios.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -34,8 +34,8 @@
<term><parameter>connection</parameter></term>
<listitem>
<para>
Un identificador de conexión de Oracle devuelto por
<function>oci_connect</function>, <function>oci_pconnect</function>
Un identificador de conexión Oracle, retornado por la función
<function>oci_connect</function>, <function>oci_pconnect</function>,
o <function>oci_new_connect</function>.
</para>
</listitem>
@@ -43,182 +43,172 @@
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
Retorna &null; cuando <link linkend="ini.oci8.old-oci-close-semantics">oci8.old_oci_close_semantics</link>
está activado, &true; en caso contrario.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<example>
<title>Cerrar una conexión</title>
<title>Cierre de una conexión</title>
<para>
Los recursos asociados con una conexión deberían cerrarse para asegurarse
de que la conexión subyacente a la base de datos sea finalizada apropiadamente y sean
liberados los recursos de la base de datos.
Los recursos asociados con una conexión deben ser cerrados
para asegurar a la base de datos subyacente el fin de
las operaciones y así liberar los recursos.
</para>
<programlisting role="php">
<![CDATA[
<?php
$conexión = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conexión) {
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$stid = oci_parse($conexión, 'SELECT * FROM departments');
$stid = oci_parse($conn, 'SELECT * FROM departments');
$r = oci_execute($stid);
oci_fetch_all($stid, $res);
var_dump($res);
// Liberar el identificador de sentencia al cerrar la conexión
// Liberación del identificador de consulta al cerrar la conexión
oci_free_statement($stid);
oci_close($conexión);
oci_close($conn);
?>
]]>
</programlisting>
</example>
<example>
<title>Las conexiones a bases de datos no se cierran hasta que todas las referencias sean cerradas</title>
<title>Las conexiones a la base de datos son cerradas cuando las referencias lo son</title>
<para>
La cuenta de referencias interna de un identificador de conexión debe ser cero
antes de que sea cerrada la conexión subyacente a la base de datos.
El identificador interno que cuenta las conexiones debe valer cero
para poder cerrar la conexión.
</para>
<programlisting role="php">
<![CDATA[
<?php
$conexión = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conexión) {
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$stid = oci_parse($conexión, 'SELECT * FROM departments'); // esto incrementa la cuenta de referencias de $conn
$stid = oci_parse($conn, 'SELECT * FROM departments'); // esto incrementa el contador interno $conn
oci_execute($stid);
oci_fetch_all($stid, $res);
var_dump($res);
oci_close($conexión);
oci_close($conn);
// $conexión ya no puede ser utilizada en el script, pero la conexión subyacente
// a la base de datos aún se mantiene abierta, hasta que $stid sea liberado.
var_dump($conexión); // imprime NULL
// $conn ya no es utilizable en el script pero la conexión subyacente a
// la base de datos sigue abierta mientras $stid no sea liberada.
var_dump($conn); // muestra NULL
// Mientras PHP duerme, consultar la vista V$SESSION de Oracle en una
// ventana terminal mostrará que el ususario de la base de datos que aún está conectado.
// Mientras PHP espera, el hecho de consultar la vista V$SESSION de Oracle
// en un terminal mostrará que un usuario sigue conectado.
sleep(10);
// Cuando $stid es liberado, la conexión a la base de datos se cierra físicamente
oci_free_statement($stid);
// Cuando $stid es liberada, la conexión a la base de datos se físicamente cerrada
oci_free_statement($stid);
// Mientras PHP duerme, consultar la vista V$SESSION de Oracle en una
// ventana terminal mostrará que el ususario de la base de datos se ha desconectado.
// Mientras PHP espera, el hecho de consultar la vista V$SESSION de Oracle
// en un terminal mostrará que el usuario se ha desconectado.
sleep(10);
?>
]]>
</programlisting>
</example>
<example>
<title>Cerrar una conexión abierta más de una vez</title>
<title>Cierre de una conexión abierta más de una vez</title>
<para>
Cuando se reutilizan las credenciales de la base de datos, ambas conexiones deben cerrarse
antes de que se cierre la conexión subyacente a la base de datos.
Cuando se reutilizan identificadores de base de datos, todas las conexiones
deben ser cerradas antes de que la conexión subyacente a la base de datos lo sea realmente.
</para>
<programlisting role="php">
<![CDATA[
<?php
$conexión1 = oci_connect('hr', 'welcome', 'localhost/XE');
$conn1 = oci_connect('hr', 'welcome', 'localhost/XE');
// Al usar las mismas credenciales se reutiliza la misma conexión subyacente a la base de datos
// Cualquier cambio no consignado realizado a $conexión1 será visible en $conexión2
$conexión2 = oci_connect('hr', 'welcome', 'localhost/XE');
// La utilización de los mismos identificadores reutiliza la misma conexión subyacente a la base de datos.
// Todas las modificaciones no confirmadas realizadas sobre $conn1 serán visibles sobre $conn2.
$conn2 = oci_connect('hr', 'welcome', 'localhost/XE');
// Mientras PHP duerme, consultar la vista V$SESSION de Oracle en una
// ventana terminal mostrará que solamente está conectado un ususario de la base de datos.
// Mientras PHP espera, el hecho de consultar la vista V$SESSION de Oracle
// en un terminal mostrará que un solo usuario está conectado.
sleep(10);
oci_close($conexión1); // no cierra la conexión subyacente a la base de datos
var_dump($conexión1); // imprime NULL debido a que la variable $conexión1 ya no se puede utilizar
var_dump($conexión2); // muestra que $conexión2 aún es un recurso de conexión válido
oci_close($conn1); // no cierra la conexión subyacente a la base de datos
var_dump($conn1); // muestra NULL ya que la variable $conn1 ya no es utilizable
var_dump($conn2); // muestra que $conn2 sigue siendo un recurso de conexión válido
?>
]]>
</programlisting>
</example>
<example>
<title>Las conexsiones se cierran cuando las variables salen de su ámbito</title>
<title>Las conexiones son cerradas cuando las variables salen del contexto</title>
<para>
Cuando todas las variables que hacen referencia a una conexión salen de su ámbito y
son liberadas por PHP, se produce una reversión (rollback), si fuera necesaria, y la
conexión subyacente a la base de datos se cierra.
Cuando todas las variables que referencian una conexión salen del contexto
y son liberadas por PHP, se produce un rollback (si es necesario) y la conexión
subyacente a la base de datos es cerrada.
</para>
<programlisting role="php">
<![CDATA[
<?php
function myfunc() {
$conexión = oci_connect('hr', 'hrpwd', 'localhost/XE');
if (!$conexión) {
$conn = oci_connect('hr', 'hrpwd', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$stid = oci_parse($conexión, 'UPDATE mytab SET id = 100');
$stid = oci_parse($conn, 'UPDATE mytab SET id = 100');
oci_execute($stid, OCI_NO_AUTO_COMMIT);
return "Finalizado";
return "Finished";
}
$r = myfunc();
// En este punto sucede la reversión y la conexión subyacente a la base de datos queda cerrada.
// En este momento, se produce un rollback y la conexión subyacente a la base de datos es cerrada.
print $r; // muestra el valor de retorno "Finalizado" de la función.
print $r; // muestra el valor de retorno de la función "Finished"
?>
]]>
</programlisting>
</example>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Las variables que poseen una dependencia sobre el identificador de conexión,
tales como los identificadores de sentencias devueltos
por <function>oci_parse</function>, también deben ser liberadas antes de
cerra la conexión subyacente a la base de datos.
Las variables que dependen del identificador de conexión,
como los identificadores de consulta retornados por la función
<function>oci_parse</function>, deben ser liberadas antes de
intentar cerrar la conexión subyacente a la base de datos.
</para>
</note>
<note>
<para>
Antes de la versión 5.1.2 de PHP (PECL OCI8
1.1) <function>oci_close</function> no operaba. En versiones más
recientes cierra correctamente la conexión a Oracle.
Use la opción <link linkend="ini.oci8.old-oci-close-semantics">oci8.old_oci_close_semantics</link>
para restablecer el comportamento antiguo de esta función.
La función <function>oci_close</function> no cierra las conexiones subyacentes
a la base de datos creadas por la función <function>oci_pconnect</function>.
</para>
</note>
<note>
<para>
La función <function>oci_close</function> no cierra las
conexiones subyacentes de la bases de datos creadas
con <function>oci_pconnect</function>.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -228,9 +218,8 @@ print $r; // muestra el valor de retorno "Finalizado" de la función.
</simplelist>
</para>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml

View File

@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: ae5ececd1763fea7c2b3f47d913c7236ff6e4467 Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<!-- EN-Revision: 5e41012cfdf8f2eff5fa56de446c7656afac536c Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes Maintainer: PhilDaiguille -->
<refentry xml:id="function.oci-commit" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_commit</refname>
<refpurpose>Consigna la transacción pendiente de la base de datos</refpurpose>
<refpurpose>Valida las transacciones Oracle en curso</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
@@ -15,26 +15,27 @@
<methodparam><type>resource</type><parameter>connection</parameter></methodparam>
</methodsynopsis>
<para>
Consigna la transacción pendiente de la conexión de
Oracle dada por <parameter>connection</parameter>. Una consignación finaliza la
transacción actual y hace permanente todos los cambios. Libera todos
los bloqueos que hubiera.
Valida todas las transacciones en curso en la conexión Oracle
<parameter>connection</parameter>. Una validación hace permanentes
todas las modificaciones, liberando todos los bloqueos.
</para>
<para>
Una transacción comienza cuando la primera sentencia SQL que modifica datos
es ejecutada con <function>oci_execute</function> usando
la bandera <constant>OCI_NO_AUTO_COMMIT</constant>. Las modificaciones posteriores
de datos realizados por otra sentencia serán parte de la misma
transacción. Las modificaciones hechas en una transacción son temporales
hasta que sea consignada o revertida. Los demás usuarios de
la base de datos no verán dichos cambios hasta que sean consignados.
Una transacción comienza cuando se ejecuta la primera consulta SQL
que modifica datos con la función
<function>oci_execute</function> utilizando el flag
<constant>OCI_NO_AUTO_COMMIT</constant>. Las modificaciones siguientes
realizadas por otras consultas forman parte de la misma transacción. Los datos
modificados por una transacción son temporales hasta que la transacción sea
validada o revertida. Otros usuarios de la base de datos no verán estas
modificaciones hasta que la transacción sea validada.
</para>
<para>
Cuando se insertan datos, se recomienda usar transacciones para
mantener la consistencia de datos relacionales y por motivos de rendimiento.
Al insertar o actualizar datos, el uso de transacciones es recomendado
para garantizar la consistencia relacional de los datos, así como para
mejorar el rendimiento.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -43,54 +44,54 @@
<term><parameter>connection</parameter></term>
<listitem>
<para>
Un identificador de conexión de Oracle, devuelto por
<function>oci_connect</function>, <function>oci_pconnect</function>, o <function>oci_new_connect</function>.
Un identificador de conexión Oracle, devuelto por la función
<function>oci_connect</function>, <function>oci_pconnect</function>,
o <function>oci_new_connect</function>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Ejemplo de <function>oci_commit</function></title>
<title>Ejemplo con <function>oci_commit</function></title>
<programlisting role="php">
<![CDATA[
<?php
// Insertar en varias tablas, y revertir los cambios si ocurrió un error
// Inserción en múltiples tablas, con cancelación de las modificaciones si ocurren errores
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
$stid = oci_parse($conn, "INSERT INTO mysalary (id, name) VALUES (1, 'Chris')");
// La bandera OCI_NO_AUTO_COMMIT indica a Oracle que no consigne el INSERT inmediatamente
// Use OCI_DEFAULT como bandera para PHP <= 5.3.1. Las dos banderas son equivalentes
// El flag OCI_NO_AUTO_COMMIT indica a Oracle que no valide las inserciones automáticamente.
$r = oci_execute($stid, OCI_NO_AUTO_COMMIT);
if (!$r) {
if (!$r) {
$e = oci_error($stid);
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
$stid = oci_parse($conn, 'INSERT INTO myschedule (startday) VALUES (12)');
$r = oci_execute($stid, OCI_NO_AUTO_COMMIT);
if (!$r) {
if (!$r) {
$e = oci_error($stid);
oci_rollback($conn); // revertir los cambios en ambas tablas
oci_rollback($conn); // Cancelación de las modificaciones en las 2 tablas
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
// Consignar los cambios de ambas tablas
// Valida las modificaciones en las 2 tablas
$r = oci_commit($conn);
if (!$r) {
$e = oci_error($conn);
@@ -103,29 +104,30 @@ if (!$r) {
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Las transacciones son revertidas automáticamente cuando se cierra la
conexión, o cuando el script finaliza, lo que suceda antes. Es
necesario llamar a <function>oci_commit</function> para consignar
la transacción.
Las transacciones son automáticamente revertidas al cerrar la conexión,
o cuando el script finaliza, cualquiera de los dos que ocurra primero.
Debe llamarse explícitamente a la función
<function>oci_commit</function> para validar la transacción.
</para>
<para>
Cualquier llamada a <function>oci_execute</function> que utilice el modo
<constant>OCI_COMMIT_ON_SUCCESS</constant>, de forma explícita o por omisión,
consignará cualquier transacción no consignada previamente.
Cada llamada a la función <function>oci_execute</function> que
utiliza el modo <constant>OCI_COMMIT_ON_SUCCESS</constant>
explícitamente o por omisión, validará todas las transacciones
no validadas hasta ese punto.
</para>
<para>
Cualquier sentencia DDL de Oracle, como <literal>CREATE</literal>
o <literal>DROP</literal>, consignará automáticamente cualquier
transacción no consignada.
Todas las consultas Oracle como <literal>CREATE</literal>
o <literal>DROP</literal> también validarán todas las
transacciones no validadas.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -135,7 +137,7 @@ if (!$r) {
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View File

@@ -1,46 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 5a3f0c18ac46e6d4313367e44866527badac5b73 Maintainer: seros Status: ready -->
<!-- EN-Revision: 5e41012cfdf8f2eff5fa56de446c7656afac536c Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.oci-connect" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>oci_connect</refname>
<refpurpose>Conecta a una base de datos de Oracle</refpurpose>
<refpurpose>Establece una conexión con un servidor Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>resource</type><methodname>oci_connect</methodname>
<type class="union"><type>resource</type><type>false</type></type><methodname>oci_connect</methodname>
<methodparam><type>string</type><parameter>username</parameter></methodparam>
<methodparam><type>string</type><parameter>password</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>connection_string</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>character_set</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>session_mode</parameter></methodparam>
<methodparam choice="opt"><type class="union"><type>string</type><type>null</type></type><parameter>connection_string</parameter><initializer>&null;</initializer></methodparam>
<methodparam choice="opt"><type>string</type><parameter>encoding</parameter><initializer>""</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>session_mode</parameter><initializer><constant>OCI_DEFAULT</constant></initializer></methodparam>
</methodsynopsis>
<para>
Devuelve un identificador de conexión necesario para la mayoría de las operaciones de OCI8.
Devuelve un identificador de conexión, necesario para la mayoría de las llamadas OCI8.
</para>
<para>
Véase <link linkend="oci8.connection">Manejo de conexiones</link> para obtener
información general sobre la gestión y agrupamiento de
conexiones.
Para mejorar el rendimiento, la mayoría de las aplicaciones deberían utilizar
conexiones persistentes con <function>oci_pconnect</function> en lugar de
<function>oci_connect</function>.
Consulte la sección sobre <link linkend="oci8.connection">la gestión de conexiones</link>
para obtener información general sobre la gestión de conexiones y el agrupamiento de conexiones.
</para>
<para>
Desde PHP 5.1.2 (PECL OCI8 1.1), se puede usar <function>oci_close</function>
para cerrar conexiones.
</para>
<para>
La segunda y subsiguientes llamadas a <function>oci_connect</function>
con los mismos parámetros devolverán el gestor de conexión devuelto
desde la primera llamada. Esto significa que las transacciones de un gestor también
son las de los demás gestores, ya que usan la
<emphasis>misma</emphasis> conexión subyacente a la base de datos. Si dos
gestores necesitan ser aislados transaccionalmente uno de otro, use
<function>oci_new_connect</function> en su lugar.
Las llamadas siguientes (tras la primera) a la función <function>oci_connect</function>
con los mismos parámetros devolverán el manejador de conexión
devuelto en la primera llamada. Esto significa que las transacciones realizadas
sobre un manejador estarán activas en los demás, siempre que utilicen
la <emphasis>misma</emphasis> conexión subyacente. Si 2 manejadores deben tener
transacciones aisladas, utilice en su lugar la función <function>oci_new_connect</function>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -57,7 +54,7 @@
<term><parameter>password</parameter></term>
<listitem>
<para>
La contraseña para <parameter>username</parameter>.
La contraseña del usuario.
</para>
</listitem>
</varlistentry>
@@ -68,7 +65,7 @@
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>character_set</parameter></term>
<term><parameter>encoding</parameter></term>
<listitem>
&oci.charset;
</listitem>
@@ -82,24 +79,46 @@
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve un identificador de conexión, o &false; en caso de error.
Devuelve un identificador de conexión o &false; si ocurre un error.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.0.0, PECL OCI8 3.0.0</entry>
<entry>
<parameter>connection_string</parameter> ahora es nullable.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Uso básico de <function>oci_connect</function> utilizando la sintaxis de Easy Connect</title>
<title>Ejemplo con <function>oci_connect</function> utilizando la sintaxis simplificada</title>
<programlisting role="php">
<![CDATA[
<?php
// Conectar al servicio XE (es deicr, la base de datos) en la máquina "localhost"
// Conexión al servicio XE (es decir, la base de datos) en la máquina "localhost"
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
@@ -126,13 +145,13 @@ echo "</table>\n";
</para>
<para>
<example>
<title>Uso básico de <function>oci_connect</function> utilizando un nombre de Network Connect</title>
<title>Ejemplo con <function>oci_connect</function> utilizando un nombre de conexión de red</title>
<programlisting role="php">
<![CDATA[
<?php
// Conectar a la base de datos MYDB descrita en el fichero tnsnames.ora,
// Un ejemplo de una entrada de tnsnames.ora para MYDB podría ser:
// Conexión a la base de datos MYDB descrita en el archivo tnsnames.ora,
// Un ejemplo de entrada tnsnames.ora para MYDB podría ser:
// MYDB =
// (DESCRIPTION =
// (ADDRESS = (PROTOCOL = TCP)(HOST = mymachine.oracle.com)(PORT = 1521))
@@ -168,7 +187,7 @@ echo "</table>\n";
</para>
<para>
<example>
<title><function>oci_connect</function> con un conjunto de caracteres explícito</title>
<title>Ejemplo con <function>oci_connect</function> utilizando un juego de caracteres específico</title>
<programlisting role="php">
<![CDATA[
<?php
@@ -199,7 +218,7 @@ echo "</table>\n";
</para>
<para>
<example>
<title>Usar múltiples llamadas a <function>oci_connect</function></title>
<title>Ejemplo con múltiples llamadas a la función <function>oci_connect</function></title>
<programlisting role="php">
<![CDATA[
<?php
@@ -207,8 +226,8 @@ echo "</table>\n";
$c1 = oci_connect("hr", "welcome", 'localhost/XE');
$c2 = oci_connect("hr", "welcome", 'localhost/XE');
// $c1 y $c2 muestran el mismo id de recurso de PHP, ya que usan la
// misma conexión subyacente a la base de datos
// Tanto $c1 como $c2 muestran el mismo identificador de recursos PHP, lo que significa
// que se trata de la misma conexión a la base de datos
echo "c1 is $c1<br>\n";
echo "c2 is $c2<br>\n";
@@ -253,28 +272,27 @@ function select_data($connname, $conn)
create_table($c1);
insert_data('c1', $c1); // Insertar una fila usando c1
sleep(2); // Dormir para mostrar una marca de tiempo diferente en la 2ª fila
insert_data('c2', $c2); // Insertar una fila usando c2
insert_data('c1', $c1); // Inserta una fila utilizando c1
sleep(2); // Se espera para ver un timestamp diferente para la segunda fila
insert_data('c2', $c2); // Inserta una fila utilizando c2
select_data('c1', $c1); // Son devueltas ambas inserciones
select_data('c2', $c2); // Son devueltas ambas inserciones
select_data('c1', $c1); // Se devuelven los resultados de las 2 inserciones
select_data('c2', $c2); // Se devuelven los resultados de las 2 inserciones
rollback('c1', $c1); // Revertir usando c1
rollback('c1', $c1); // Revertir la transacción utilizando c1
select_data('c1', $c1); // Ambas inserciones han sido revertidas
select_data('c1', $c1); // Las 2 inserciones han sido revertidas
select_data('c2', $c2);
drop_table($c1);
// El cierre de una de las conexiones hace que la variable de PHP sea inutilizable, aunque
// se podría utilizar la otra
// El cierre de una conexión hace que las variables PHP sean inaccesibles, pero las demás
// pueden seguir siendo utilizadas
oci_close($c1);
echo "c1 is $c1<br>\n";
echo "c2 is $c2<br>\n";
// La salida es:
// Salida:
// c1 is Resource id #5
// c2 is Resource id #5
// Created table
@@ -294,7 +312,7 @@ echo "c2 is $c2<br>\n";
// c2 ----selecting
// c2 ----done
// Dropped table
// c1 is
// c1 is
// c2 is Resource id #5
?>
@@ -303,19 +321,19 @@ echo "c2 is $c2<br>\n";
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Una instalación o configuración incorrecta de la extensión OCI8 a menudo
se manifestará como un problema o error de conexión.
Véase la sección <link linkend="oci8.setup">Instalación/Configuración</link> para
obtener información sobre la solución de problemas.
Si ha ocurrido un problema durante la instalación de la extensión OCI8,
una de las manifestaciones será un problema durante la conexión.
Consulte la sección <link linkend="oci8.setup">Instalación/Configuración</link>
para obtener más información en caso de errores.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -326,9 +344,8 @@ echo "c2 is $c2<br>\n";
</simplelist>
</para>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
@@ -349,4 +366,3 @@ vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@@ -1,31 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 5a3f0c18ac46e6d4313367e44866527badac5b73 Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<!-- EN-Revision: 61374bbe228e8e9c55a24aba59a1e2bb2a871148 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.oci-define-by-name" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_define_by_name</refname>
<refpurpose>Asocia una variable de PHP con una columna para la obtención de consultas</refpurpose>
<refpurpose>Asocia una variable PHP con una columna para una consulta de recuperación de datos</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>oci_define_by_name</methodname>
<methodparam><type>resource</type><parameter>statement</parameter></methodparam>
<methodparam><type>string</type><parameter>column_name</parameter></methodparam>
<methodparam><type>mixed</type><parameter role="reference">variable</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>type</parameter><initializer>SQLT_CHR</initializer></methodparam>
<methodparam><type>string</type><parameter>column</parameter></methodparam>
<methodparam><type>mixed</type><parameter role="reference">var</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>type</parameter><initializer>0</initializer></methodparam>
</methodsynopsis>
<para>
Asocia una variable de PHP con una columna para la obtención de consultas usando <function>oci_fetch</function>.
Asocia una variable PHP con una columna para una consulta de recuperación de
datos utilizando la función <function>oci_fetch</function>.
</para>
<para>
La llamada a <function>oci_define_by_name</function> debe ocurrir antes que
la ejecución de <function>oci_execute</function>.
La llamada a la función <function>oci_define_by_name</function> debe realizarse
antes de la ejecución de la función <function>oci_execute</function>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -37,23 +38,23 @@
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>column_name</parameter></term>
<term><parameter>column</parameter></term>
<listitem>
<para>
El nombre de la columna usada en la consulta.
El nombre de la columna utilizado en la consulta.
</para>
<para>
Use los nombres de columnas predeterminados de Oracle, en mayúsculas e insensibles al uso
de mayúsculas/minúsculas. Use los nombres de columna exactos para nombres de columnas
sensibles al uso de mayúsculas/minúsculas.
Utilice un nombre en mayúsculas para los nombres de columna no sensibles a
la casilla (por omisión bajo Oracle). Utilice la casilla exacta del nombre
de la columna para los nombres de columna sensibles a la casilla.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>variable</parameter></term>
<term><parameter>var</parameter></term>
<listitem>
<para>
La variable de PHP que contendrá el valor de la columna devuelta.
La variable PHP que contendrá el valor devuelto por la columna.
</para>
</listitem>
</varlistentry>
@@ -61,33 +62,34 @@
<term><parameter>type</parameter></term>
<listitem>
<para>
El tipo de dato a devolver. Generalmente no es necesario. Observe que
no se lleva a cabo la conversión de datos estilo Oracle. Por ejemplo,
<literal>SQLT_INT</literal> será ignorado, y el tipo de dato
devuelto continuará siendo <literal>SQLT_CHR</literal>.
El tipo de datos a devolver. En general, este argumento no es necesario.
Tenga en cuenta que el estilo Oracle de conversión de datos no se
aplica aquí. Por ejemplo, <constant>SQLT_INT</constant> será ignorado y
el tipo de datos devuelto será <constant>SQLT_CHR</constant>.
</para>
<para>
Opcionalmente se puede usar <function>oci_new_descriptor</function>
para asignar descriptores LOB/ROWID/BFILE.
Puede utilizar, opcionalmente, la función
<function>oci_new_descriptor</function> para asignar descriptores
LOB/ROWID/BFILE.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Ejemplo de <function>oci_define_by_name</function></title>
<title>Ejemplo con <function>oci_define_by_name</function></title>
<programlisting role="php">
<![CDATA[
<?php
@@ -101,20 +103,20 @@ if (!$conn) {
$sql = 'SELECT location_id, city FROM locations WHERE location_id < 1200';
$stid = oci_parse($conn, $sql);
// Las definiciones DEBEN hacerse antes de la ejecución
// Las definiciones DEBEN realizarse antes de la ejecución de la consulta
oci_define_by_name($stid, 'LOCATION_ID', $locid);
oci_define_by_name($stid, 'CITY', $city);
oci_execute($stid);
// Cada obtención rellena las variables anteriormente definidas con los datos de la siguiente fila
// Cada recuperación poblará las variables previamente definidas con los datos de la siguiente línea
while (oci_fetch($stid)) {
echo "La ubicación del id $locid es $city<br>\n";
echo "Location id $locid is $city<br>\n";
}
// Se muestra:
// La ubicación del id 1000 es Roma
// La ubicación del id 1100 es Venice
// Muestra:
// Location id 1000 is Roma
// Location id 1100 is Venice
oci_free_statement($stid);
oci_close($conn);
@@ -126,13 +128,13 @@ oci_close($conn);
</para>
<para>
<example>
<title><function>oci_define_by_name</function> con nombres de columna sensibles al uso de mayúsculas/minúsculas</title>
<title>Ejemplo con <function>oci_define_by_name</function> y nombres de columna sensibles a la casilla</title>
<programlisting role="php">
<![CDATA[
<?php
/*
Antes de ejecutarlo, cree la tabla con un nombre de columna sensible al uso de mayúsculas/minúsculas
Antes de la ejecución, cree la tabla siguiente con un nombre de columna sensible a la casilla:
CREATE TABLE mytab (id NUMBER, "MyDescription" VARCHAR2(30));
INSERT INTO mytab (id, "MyDescription") values (1, 'Iced Coffee');
COMMIT;
@@ -146,20 +148,20 @@ if (!$conn) {
$stid = oci_parse($conn, 'SELECT * FROM mytab');
// Use mayúsculas para nombres de columnas insensible al uso de mayúsculas/minúsculas
// Utilice mayúsculas para los nombres de columna no sensibles a la casilla
oci_define_by_name($stid, 'ID', $id);
// Use el nombre exacto para nombres de columnas sensible al uso de mayúsculas/minúsculas
// Utilice la casilla exacta para los nombres de columnas sensibles a la casilla
oci_define_by_name($stid, 'MyDescription', $mydesc);
oci_execute($stid);
while (oci_fetch($stid)) {
echo "El id $id es $mydesc<br>\n";
echo "id $id is $mydesc<br>\n";
}
// Se muestra:
// El id 1 es Iced Coffee
// Muestra:
// id 1 is Iced Coffee
oci_free_statement($stid);
oci_close($conn);
@@ -171,16 +173,16 @@ oci_close($conn);
</para>
<para>
<example>
<title><function>oci_define_by_name</function> con columnas de tipo LOB</title>
<title>Ejemplo con <function>oci_define_by_name</function> y columnas de tipo LOB</title>
<programlisting role="php">
<![CDATA[
<?php
/*
Antes de ejecutarlo, cree la tabla:
Antes de la ejecución, cree la tabla siguiente:
CREATE TABLE mytab (id NUMBER, fruit CLOB);
INSERT INTO mytab (id, fruit) values (1, 'manzana');
INSERT INTO mytab (id, fruit) values (2, 'naranaja');
INSERT INTO mytab (id, fruit) values (1, 'apple');
INSERT INTO mytab (id, fruit) values (2, 'orange');
COMMIT;
*/
@@ -192,21 +194,21 @@ if (!$conn) {
$stid = oci_parse($conn, 'SELECT * FROM mytab');
// Las definiciones DEBEN hacerse antes de la ejecución
// Las definiciones DEBEN realizarse antes de la ejecución
oci_define_by_name($stid, 'ID', $id);
oci_define_by_name($stid, 'FRUIT', $fruta); // $fruta se un descriptor LOB
oci_define_by_name($stid, 'FRUIT', $fruit); // $fruit se convertirá en un descriptor LOB
oci_execute($stid);
while (oci_fetch($stid)) {
echo $id . " es " . $fruta->load(100) . "<br>\n";
echo $id . " is " . $fruit->load(100) . "<br>\n";
}
// Se muestra:
// 1 es manzana
// 2 es naranaja
// Muestra:
// 1 is apple
// 2 is orange
$fruta->free();
$fruit->free();
oci_free_statement($stid);
oci_close($conn);
@@ -217,16 +219,16 @@ oci_close($conn);
</para>
<para>
<example>
<title><function>oci_define_by_name</function> con un tipo explícito</title>
<title>Ejemplo con <function>oci_define_by_name</function> y un tipo explícito</title>
<programlisting role="php">
<![CDATA[
<?php
/*
Antes de ejecutarlo, cree la tabla:
Antes de la ejecución, cree la tabla siguiente:
CREATE TABLE mytab (id NUMBER, fruit CLOB);
INSERT INTO mytab (id, fruit) values (1, 'manzana');
INSERT INTO mytab (id, fruit) values (2, 'naranaja');
INSERT INTO mytab (id, fruit) values (1, 'apple');
INSERT INTO mytab (id, fruit) values (2, 'orange');
COMMIT;
*/
@@ -238,23 +240,23 @@ if (!$conn) {
$stid = oci_parse($conn, 'SELECT * FROM mytab');
// Las definiciones DEBEN hacerse antes de la ejecución
// Las definiciones DEBEN realizarse antes de la ejecución
oci_define_by_name($stid, 'ID', $id);
$fruta = oci_new_descriptor($conn, OCI_D_LOB);
oci_define_by_name($stid, 'FRUIT', $fruta, OCI_D_CLOB);
$fruit = oci_new_descriptor($conn, OCI_D_LOB);
oci_define_by_name($stid, 'FRUIT', $fruit, OCI_D_CLOB);
oci_execute($stid);
while (oci_fetch($stid)) {
echo $id . " es " . $fruta->load(100) . "<br>\n";
echo $id . " is " . $fruit->load(100) . "<br>\n";
}
// Se muestra:
// 1 es manzana
// 2 es naranaja
// Muestra:
// 1 is apple
// 2 is orange
$fruta->free();
$fruit->free();
oci_free_statement($stid);
oci_close($conn);
@@ -264,7 +266,7 @@ oci_close($conn);
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -274,9 +276,8 @@ oci_close($conn);
</simplelist>
</para>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
@@ -297,4 +298,3 @@ vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@@ -1,59 +1,58 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 8b5940cadeb4f1c8492f4a7f70743a2be807cf39 Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<!-- EN-Revision: ed6de1ae20ce16c0c7be0b3fef282b6065bebfac Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.oci-error" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_error</refname>
<refpurpose>Devuelve el último error encontrado</refpurpose>
<refpurpose>Devuelve el último error de Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>array</type><methodname>oci_error</methodname>
<methodparam choice="opt"><type>resource</type><parameter>resource</parameter></methodparam>
<type class="union"><type>array</type><type>false</type></type><methodname>oci_error</methodname>
<methodparam choice="opt"><type class="union"><type>resource</type><type>null</type></type><parameter>connection_or_statement</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
<para>
Devuelve el último error encontrado.
Devuelve el último error de Oracle.
</para>
<para>
La función debería ser invocada inmediatamente después de que ocurra un error.
Los errores son limpiados por una sentencia que tenga éxito.
La función debe ser llamada inmediatamente después de que ocurra un error.
Los errores son reinicializados después de una consulta exitosa.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>resource</parameter></term>
<term><parameter>connection_or_statement</parameter></term>
<listitem>
<para>
Para la mayoría de errores, <parameter>resource</parameter> es el
gestor de recurso que fue pasado a la función que falló.
Para errores de conexión con <function>oci_connect</function>,
<function>oci_new_connect</function> o
<function>oci_pconnect</function>, no pase <parameter>resource</parameter>.
Para la mayoría de los errores, el argumento <parameter>connection_or_statement</parameter>
representa un recurso de conexión. Para los errores de conexión con las funciones
<function>oci_connect</function>, <function>oci_new_connect</function> o
<function>oci_pconnect</function>, &null; debe ser pasado.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Si no se encontró ningún error, <function>oci_error</function> devuelve
&false;. De lo contrario, <function>oci_error</function> devuelve la
información del error como un array asociativo.
Si no se encuentra ningún error, <function>oci_error</function> devuelve
&false;. De lo contrario, <function>oci_error</function> devuelve la información sobre
el error en forma de un array asociativo.
</para>
<para>
<table>
<title>Descripción del array de <function>oci_error</function></title>
<title>Descripción del array devuelto por <function>oci_error</function></title>
<tgroup cols="3">
<thead>
<row>
@@ -65,7 +64,7 @@
<tbody>
<row>
<entry><literal>code</literal></entry>
<entry><type>integer</type></entry>
<entry><type>int</type></entry>
<entry>
El número de error de Oracle.
</entry>
@@ -79,17 +78,17 @@
</row>
<row>
<entry><literal>offset</literal></entry>
<entry><type>integer</type></entry>
<entry><type>int</type></entry>
<entry>
La posición del byte de un error en una sentencia SQL. Si no
existiera tal sentencia, este valor será <literal>0</literal>
La posición del byte del error en la consulta SQL. Si no hay
consulta, <literal>0</literal> será colocado como valor.
</entry>
</row>
<row>
<entry><literal>sqltext</literal></entry>
<entry><type>string</type></entry>
<entry>
El texto de la sentencia SQL. Si no existiera tal sentencia, este valor
El texto de la consulta SQL. Si no hay consulta,
será una cadena vacía.
</entry>
</row>
@@ -98,18 +97,41 @@
</table>
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.0.0, PECL OCI8 3.0.0</entry>
<entry>
<parameter>connection_or_statement</parameter> ahora es nullable.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Mostrar el mensaje de error de Oracle después de un error de conexión</title>
<title>Ejemplo de visualización de un mensaje de error de Oracle después de un error
de conexión</title>
<programlisting role="php">
<![CDATA[
<?php
$conn = oci_connect("hr", "welcome", "localhost/XE");
if (!$conn) {
$e = oci_error(); // Para errores de oci_connect errors, no pase un gestor
$e = oci_error(); // Para los errores oci_connect, no se pasa un manejador de conexión
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
?>
@@ -119,13 +141,14 @@ if (!$conn) {
</para>
<para>
<example>
<title>Mostrar el mensaje de error de Oracle después de un error de análisis</title>
<title>Ejemplo de visualización de un mensaje de error de Oracle después de un error
de análisis</title>
<programlisting role="php">
<![CDATA[
<?php
$stid = oci_parse($conn, "select ' from dual"); // observe la comilla simple dispareja
$stid = oci_parse($conn, "select ' from dual"); // Note el error con las comillas
if (!$stid) {
$e = oci_error($conn); // Para errores de oci_parse, pase el gestor de conexión
$e = oci_error($conn); // Para los errores oci_parse, se pasa el manejador de conexión
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
?>
@@ -135,15 +158,15 @@ if (!$stid) {
</para>
<para>
<example>
<title>Mostrar el mensaje de error de Oracle, la sentencia problemática,
y la posición del problema en un error de ejecución</title>
<title>Ejemplo de visualización de un mensaje de error de Oracle después de un error
de ejecución encontrado en una consulta SQL</title>
<programlisting role="php">
<![CDATA[
<?php
$stid = oci_parse($conn, "select does_not_exist from dual");
$r = oci_execute($stid);
if (!$r) {
$e = oci_error($stid); // Para errores de oci_execute, pase el gestor de sentencia
$e = oci_error($stid); // Para los errores oci_execute, se pasa el manejador de conexión
print htmlentities($e['message']);
print "\n<pre>\n";
print htmlentities($e['sqltext']);
@@ -156,8 +179,8 @@ if (!$r) {
</example>
</para>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml

View File

@@ -1,39 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 5a3f0c18ac46e6d4313367e44866527badac5b73 Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<!-- EN-Revision: 5e41012cfdf8f2eff5fa56de446c7656afac536c Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes Maintainer: mikaelkael -->
<refentry xml:id="function.oci-execute" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_execute</refname>
<refpurpose>Ejecuta una sentencia</refpurpose>
<refpurpose>Ejecuta un comando SQL de Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>oci_execute</methodname>
<methodparam><type>resource</type><parameter>statement</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>mode</parameter><initializer>OCI_COMMIT_ON_SUCCESS</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>mode</parameter><initializer><constant>OCI_COMMIT_ON_SUCCESS</constant></initializer></methodparam>
</methodsynopsis>
<para>
Ejecuta la sentencia dada por <parameter>statement</parameter> anteriormente devuelta
desde <function>oci_parse</function>.
Ejecuta una consulta <parameter>statement</parameter> previamente
devuelta por la función <function>oci_parse</function>.
</para>
<para>
Después de la ejecución, las sentencias como <literal>INSERT</literal>,
por omisión, contendrán datos consolidados en la base de datos. Para sentencias
como <literal>SELECT</literal>, la ejecución realiza la lógica de la
consulta. Los resultados de las consultas pueden obtenerse posteriormente en PHP con
funciones como <function>oci_fetch_array</function>.
Tras la ejecución, las consultas como <literal>INSERT</literal>
tendrán por omisión los datos validados (cometidos) en la base de datos.
Para consultas como <literal>SELECT</literal>, la ejecución
realiza la lógica de la consulta. Los resultados de la consulta
pueden ser recuperados por PHP con funciones como
<function>oci_fetch_array</function>.
</para>
<para>
Cada sentencia analizada podría ser ejecutada múltiples veces, ahorrando el
coste de un reanálisis. Esto se utlilza comúnmente
para sentencias <literal>INSERT</literal> cuando los datos están vinculados
con <function>oci_bind_by_name</function>.
Cada consulta analizada puede ser ejecutada varias veces, por lo que
no es necesario analizarlas de nuevo. Esto es práctico para consultas
de tipo <literal>INSERT</literal> cuando los datos están vinculados
mediante la función <function>oci_bind_by_name</function>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -42,7 +43,7 @@
<term><parameter>statement</parameter></term>
<listitem>
<para>
Un identificador de sentencia de OCI válido.
Un identificador de consulta OCI válido.
</para>
</listitem>
</varlistentry>
@@ -50,7 +51,7 @@
<term><parameter>mode</parameter></term>
<listitem>
<para>
Este segundo parámetro opcional puede ser una de las siguietnes constantes:
Un segundo argumento opcional puede tomar una de las constantes siguientes:
<table>
<title>Modos de ejecución</title>
<tgroup cols="2">
@@ -63,53 +64,47 @@
<tbody>
<row>
<entry><constant>OCI_COMMIT_ON_SUCCESS</constant></entry>
<entry>Consolida automáticamente todos los cambios pendientes de
esta conexión cuando la sentencia ha tenido éxito. Es
la predetermianda.</entry>
<entry>Validación automática en la conexión cuando la consulta
ha sido ejecutada con éxito. Este es el comportamiento por omisión.</entry>
</row>
<row>
<entry><constant>OCI_DESCRIBE_ONLY</constant></entry>
<entry>Dispone los metadatos de la consulta a funciones
como <function>oci_field_name</function>, pero no
crea un conjunto de resultados. Cualquier llamada de obtención subsiguiente,
como con <function>oci_fetch_array</function>,
fallará.</entry>
<entry>Hace disponibles los metadatos de la consulta a funciones
como <function>oci_field_name</function> pero no crea un conjunto de resultados. Cualquier llamada a funciones de recuperación como
<function>oci_fetch_array</function> fallará.</entry>
</row>
<row>
<entry><constant>OCI_NO_AUTO_COMMIT</constant></entry>
<entry>No consolida automáticamete los cambios. Antes de PHP
5.3.2 (PECL OCI8 1.4)
use <constant>OCI_DEFAULT</constant>, la cual es equivalente
a <constant>OCI_NO_AUTO_COMMIT</constant>.</entry>
<entry>No valida automáticamente las modificaciones.</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
<para>
Al usar el modo <constant>OCI_NO_AUTO_COMMIT</constant> se inicia o continua una
transacción. Las transacciones son automáticamente revertidas cuando
la conexión se cierra, o cuando el script finaliza. Para consolidar
explícitamente una trasacción, invoque a <function>oci_commit</function>,
o a <function>oci_rollback</function> para abortarla.
El uso del modo <constant>OCI_NO_AUTO_COMMIT</constant> inicia
o continúa una transacción. Las transacciones son automáticamente anuladas
cuando la conexión se cierra o cuando el script termina.
Llame explícitamente a la función <function>oci_commit</function> para
validar la transacción o a la función <function>oci_rollback</function>
para anularla.
</para>
<para>
Cuando se insertar o actualizan datos, se recomienda usar transacciones
para mantener la consistencia de datos relacionales y por razones de
rendimiento.
Al insertar o actualizar datos, el uso de transacciones es altamente recomendado
para garantizar la consistencia relacional de los datos, así como por un
significativo aumento de rendimiento.
</para>
<para>
Si se usa el modo <constant>OCI_NO_AUTO_COMMIT</constant> para cualquier
sentencia, incluyendo consultas, y no se llama posteriormente a
<function>oci_commit</function>
o <function>oci_rollback</function>,
OCI8 realizará una reversión al final del
script incluso si no se modificó ningún dato. Para evitar reversiones
innecesarias, muchos scripts no usan
el modo <constant>OCI_NO_AUTO_COMMIT</constant> para consultas o
PL/SQL. Tenga cuidado de asegurar la consistencia transaccional
apropiada para la aplicación cuando
use <function>oci_execute</function> con diferentes modos en
Si el modo <constant>OCI_NO_AUTO_COMMIT</constant> es utilizado para
todas las operaciones incluyendo consultas, y las funciones
<function>oci_commit</function> y <function>oci_rollback</function>
nunca son llamadas, OCI8 realizará una anulación al final del
script incluso si los datos han cambiado. Para evitar este comportamiento,
la mayoría de los scripts no utiliza el modo
<constant>OCI_NO_AUTO_COMMIT</constant> para consultas o
procedimientos almacenados PL/SQL. Asegúrese de la consistencia
transaccional apropiada de sus aplicaciones al utilizar
la función <function>oci_execute</function> con diferentes modos en
el mismo script.
</para>
</listitem>
@@ -117,19 +112,19 @@
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>oci_execute</function> para consultas</title>
<title>Ejemplo con <function>oci_execute</function> para consultas</title>
<programlisting role="php">
<![CDATA[
<?php
@@ -140,10 +135,10 @@ $stid = oci_parse($conn, 'SELECT * FROM employees');
oci_execute($stid);
echo "<table border='1'>\n";
while ($fila = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
echo "<tr>\n";
foreach ($fila as $elemento) {
echo " <td>" . ($elemento !== null ? htmlentities($elemento, ENT_QUOTES) : "") . "</td>\n";
foreach ($row as $item) {
echo " <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "") . "</td>\n";
}
echo "</tr>\n";
}
@@ -156,19 +151,19 @@ echo "</table>\n";
</para>
<para>
<example>
<title>Ejemplo de <function>oci_execute</function> sin especificar un modo</title>
<title>Ejemplo con <function>oci_execute</function> sin especificar modo</title>
<programlisting role="php">
<![CDATA[
<?php
// Antes de ejecutarlo, cree la tabla:
// Antes de la ejecución, cree la tabla:
// CREATE TABLE MYTABLE (col1 NUMBER);
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
$stid = oci_parse($conn, 'INSERT INTO mytab (col1) VALUES (123)');
oci_execute($stid); // La fila se consolida y es visible inmediatamente a otros usuarios
oci_execute($stid); // La fila es validada y es inmediatamente visible por otros usuarios
?>
]]>
@@ -177,12 +172,12 @@ oci_execute($stid); // La fila se consolida y es visible inmediatamente a otros
</para>
<para>
<example>
<title>Ejemplo de <function>oci_execute</function> con <constant>OCI_NO_AUTO_COMMIT</constant></title>
<title>Ejemplo con <function>oci_execute</function> y <constant>OCI_NO_AUTO_COMMIT</constant></title>
<programlisting role="php">
<![CDATA[
<?php
// Antes de ejecutarlo, cree la tabla:
// Antes de la ejecución, cree la tabla:
// CREATE TABLE MYTABLE (col1 NUMBER);
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
@@ -190,9 +185,9 @@ $conn = oci_connect('hr', 'welcome', 'localhost/XE');
$stid = oci_parse($conn, 'INSERT INTO mytab (col1) VALUES (:bv)');
oci_bind_by_name($stid, ':bv', $i, 10);
for ($i = 1; $i <= 5; ++$i) {
oci_execute($stid, OCI_NO_AUTO_COMMIT); // use OCI_DEFAULT para PHP <= 5.3.1
oci_execute($stid, OCI_NO_AUTO_COMMIT);
}
oci_commit($conn); // consolida todos los nuevos valores: 1, 2, 3, 4, 5
oci_commit($conn); // valida todos los nuevos valores: 1, 2, 3, 4, 5
?>
]]>
@@ -201,21 +196,21 @@ oci_commit($conn); // consolida todos los nuevos valores: 1, 2, 3, 4, 5
</para>
<para>
<example>
<title>Ejemplo de <function>oci_execute</function> con diferentes modos de consolidación</title>
<title>Ejemplo con <function>oci_execute</function> y diferentes modos en el mismo script</title>
<programlisting role="php">
<![CDATA[
<?php
// Antes de ejecutarlo, cree la tabla:
// Antes de la ejecución, cree la tabla:
// CREATE TABLE MYTABLE (col1 NUMBER);
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
$stid = oci_parse($conn, 'INSERT INTO mytab (col1) VALUES (123)');
oci_execute($stid, OCI_NO_AUTO_COMMIT); // datos no consolidados
oci_execute($stid, OCI_NO_AUTO_COMMIT); // datos no cometidos
$stid = oci_parse($conn, 'INSERT INTO mytab (col1) VALUES (456)');
oci_execute($stid); // consolida tanto el valor 123 como 456
oci_execute($stid); // valida tanto los valores 123 como 456
?>
]]>
@@ -224,7 +219,7 @@ oci_execute($stid); // consolida tanto el valor 123 como 456
</para>
<para>
<example>
<title>Ejemplo de <function>oci_execute</function> con
<title>Ejemplo con <function>oci_execute</function> y
<constant>OCI_DESCRIBE_ONLY</constant></title>
<programlisting role="php">
<![CDATA[
@@ -244,37 +239,36 @@ for ($i = 1; $i <= oci_num_fields($stid); ++$i) {
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Las transacciones son automáticamente revertidas cuando se cierran las
conexiones, o cuando el script finaliza, lo que ocurra antes. Para consolidar
explícitamente una transacción, invoque a <function>oci_commit</function>.
Las transacciones son automáticamente anuladas cuando las conexiones
se cierran, o cuando el script termina, según lo que ocurra primero.
Llame explícitamente a la función <function>oci_commit</function> para validar
una transacción.
</para>
<para>
Cualquier llamada a <function>oci_execute</function> que use
el modo <constant>OCI_COMMIT_ON_SUCCESS</constant>, explícitamente o por
omisión, consolidará cualquier transacción no consolidada anterioremente.
Cualquier llamada a la función <function>oci_execute</function> que utilice el modo
<constant>OCI_COMMIT_ON_SUCCESS</constant> explícita o implícitamente
validará todas las transacciones en curso.
</para>
<para>
Cualquier sentencia DDL de Oracle, como <literal>CREATE</literal>
o <literal>DROP</literal>, consolidará automáticamente cualquier
transacción no consolidada.
Todas las consultas Oracle DDL como <literal>CREATE</literal>
o <literal>DROP</literal> validarán todas las transacciones en curso.
</para>
</note>
<note>
<para>
Debido a que la función <function>oci_execute</function> generalmente
envía la sentencia a la
base de datos, <function>oci_execute</function> puede identificar algunos
errores de sintaxis que no identifica la función ligera local
<function>oci_parse</function>.
Debido a que la función <function>oci_execute</function> generalmente envía
la consulta a la base de datos, la función
<function>oci_execute</function> puede identificar errores de sintaxis
de la consulta que la función <function>oci_parse</function> pudo no detectar.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -283,9 +277,8 @@ for ($i = 1; $i <= oci_num_fields($stid); ++$i) {
</simplelist>
</para>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml

View File

@@ -1,33 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: a48bfbee2a121bdf25ceee2946aa27728e611365 Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<!-- EN-Revision: d33a6756e7a94bc06164d2a97bb0a3ffa19e3471 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.oci-fetch-all" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_fetch_all</refname>
<refpurpose>Obtiene múltiples filas de una consulta y las ubica en un array bidimiensional</refpurpose>
<refpurpose>Lee múltiples líneas de un resultado en un array multidimensional</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>int</type><methodname>oci_fetch_all</methodname>
<methodparam><type>resource</type><parameter>statement</parameter></methodparam>
<methodparam><type>array</type><parameter role="reference">output</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>skip</parameter><initializer>0</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>maxrows</parameter><initializer>-1</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>flags</parameter><initializer><constant>OCI_FETCHSTATEMENT_BY_COLUMN</constant> + <constant>OCI_ASSOC</constant></initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>offset</parameter><initializer>0</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>limit</parameter><initializer>-1</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>flags</parameter><initializer>OCI_FETCHSTATEMENT_BY_COLUMN | OCI_ASSOC</initializer></methodparam>
</methodsynopsis>
<para>
Obtiene múltiples filas de una consulta y las ubica en un array bidimiensional.
Por omisión, se devuelven todas las filas.
Lee todas las líneas de un resultado Oracle en un array de 2 dimensiones.
Por omisión, se devuelven todas las líneas.
</para>
<para>
Esta función puede ser llamada únicamente una vez por cada consulta ejecutada
con <function>oci_execute</function>.
Esta función puede ser llamada una sola vez para cada consulta
ejecutada mediante la función <function>oci_execute</function>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -42,34 +41,35 @@
<term><parameter>output</parameter></term>
<listitem>
<para>
La variable que contiene las filas devueltas.
La variable que contendrá las líneas devueltas.
</para>
<para>
Las columnas LOB son devueltas como cadenas, donde Oracle admite
la conversión.
Las columnas LOB se devuelven en forma de string
cuando Oracle soporta la conversión.
</para>
<para>
Véase <function>oci_fetch_array</function> para más información
sobre cómo se obtienen los datos y los tipos.
Ver la función <function>oci_fetch_array</function> para más
información sobre cómo se recuperan los datos y sus tipos.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>skip</parameter></term>
<term><parameter>offset</parameter></term>
<listitem>
<para>
El número de filas iniciales a descartar cuando se obtiene el
resultado. El valor predeterminado es 0, por lo que se devuelve la primera fila
en adelante.
Número de líneas iniciales a ignorar al leer
el resultado. Por omisión, este parámetro vale 0, para comenzar la lectura
en la primera línea.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>maxrows</parameter></term>
<term><parameter>limit</parameter></term>
<listitem>
<para>
El número de filas a devolver. El valor predeterminado es -1, lo que significa que
se devuelven todas las filas desde <parameter>skip</parameter> + 1 en adelante.
Número máximo de líneas a devolver. Por omisión, vale -1, lo que
significa que todas las líneas disponibles serán devueltas
desde el parámetro <parameter>offset</parameter> + 1.
</para>
</listitem>
</varlistentry>
@@ -77,10 +77,11 @@
<term><parameter>flags</parameter></term>
<listitem>
<para>
El parámetro <parameter>flags</parameter> indica la estructura del
array y si se deberían usar arrays asociativos.
El parámetro <parameter>flags</parameter> indica la estructura
del array pero también si deben usarse arrays asociativos.
<table>
<title>Modos de estructura del array de <function>oci_fetch_all</function></title>
<title>Modos de estructura de arrays para la función
<function>oci_fetch_all</function></title>
<tgroup cols="2">
<thead>
<row>
@@ -91,23 +92,24 @@
<tbody>
<row>
<entry><constant>OCI_FETCHSTATEMENT_BY_ROW</constant></entry>
<entry>El array externo contendrá un subarray por cada fila de
la consulta.</entry>
<entry>El array devuelto contendrá un solo subarray por
líneas.</entry>
</row>
<row>
<entry><constant>OCI_FETCHSTATEMENT_BY_COLUMN</constant></entry>
<entry>El array externo contendrá un subarray por cada columna de
la consulta. Esto es lo predeterminado.</entry>
<entry>El array devuelto contendrá un solo subarray por
columnas. Este es el comportamiento por omisión.</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
<para>
Los arrays se pueden indexar por encabezado de columna o numéricamente.
Solamente será devuelto un modo de indexación.
Los arrays pueden ser indexados ya sea por el encabezado de columna,
o numéricamente.
<table>
<title>Modos de indexación del array de <function>oci_fetch_all</function></title>
<title>Modos de indexación de arrays para la función
<function>oci_fetch_all</function></title>
<tgroup cols="2">
<thead>
<row>
@@ -118,53 +120,51 @@
<tbody>
<row>
<entry><constant>OCI_NUM</constant></entry>
<entry>Se utilizan índices numéricos por cada array de columna.</entry>
<entry>Se usan índices numéricos para cada array de columnas.</entry>
</row>
<row>
<entry><constant>OCI_ASSOC</constant></entry>
<entry>Se utilizan índices asociativos por cada array de
columna. Esto es lo predeterminado.</entry>
<entry>Se usan índices asociativos para cada array de columnas. Este es el comportamiento por omisión.</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
<para>
Utilice el operador de adición &quot;+&quot; para elegir una combinación de
modos de estructura e índice del array.
Utilice el operador de adición "&quot;+&quot;" para elegir una
combinación de estructuras de arrays y modos de indexación.
</para>
<para>
Los nombres de columna predeterminados de Oracle insensibles al uso de mayúsculas/minúsculas
tendrán claves de array en mayúsculas. Los nombres de columnas sensibles al uso de mayúsculs/minúsculas
tendrán claves de array que usan el nombre exacto de la columna.
Use <function>var_dump</function>
en <parameter>output</parameter> para verificar el uso apropiado
de mayúsculas/minúsculas en cada consulta.
Los nombres de columnas que no son sensibles a mayúsculas/minúsculas (por omisión en Oracle),
tendrán nombres de atributos en mayúsculas. Los nombres de columnas que son sensibles a mayúsculas/minúsculas,
tendrán nombres de atributos usando exactamente la misma casilla de la columna.
Utilice la función <function>var_dump</function> en el objeto de resultado para verificar
la casilla apropiada a usar para cada consulta.
</para>
<para>
Las consultas que tienen más de una columna con el mismo nombre
deberían usar un alias de columna. Si no, aparecerá únicamente una de las
columnas en el array asociativo.
Las consultas que poseen más de una columna con el mismo nombre
deben usar alias. De lo contrario, solo una
de las columnas aparecerá en el array asociativo.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve el número de filas de <parameter>output</parameter>, el cual
podría ser cero o más, &return.falseforfailure;.
Devuelve el número de líneas recuperadas en el parámetro <parameter>output</parameter>
que puede ser 0 o más.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Ejemplo de <function>oci_fetch_all</function></title>
<title>Ejemplo con <function>oci_fetch_all</function></title>
<programlisting role="php">
<![CDATA[
<?php
@@ -180,11 +180,11 @@ oci_execute($stid);
$nrows = oci_fetch_all($stid, $res);
echo "$nrows filas obtenidas<br>\n";
echo "$nrows rows fetched<br>\n";
var_dump($res);
// la salida de var_dump es:
// 2 filas obtenidas
// var_dump mostrará:
// 2 rows fetched
// array(2) {
// ["POSTAL_CODE"]=>
// array(2) {
@@ -202,7 +202,7 @@ var_dump($res);
// }
// }
// Imprimir los resultados de forma legible
// Mostrar resultados
echo "<table border='1'>\n";
foreach ($res as $col) {
echo "<tr>\n";
@@ -223,7 +223,7 @@ oci_close($conn);
</para>
<para>
<example>
<title>Ejemplo de <function>oci_fetch_all</function> con <constant>OCI_FETCHSTATEMENT_BY_ROW</constant></title>
<title>Ejemplo con <function>oci_fetch_all</function> y <constant>OCI_FETCHSTATEMENT_BY_ROW</constant></title>
<programlisting role="php">
<![CDATA[
<?php
@@ -239,11 +239,11 @@ oci_execute($stid);
$nrows = oci_fetch_all($stid, $res, null, null, OCI_FETCHSTATEMENT_BY_ROW);
echo "$nrows filas obtenidas<br>\n";
echo "$nrows líneas recuperadas<br>\n";
var_dump($res);
// La salida es:
// 2 filas obtenidas
// Muestra:
// 2 líneas recuperadas
// array(2) {
// [0]=>
// array(2) {
@@ -271,7 +271,7 @@ oci_close($conn);
</para>
<para>
<example>
<title><function>oci_fetch_all</function> con <constant>OCI_NUM</constant></title>
<title>Ejemplo con <function>oci_fetch_all</function> y <constant>OCI_NUM</constant></title>
<programlisting role="php">
<![CDATA[
<?php
@@ -287,11 +287,11 @@ oci_execute($stid);
$nrows = oci_fetch_all($stid, $res, null, null, OCI_FETCHSTATEMENT_BY_ROW + OCI_NUM);
echo "$nrows filas obtenidas<br>\n";
echo "$nrows líneas recuperadas<br>\n";
var_dump($res);
// La salida es:
// 2 filas obtenidas
// Muestra:
// 2 líneas recuperadas
// array(2) {
// [0]=>
// array(2) {
@@ -318,24 +318,22 @@ oci_close($conn);
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Usar <parameter>skip</parameter> es muy ineficiente. Todas las
filas que van a omitirse están incluidas en el conjunto de resultados que
es devuelto desde la base de datos a PHP. Luego son excluidas.
Es más eficiente usar SQL para restringir el índice y el rango de
filas de las consultas. Véase <function>oci_fetch_array</function> para
un ejemplo.
El uso del parámetro <parameter>offset</parameter> es realmente ineficiente.
Todas las líneas a evitar están incluidas en el conjunto de resultados devuelto por
la base de datos a PHP. Luego, son descartadas. Es más eficiente
usar una consulta SQL para restringir el alcance de las líneas deseadas.
Ver la función <function>oci_fetch_array</function> para un ejemplo concreto.
</para>
</note>
<note>
<para>
Las consultas que devuelven un número grande de filas pueden usar la memoria
de forma más eficiente si se utiliza una función que obtiene una
sola fila, como <function>oci_fetch_array</function>.
Las consultas que devuelven un número muy grande de líneas pueden
ahorrar memoria al usar funciones que recuperan una sola línea, como hace la función <function>oci_fetch_array</function>.
</para>
</note>
<note>
@@ -343,13 +341,14 @@ oci_close($conn);
</note>
<note>
<para>
No se devolverán filas desde Conjuntos de Resultados Implícitos de
Oracle Database 12<emphasis>c</emphasis>. Use <function>oci_fetch_array</function>
en su lugar.
Esta función no devolverá líneas desde un conjunto
de resultados implícito de una base de datos Oracle
12<emphasis>c</emphasis>. Utilice en su lugar la función
<function>oci_fetch_array</function>.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -363,9 +362,8 @@ oci_close($conn);
</simplelist>
</para>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
@@ -386,4 +384,3 @@ vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@@ -1,38 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: e85d788eabb67456a5101afd7b994b69a495af4f Maintainer: seros Status: ready -->
<!-- Reviewed: yes Maintainer: seros -->
<!-- EN-Revision: ed6de1ae20ce16c0c7be0b3fef282b6065bebfac Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.oci-fetch-array" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_fetch_array</refname>
<refpurpose>Devuelve la siguiente fila de una consulta como un array asociativo o numérico
</refpurpose>
<refpurpose>Lee una línea de un resultado en forma de array asociativo o numérico</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>array</type><methodname>oci_fetch_array</methodname>
<type class="union"><type>array</type><type>false</type></type><methodname>oci_fetch_array</methodname>
<methodparam><type>resource</type><parameter>statement</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>mode</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>mode</parameter><initializer>OCI_BOTH | OCI_RETURN_NULLS</initializer></methodparam>
</methodsynopsis>
<para>
Devuelve un array que contiene la siguiente fila del conjunto de resultados de una consulta.
Cada entrada del array corresponde a una columna de la fila. Esta función
se invoca normamente en un bucle hasta que devuelva &false;, indicando
que no existen más filas.
Devuelve un array que contiene la siguiente línea de una consulta.
Cada entrada de este array corresponde a una columna de la línea.
Esta función se utiliza típicamente en un ciclo que devuelve
&false; cuando ya no hay más líneas disponibles.
</para>
<para>
Si <parameter>statement</parameter> se corresponde con un bloque de PL/SQL
devuelto por Conjuntos de Resultados Implícitos de Oracle Database 12c, entonces las filas
de todos los conjuntos se obtienen consecutivamente. Si
<parameter>statement</parameter> es devuelto por
<function>oci_get_implicit_resultset</function>, solamente son
devueltos los subconjuntos de filas para una consulta hija.
Si el parámetro <parameter>statement</parameter> corresponde a un bloque PL/SQL
devuelto por juegos de resultados implícitos de Oracle Database,
entonces las líneas de todos los juegos de resultados serán recuperadas
consecutivamente. Si <parameter>statement</parameter> es devuelto por
la función <function>oci_get_implicit_resultset</function>, entonces solo
el subconjunto de líneas de una sola consulta hija será devuelto.
</para>
&oci.datatypes;
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -41,19 +40,21 @@
<term><parameter>statement</parameter></term>
<listitem>
&oci.arg.statement.id;
<para>
También puede ser un identificador de sentencia devuelto por <function>oci_get_implicit_resultset</function>.
</para>
<para>
Puede ser también un identificador de consulta devuelto por
la función <function>oci_get_implicit_resultset</function>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>mode</parameter></term>
<listitem>
<para>
Este segundo parámetro opcional puede ser cualquier combinación de las siguientes
contantes:
El parámetro opcional <parameter>mode</parameter> puede ser la
combinación de las siguientes constantes:
<table>
<title>Modos de <function>oci_fetch_array</function></title>
<title>Modos para <function>oci_fetch_array</function></title>
<tgroup cols="2">
<thead>
<row>
@@ -64,11 +65,9 @@
<tbody>
<row>
<entry><constant>OCI_BOTH</constant></entry>
<entry>Devuelve un array con índices tanto asociativos como
numéricos. Es lo mismo que
con <constant>OCI_ASSOC</constant>
+ <constant>OCI_NUM</constant>. Es el comportamiento
predeterminado.</entry>
<entry>Devuelve un array, indexado numéricamente y con los nombres
de columnas. Idéntico a <constant>OCI_ASSOC</constant> +
<constant>OCI_NUM</constant>). Este es el comportamiento por defecto.</entry>
</row>
<row>
<entry><constant>OCI_ASSOC</constant></entry>
@@ -76,75 +75,73 @@
</row>
<row>
<entry><constant>OCI_NUM</constant></entry>
<entry>Devuelve un array numérico.</entry>
<entry>Devuelve un array indexado numéricamente.</entry>
</row>
<row>
<entry><constant>OCI_RETURN_NULLS</constant></entry>
<entry>Crea elementos para campos &null;. Los valores
de los elementos serán &null; de PHP.
<entry>Crea elementos vacíos para los valores &null;. El valor
de los elementos será el valor &null; de PHP.
</entry>
</row>
<row>
<entry><constant>OCI_RETURN_LOBS</constant></entry>
<entry>Devuelve el contenido de los LOB en lugar de los descriptores
de los mismos.</entry>
<entry>Devuelve el contenido del LOB en lugar de su descriptor.</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
<para>
El valor predeterminado de <parameter>mode</parameter> es <constant>OCI_BOTH</constant>.
El <parameter>mode</parameter> por defecto es <constant>OCI_BOTH</constant>.
</para>
<para>
Use el operador de adición &quot;+&quot; para especificar más de
un modo a la vez.
Utilice el operador de adición "&quot;+&quot;" para especificar más de un modo
a la vez.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve un array con los índices asociativos y/o numéricos. Si no existen
más filas en <parameter>statement</parameter>, devolverá
&false;.
Devuelve un array con índices numéricos o asociativos. Si ya no hay más líneas
disponibles para la consulta <parameter>statement</parameter> entonces &false;
será devuelto.
</para>
<para>
Por omisión, las columnas <literal>LOB</literal> son devueltas como descriptores LOB.
Por defecto, las columnas <literal>LOB</literal> son devueltas en forma
de descriptores LOB.
</para>
<para>
Las columnas <literal>DATE</literal> son devueltas como string con
el formato de fecha actual. El formato predeterminado se puede cambiar con
las variables de entorno de Oracle, como <literal>NLS_LANG</literal>, o
ejecutando previamente un comando <literal>ALTER SESSION SET
NLS_DATE_FORMAT</literal>.
Las columnas <literal>DATE</literal> son devueltas en forma de una cadena
con el formato de fecha actual. El formato por defecto puede ser modificado
mediante las variables de entorno de Oracle, como <literal>NLS_LANG</literal> o
mediante la ejecución del comando <literal>ALTER SESSION SET NLS_DATE_FORMAT</literal>.
</para>
<para>
Los nombres de columna predeterminados de Oracle que no consideran mayúsculas/minúsculas
tendrán claves de array en mayúsculas. Los nombres de columnas sensibles al uso de
mayúsculas/minúsculas tendrán claves de array que usan el nombre exacto de la columna.
Use <function>var_dump</function> en el array resultante para verificar el uso apropiado
de mayúsculas/minúsculas en cada consulta.
Los nombres de columnas que no son sensibles a mayúsculas/minúsculas (por defecto en Oracle),
tendrán nombres de atributos en mayúsculas. Los nombres de columnas que son sensibles a mayúsculas/minúsculas,
tendrán nombres de atributos utilizando exactamente la misma mayúscula/minúscula de la columna.
Utilice la función <function>var_dump</function> sobre el objeto de resultado para verificar
la mayúscula/minúscula apropiada a utilizar para cada consulta.
</para>
<para>
El nombre de la tabla no está incluído en el índice del array. Si la consulta
contiene dos columnas diferentes con el mismo nombre,
use <constant>OCI_NUM</constant> o añada un alias de columna a la consulta
para asegurarse de la unicidad de los nombres (véase el ejemplo #7). De lo contrario,
solamente será devuelta una columna mediante PHP.
El nombre de la tabla no está incluido en el índice del array. Si su consulta
contiene dos columnas diferentes con el mismo nombre, utilice la constante
<constant>OCI_NUM</constant> o añada un alias a la columna en la consulta
para asegurar la unicidad del nombre; ver el ejemplo #7. De lo contrario, solo
una columna será devuelta mediante PHP.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>oci_fetch_array</function> con <constant>OCI_BOTH</constant></title>
<title>Ejemplo con <function>oci_fetch_array</function> con <constant>OCI_BOTH</constant></title>
<programlisting role="php">
<![CDATA[
<?php
@@ -159,9 +156,9 @@ $stid = oci_parse($conn, 'SELECT department_id, department_name FROM departments
oci_execute($stid);
while (($row = oci_fetch_array($stid, OCI_BOTH)) != false) {
// Usar nombres de columna en mayúsculas para los índices del array asociativo
echo $row[0] . " y " . $row['DEPARTMENT_ID'] . " son lo mismo<br>\n";
echo $row[1] . " y " . $row['DEPARTMENT_NAME'] . " son lo mismo<br>\n";
// Utilice nombres de columna en mayúsculas para los índices del array asociativo
echo $row[0] . " and " . $row['DEPARTMENT_ID'] . " son los mismos<br>\n";
echo $row[1] . " and " . $row['DEPARTMENT_NAME'] . " son los mismos<br>\n";
}
oci_free_statement($stid);
@@ -174,15 +171,16 @@ oci_close($conn);
</para>
<para>
<example>
<title><function>oci_fetch_array</function> con <constant>OCI_NUM</constant></title>
<title>Ejemplo con <function>oci_fetch_array</function> con
<constant>OCI_NUM</constant></title>
<programlisting role="php">
<![CDATA[
<?php
/*
Antes de ejecutarlo, cree la tabla:
Antes de la ejecución, cree la tabla:
CREATE TABLE mytab (id NUMBER, description CLOB);
INSERT INTO mytab (id, description) values (1, 'Un string muy largo');
INSERT INTO mytab (id, description) values (1, 'A very long string');
COMMIT;
*/
@@ -197,12 +195,12 @@ oci_execute($stid);
while (($row = oci_fetch_array($stid, OCI_NUM)) != false) {
echo $row[0] . "<br>\n";
echo $row[1]->read(11) . "<br>\n"; // esto imprimirá los primeros 11 bytes de DESCRIPTION
echo $row[1]->read(11) . "<br>\n"; // esto mostrará los 11 primeros bytes desde DESCRIPTION
}
// La salida es:
// Muestra:
// 1
// Un string m
// A very long
oci_free_statement($stid);
oci_close($conn);
@@ -214,15 +212,16 @@ oci_close($conn);
</para>
<para>
<example>
<title><function>oci_fetch_array</function> con <constant>OCI_ASSOC</constant></title>
<title>Ejemplo con <function>oci_fetch_array</function> con
<constant>OCI_ASSOC</constant></title>
<programlisting role="php">
<![CDATA[
<?php
/*
Antes de ejecutarlo, cree la tabla:
Antes de la ejecución, cree la tabla:
CREATE TABLE mytab (id NUMBER, description CLOB);
INSERT INTO mytab (id, description) values (1, 'Un string muy largo');
INSERT INTO mytab (id, description) values (1, 'A very long string');
COMMIT;
*/
@@ -237,12 +236,12 @@ oci_execute($stid);
while (($row = oci_fetch_array($stid, OCI_ASSOC)) != false) {
echo $row['ID'] . "<br>\n";
echo $row['DESCRIPTION']->read(11) . "<br>\n"; // esto imprimirá los primeros 11 bytes de DESCRIPTION
echo $row['DESCRIPTION']->read(11) . "<br>\n"; // esto mostrará los 11 primeros bytes desde DESCRIPTION
}
// La salida es:
// Muestra:
// 1
// Un string m
// A very long
oci_free_statement($stid);
oci_close($conn);
@@ -254,7 +253,8 @@ oci_close($conn);
</para>
<para>
<example>
<title><function>oci_fetch_array</function> con <constant>OCI_RETURN_NULLS</constant></title>
<title>Ejemplo con <function>oci_fetch_array</function> con
<constant>OCI_RETURN_NULLS</constant></title>
<programlisting role="php">
<![CDATA[
<?php
@@ -267,12 +267,12 @@ if (!$conn) {
$stid = oci_parse($conn, 'SELECT 1, null FROM dual');
oci_execute($stid);
while (($row = oci_fetch_array ($stid, OCI_ASSOC)) != false) { // Ignorar los NULL
while (($row = oci_fetch_array ($stid, OCI_ASSOC)) != false) { // Ignora NULLs
var_dump($row);
}
/*
El código de arriba imprime:
El código anterior muestra:
array(1) {
[1]=>
string(1) "1"
@@ -281,12 +281,12 @@ El código de arriba imprime:
$stid = oci_parse($conn, 'SELECT 1, null FROM dual');
oci_execute($stid);
while (($row = oci_fetch_array ($stid, OCI_ASSOC+OCI_RETURN_NULLS)) != false) { // Obtener los NULL
while (($row = oci_fetch_array ($stid, OCI_ASSOC+OCI_RETURN_NULLS)) != false) { // Recupera NULLs
var_dump($row);
}
/*
El código de arriba imprime:
El código anterior muestra:
array(2) {
[1]=>
string(1) "1"
@@ -308,9 +308,9 @@ El código de arriba imprime:
<?php
/*
Antes de ejecutarlo, cree la tabla:
Antes de la ejecución, cree la tabla:
CREATE TABLE mytab (id NUMBER, description CLOB);
INSERT INTO mytab (id, description) values (1, 'Un string muy largo');
INSERT INTO mytab (id, description) values (1, 'A very long string');
COMMIT;
*/
@@ -325,14 +325,16 @@ oci_execute($stid);
while (($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_LOBS)) != false) {
echo $row['ID'] . "<br>\n";
echo $row['DESCRIPTION'] . "<br>\n"; // contiene todo lo de DESCRIPTION
// En un bucle, liberar la variable grande de la 2ª obtención reduce en uso de memoria de picos de PHP
unset($row);
echo $row['DESCRIPTION'] . "<br>\n"; // contiene todo el contenido de DESCRIPTION
// En un ciclo, liberar la variable antes de recuperar una segunda
// línea permite reducir el uso de memoria de PHP
unset($row);
}
// La salida es:
// Muestra:
// 1
// Un string muy largo
// A very long string
oci_free_statement($stid);
oci_close($conn);
@@ -344,13 +346,14 @@ oci_close($conn);
</para>
<para>
<example>
<title><function>oci_fetch_array</function> con nombres de columna sensibles al uso de mayúsculas/minúsculas</title>
<title>Ejemplo con <function>oci_fetch_array</function> con
nombres de columnas sensibles a mayúsculas/minúsculas</title>
<programlisting role="php">
<![CDATA[
<?php
/*
Antes de ejecutarlo, cree la tabla:
Antes de la ejecución, cree la tabla:
CREATE TABLE mytab ("Name" VARCHAR2(20), city VARCHAR2(20));
INSERT INTO mytab ("Name", city) values ('Chris', 'Melbourne');
COMMIT;
@@ -366,11 +369,11 @@ $stid = oci_parse($conn, 'select * from mytab');
oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS);
// Ya que 'Name' fue creado como columna sensible al uso de mayúsculas/minúsculas,
// se usa lo mismo para el índice del array. Sin embargo, debe usarse 'CITY' en
// mayúsculas para los índices de columna insensibles al uso de mayúsculas/minúsculas
print $row['Name'] . "<br>\n"; // imprime Chris
print $row['CITY'] . "<br>\n"; // imprime Melbourne
// Dado que 'Name' fue creado como una columna sensible a mayúsculas/minúsculas, la misma mayúscula/minúscula
// es utilizada para los índices del array. Sin embargo, 'CITY' debe ser utilizado
// para los índices de columna no sensible a mayúsculas/minúsculas
print $row['Name'] . "<br>\n"; // muestra Chris
print $row['CITY'] . "<br>\n"; // muestra Melbourne
oci_free_statement($stid);
oci_close($conn);
@@ -382,13 +385,14 @@ oci_close($conn);
</para>
<para>
<example>
<title><function>oci_fetch_array</function> con columnas que tienen nombres duplicados</title>
<title>Ejemplo con <function>oci_fetch_array</function>
con columnas que poseen nombres duplicados</title>
<programlisting role="php">
<![CDATA[
<?php
/*
Antes de ejecutarlo, cree la tabla:
Antes de la ejecución, cree la tabla:
CREATE TABLE mycity (id NUMBER, name VARCHAR2(20));
INSERT INTO mycity (id, name) values (1, 'Melbourne');
CREATE TABLE mycountry (id NUMBER, name VARCHAR2(20));
@@ -410,22 +414,23 @@ oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC);
var_dump($row);
// La salida únicamente contiene la entrada "NAME":
// La salida contiene solo UNA entrada "NAME":
// array(1) {
// ["NAME"]=>
// string(9) "Australia"
// }
// En consultas con nombres de columnas repetidos use un alias de columna de SQL, como "AS ctnm":
$sql = 'SELECT mycity.name AS ctnm, mycountry.name
FROM mycity, mycountry
// Para consultar un nombre de columna duplicado, utilice un alias de columna SQL
// como "AS ctnm":
$sql = 'SELECT mycity.name AS ctnm, mycountry.name
FROM mycity, mycountry
WHERE mycity.id = mycountry.id';
$stid = oci_parse($conn, $sql);
oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC);
var_dump($row);
// La salida ahora contiene ambas columnas seleccionadas:
// La salida contiene ahora 2 columnas:
// array(2) {
// ["CTNM"]=>
// string(9) "Melbourne"
@@ -433,7 +438,6 @@ var_dump($row);
// string(9) "Australia"
// }
oci_free_statement($stid);
oci_close($conn);
@@ -444,7 +448,7 @@ oci_close($conn);
</para>
<para>
<example>
<title><function>oci_fetch_array</function> con columnas <literal>DATE</literal></title>
<title>Ejemplo con <function>oci_fetch_array</function> y columnas <literal>DATE</literal></title>
<programlisting role="php">
<![CDATA[
<?php
@@ -455,16 +459,16 @@ if (!$conn) {
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
// Establecer el formato de fecha para esta conexión.
// Por razones de rendimiento, considere cambiar el formato
// en un disparador o con variables de entorno en su lugar
// Define el formato utilizado para las fechas en esta conexión.
// Por razones de rendimiento, debe modificar el formato mediante un disparador o
// utilizando variables de entorno
$stid = oci_parse($conn, "ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD'");
oci_execute($stid);
$stid = oci_parse($conn, 'SELECT hire_date FROM employees WHERE employee_id = 188');
oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC);
echo $row['HIRE_DATE'] . "<br>\n"; // imprime 1997-06-14
echo $row['HIRE_DATE'] . "<br>\n"; // Muestra 1997-06-14
oci_free_statement($stid);
oci_close($conn);
@@ -476,12 +480,12 @@ oci_close($conn);
</para>
<para>
<example>
<title><function>oci_fetch_array</function> con <literal>REF CURSOR</literal></title>
<title>Ejemplo con <function>oci_fetch_array</function> y <literal>REF CURSOR</literal></title>
<programlisting role="php">
<![CDATA[
<?php
/*
Cree el procedimiento almacenado PL/SQL:
Cree el procedimiento almacenado PL/SQL siguiente antes de la ejecución:
CREATE OR REPLACE PROCEDURE myproc(p1 OUT SYS_REFCURSOR) AS
BEGIN
@@ -500,10 +504,10 @@ $refcur = oci_new_cursor($conn);
oci_bind_by_name($stid, ':rc', $refcur, -1, OCI_B_CURSOR);
oci_execute($stid);
// Ejecutar el REF CURSOR devuelto y obtenerlo como un identificador de sentencia
oci_execute($refcur);
// Ejecuta el REF CURSOR devuelto y recupera un identificador de consulta
oci_execute($refcur);
echo "<table border='1'>\n";
while ($row = oci_fetch_array($refcur, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
while (($row = oci_fetch_array($refcur, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
echo "<tr>\n";
foreach ($row as $item) {
echo " <td>".($item !== null ? htmlentities($item, ENT_QUOTES) : "")."</td>\n";
@@ -516,14 +520,15 @@ oci_free_statement($refcur);
oci_free_statement($stid);
oci_close($conn);
?>
?>
]]>
</programlisting>
</example>
</para>
<para>
<example>
<title>Paginación con <function>oci_fetch_array</function> usando una consulta como <literal>LIMIT</literal></title>
<title>Paginación con <function>oci_fetch_array</function> utilizando una consulta
que utiliza el parámetro <literal>LIMIT</literal></title>
<programlisting role="php">
<![CDATA[
<?php
@@ -534,30 +539,31 @@ if (!$conn) {
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
// Buscar la versión de la base de datos
// Obtiene la versión de la base de datos
preg_match('/Release ([0-9]+)\./', oci_server_version($conn), $matches);
$oracleversion = $matches[1];
// Esta es la consulta que se quiere "paginar"
// Consulta para la paginación
$sql = 'SELECT city, postal_code FROM locations ORDER BY city';
if ($oracleversion >= 12) {
// Usar la sintaxis de Oracle 12c de OFFSET / FETCH NEXT
// Utilización de la sintaxis Oracle 12c OFFSET / FETCH NEXT
$sql = $sql . ' OFFSET :offset ROWS FETCH NEXT :numrows ROWS ONLY';
} else {
// Versiones antiguas de Oracle necesitaban una consulta anidada para
// seleccionar un subconjunto de $sql. O, si la sentencia SQL es conocida
// durante el desarrollo, considere usar una función row_number() en lugar
// de esta solución anidada. En entornos de producción, tenga cuidado para
// evitar problemas con inyecciones SQL con concatenaciones.
// Las versiones antiguas de Oracle requieren una consulta anidada
// para seleccionar un subconjunto desde $sql. O, si la consulta SQL
// es conocida en el momento del desarrollo, utilice una función
// row_number() en lugar de esta solución de anidación. En los
// entornos de producción, asegúrese de evitar las inyecciones
// SQL con la concatenación.
$sql = "SELECT * FROM (SELECT a.*, ROWNUM AS my_rnum
FROM ($sql) a
WHERE ROWNUM <= :offset + :numrows)
WHERE my_rnum > :offset";
}
$offset = 0; // saltar estas filas
$numrows = 5; // devolver 5 filas
$offset = 0; // No procesar las primeras líneas
$numrows = 5; // Devuelve 5 líneas
$stid = oci_parse($conn, $sql);
oci_bind_by_name($stid, ':numrows', $numrows);
oci_bind_by_name($stid, ':offset', $offset);
@@ -567,7 +573,7 @@ while (($row = oci_fetch_array($stid, OCI_ASSOC + OCI_RETURN_NULLS)) != false) {
echo $row['CITY'] . " " . $row['POSTAL_CODE'] . "<br>\n";
}
// La salida es:
// Muestra:
// Beijing 190518
// Bern 3095
// Bombay 490231
@@ -584,7 +590,7 @@ oci_close($conn);
</para>
<para>
<example>
<title><function>oci_fetch_array</function> con Conjuntos de Resultados Implícitos de Oracle Database 12<emphasis>c</emphasis></title>
<title>Ejemplo con <function>oci_fetch_array</function> con Oracle Database</title>
<programlisting role="php">
<![CDATA[
<?php
@@ -595,8 +601,8 @@ if (!$conn) {
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
// Requiere OCI8 2.0 y Oracle Database 12c
// Véase también oci_get_implicit_resultset()
// Requiere OCI8 2.0 (o posterior) y Oracle Database 12c (o posterior)
// Ver también oci_get_implicit_resultset()
$sql = 'DECLARE
c1 SYS_REFCURSOR;
BEGIN
@@ -609,7 +615,7 @@ $sql = 'DECLARE
$stid = oci_parse($conn, $sql);
oci_execute($stid);
// Nota: oci_fetch_all y oci_fetch() no se pueden usar de esta manera
// Nota: oci_fetch_all y oci_fetch() no pueden ser utilizadas de esta manera
echo "<table>\n";
while (($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
echo "<tr>\n";
@@ -620,7 +626,7 @@ while (($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
}
echo "</table>\n";
// La salida es:
// Muestra:
// Beijing 190518
// Bern 3095
// Bombay 490231
@@ -637,13 +643,13 @@ oci_close($conn);
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Los índices de arrays asociativos tienen que estar en mayúsculas para las columnas estándar
de Oracle que fueron creadas con nombres insensibles al uso de mayúsculas/minúsculas.
Los índices de los arrays asociativos deben estar en mayúsculas para
las columnas estándar de Oracle que han sido creadas con nombres sensibles a mayúsculas/minúsculas.
</para>
</note>
<note>
@@ -652,13 +658,13 @@ oci_close($conn);
<note>
<para>
La función <function>oci_fetch_array</function>
es <emphasis>insignificativamente</emphasis> más lenta que
es <emphasis>significativamente</emphasis> más lenta que la función
<function>oci_fetch_assoc</function>
o <function>oci_fetch_row</function>, pero es más flexible.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -672,9 +678,8 @@ oci_close($conn);
</simplelist>
</para>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
@@ -695,4 +700,3 @@ vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@@ -1,33 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: e41806c30bf6975e452c0d4ce35ab0984c2fa68c Maintainer: seros Status: ready -->
<!-- Reviewed: yes Maintainer: seros -->
<!-- EN-Revision: ed6de1ae20ce16c0c7be0b3fef282b6065bebfac Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.oci-fetch-assoc" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_fetch_assoc</refname>
<refpurpose>Devuelve la siguiente fila de una consulta como un array asociativo</refpurpose>
<refpurpose>Lee una línea de un resultado en forma de array asociativo</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>array</type><methodname>oci_fetch_assoc</methodname>
<type class="union"><type>array</type><type>false</type></type><methodname>oci_fetch_assoc</methodname>
<methodparam><type>resource</type><parameter>statement</parameter></methodparam>
</methodsynopsis>
<para>
Devuelve un array asociativo que contiene la siguiente fila del conjunto de resultados de una consulta.
Cada entrada del array corresponde a una columna de la fila. Esta función
se invoca normalmante en un bucle hasta que devuelve &false;, indicando
que no existen más filas.
Devuelve un array asociativo que contiene la siguiente línea de resultado de una consulta.
Cada elemento del array corresponde a una columna de la línea. Esta función
es típicamente llamada en un ciclo mientras no devuelva &false;, lo que indica
que no hay más líneas disponibles.
</para>
<para>
Llamar a <function>oci_fetch_assoc</function> es idéntico a
llamar a <function>oci_fetch_array</function>
con <constant>OCI_ASSOC</constant>
+ <constant>OCI_RETURN_NULLS</constant>.
<function>oci_fetch_assoc</function> es idéntica a la función
<function>oci_fetch_array</function> y al modo
<constant>OCI_ASSOC</constant> + <constant>OCI_RETURN_NULLS</constant>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -41,20 +40,20 @@
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve un array asociativo. Si no existen más filas en el parámetro
<parameter>statement</parameter>, entonces devuelve &false;.
Devuelve un array asociativo o &false; si no hay más líneas disponibles
para la consulta <parameter>statement</parameter>.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Ejemplo de <function>oci_fetch_assoc</function></title>
<title>Ejemplo con <function>oci_fetch_assoc</function></title>
<programlisting role="php">
<![CDATA[
<?php
@@ -81,16 +80,17 @@ oci_close($conn);
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Véase <function>oci_fetch_array</function> para más ejemplos de obtención de filas.
Ver <function>oci_fetch_array</function> para más ejemplos sobre la recuperación
de líneas.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -103,9 +103,8 @@ oci_close($conn);
</simplelist>
</para>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
@@ -126,4 +125,3 @@ vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@@ -1,28 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 46854b1593fc9bf77d14db6fddcbfb73a20cbf86 Maintainer: seros Status: ready -->
<!-- Reviewed: yes Maintainer: seros -->
<!-- EN-Revision: ed6de1ae20ce16c0c7be0b3fef282b6065bebfac Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.oci-fetch-object" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_fetch_object</refname>
<refpurpose>Devuelve la siguiente fila de una consulta como un objeto</refpurpose>
<refpurpose>Lee una línea de un resultado en forma de objeto</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>object</type><methodname>oci_fetch_object</methodname>
<type class="union"><type>stdClass</type><type>false</type></type><methodname>oci_fetch_object</methodname>
<methodparam><type>resource</type><parameter>statement</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>mode</parameter><initializer>OCI_ASSOC | OCI_RETURN_NULLS</initializer></methodparam>
</methodsynopsis>
<para>
Devuelve un objeto que contiene la siguiente fila del conjunto de resultados de una consulta.
Cada atributo del objeto corresponde a una columna de la fila.
Esta función normalmente es invocada en un bucle hasta que devuelve
&false;, indicando que no existen más filas.
Devuelve un objeto que contiene la siguiente línea de resultado de una
consulta. Cada atributo de este objeto corresponde a una columna
de la línea. Esta función se utiliza típicamente en un ciclo
mientras no devuelva &false;, lo que indica que no hay más líneas disponibles.
</para>
&oci.datatypes;
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -36,48 +37,47 @@
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve un objeto. Cada atributo del mismo corresponde a una
columna de la fila. Si no existen más filas en el parámetro
<parameter>statement</parameter>, entonces devuelve &false;.
Devuelve un objeto. Cada atributo de este objeto corresponde a una columna de la línea.
Si no hay más líneas disponibles en la consulta <parameter>statement</parameter>
entonces se devuelve &false;.
</para>
<para>
Cualquier columna <literal>LOB</literal> es devuelta como un descriptor de LOB.
Todas las columnas <literal>LOB</literal> son devueltas en forma de
descriptores LOB.
</para>
<para>
Las columnas <literal>DATE</literal> son devueltas como string con
el formato de fecha actual. El formato predeterminado se puede cambiar con
las variables de entorno de Oracle, como <literal>NLS_LANG</literal>, o
ejecutando previamente un comando <literal>ALTER SESSION SET
NLS_DATE_FORMAT</literal>.
Las columnas <literal>DATE</literal> son devueltas en forma de strings formateados
con el formato de fecha actual. El formato por omisión puede ser cambiado mediante las variables
de entorno Oracle, como <literal>NLS_LANG</literal> o ejecutando el comando
<literal>ALTER SESSION SET NLS_DATE_FORMAT</literal>.
</para>
<para>
Los nombres de columna predeterminados de Oracle que insensibles al uso de mayúsculas/minúsculas
tendrán nombres de atributos en mayúsculas. Los nombres de columnas sensibles al uso de
mayúsculas/minúsculas tendrán nombres de atributos que usan el nombre exacto de la columna.
Use <function>var_dump</function> en el array resultante para verificar el uso apropiado
de mayúsculas/minúsculas en cada acceso al atributo.
Los nombres de columnas que no son sensibles a la casse (por omisión en Oracle),
tendrán nombres de atributos en mayúsculas. Los nombres de columnas que son sensibles a la
casse, tendrán nombres de atributos utilizando exactamente la misma casse de la columna.
Utilice la función <function>var_dump</function> sobre el objeto de resultado para verificar
la casse apropiada para el acceso a los atributos.
</para>
<para>
Los valores de los atributos serán &null; para cualquier campo de datos
<literal>NULL</literal>.
Los valores de atributo serán &null; para cada campo de datos <literal>NULL</literal>.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Ejemplo de <function>oci_fetch_object</function></title>
<title>Ejemplo con <function>oci_fetch_object</function></title>
<programlisting role="php">
<![CDATA[
<?php
/*
Antes de ejecutarlo, cree la tabla:
Antes de la ejecución, cree la tabla:
CREATE TABLE mytab (id NUMBER, description VARCHAR2(30));
INSERT INTO mytab (id, description) values (1, 'Fish and Chips');
COMMIT;
@@ -93,12 +93,12 @@ $stid = oci_parse($conn, 'SELECT id, description FROM mytab');
oci_execute($stid);
while (($row = oci_fetch_object($stid)) != false) {
// Use nombres de atributo en mayúsculas para cada columna estándar de Oracle
// Utilice nombres de atributos sensibles a la casse para cada columna estándar de Oracle
echo $row->ID . "<br>\n";
echo $row->DESCRIPTION . "<br>\n";
echo $row->DESCRIPTION . "<br>\n";
}
// La salida es:
// Muestra:
// 1
// Fish and Chips
@@ -112,13 +112,13 @@ oci_close($conn);
</para>
<para>
<example>
<title><function>oci_fetch_object</function> con nombres de columnas sensibles al uso de mayúsculas/minúsculas</title>
<title>Ejemplo con <function>oci_fetch_object</function> con nombres de columna sensibles a la casse</title>
<programlisting role="php">
<![CDATA[
<?php
/*
Antes de ejecutarlo, cree la tablas con un nombre de columna sensible al uso de mayúsculas/minúsculas:
Antes de la ejecución, cree la tabla con una columna cuyo nombre es sensible a la casse:
CREATE TABLE mytab (id NUMBER, "MyDescription" VARCHAR2(30));
INSERT INTO mytab (id, "MyDescription") values (1, 'Iced Coffee');
COMMIT;
@@ -134,13 +134,13 @@ $stid = oci_parse($conn, 'SELECT id, "MyDescription" FROM mytab');
oci_execute($stid);
while (($row = oci_fetch_object($stid)) != false) {
// Use nombres de atributo en mayúsculas para cada columna estándar de Oracle
// Utilice nombres de atributos en mayúsculas para cada columna estándar de Oracle
echo $row->ID . "<br>\n";
// Use el nombre exacto para nombres de columnas sensibles al uso de mayúsculas/minúsculas
echo $row->MyDescription . "<br>\n";
// Utilice la casse exacta para los nombres de columnas sensibles a la casse
echo $row->MyDescription . "<br>\n";
}
// La salida es:
// Muestra:
// 1
// Iced Coffee
@@ -154,15 +154,15 @@ oci_close($conn);
</para>
<para>
<example>
<title><function>oci_fetch_object</function> con LOBs</title>
<title>Ejemplo con <function>oci_fetch_object</function> con LOBs</title>
<programlisting role="php">
<![CDATA[
<?php
/*
Antes de ejecutarlo, cree la tabla:
Antes de la ejecución, cree la tabla:
CREATE TABLE mytab (id NUMBER, description CLOB);
INSERT INTO mytab (id, description) values (1, 'Un string muy largo');
INSERT INTO mytab (id, description) values (1, 'A very long string');
COMMIT;
*/
@@ -177,13 +177,13 @@ oci_execute($stid);
while (($row = oci_fetch_object($stid)) != false) {
echo $row->ID . "<br>\n";
// Lo siguiente imprimirá los primeros 11 bytes de DESCRIPTION
echo $row->DESCRIPTION->read(11) . "<br>\n";
// Lo siguiente mostrará los 11 primeros bytes desde DESCRIPTION
echo $row->DESCRIPTION->read(11) . "<br>\n";
}
// La salida es:
// Muestra:
// 1
// Un string m
// A very long
oci_free_statement($stid);
oci_close($conn);
@@ -194,7 +194,7 @@ oci_close($conn);
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -207,9 +207,8 @@ oci_close($conn);
</simplelist>
</para>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
@@ -230,4 +229,3 @@ vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@@ -1,33 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: e41806c30bf6975e452c0d4ce35ab0984c2fa68c Maintainer: seros Status: ready -->
<!-- Reviewed: yes Maintainer: seros -->
<!-- EN-Revision: ed6de1ae20ce16c0c7be0b3fef282b6065bebfac Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.oci-fetch-row" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_fetch_row</refname>
<refpurpose>Devuelve la siguiente fila de una consulta como un array numérico</refpurpose>
<refpurpose>Lee la siguiente línea de una consulta en forma de array numérico</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>array</type><methodname>oci_fetch_row</methodname>
<type class="union"><type>array</type><type>false</type></type><methodname>oci_fetch_row</methodname>
<methodparam><type>resource</type><parameter>statement</parameter></methodparam>
</methodsynopsis>
<para>
Devuelve un array con índices numéricos que contiene la siguiente fila del conjunto de resultados de una consulta.
Cada entrada del array corresponde con una columna de la fila. Esta función
normalmente se invoca en un bucle hasta que devuelve &false;, indicando
que no existen más filas.
Devuelve un array indexado numéricamente que contiene la siguiente línea de una consulta.
Cada elemento de este array corresponde a una columna de la línea. Esta función
es llamada típicamente en un ciclo mientras no devuelva &false;, lo que indica
que no hay más líneas disponibles.
</para>
<para>
Llamar a <function>oci_fetch_row</function> es idéntico que llamar a
<function>oci_fetch_array</function>
con <constant>OCI_NUM</constant>
+ <constant>OCI_RETURN_NULLS</constant>.
<function>oci_fetch_row</function> es idéntica a la función
<function>oci_fetch_array</function> y al modo
<constant>OCI_NUM</constant> + <constant>OCI_RETURN_NULLS</constant>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -41,20 +40,21 @@
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve un array con índices numéricos. Si no existen más filas en el parámetro
<parameter>statement</parameter>, entonces devuelve &false;.
Devuelve un array indexado numéricamente. Si no hay más líneas
disponibles para la consulta <parameter>statement</parameter> entonces &false;
será devuelto.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Ejemplo de <function>oci_fetch_row</function></title>
<title>Ejemplo con <function>oci_fetch_row</function></title>
<programlisting role="php">
<![CDATA[
<?php
@@ -81,16 +81,17 @@ oci_close($conn);
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Véase <function>oci_fetch_array</function> para más ejemplos de obtención de filas.
Ver <function>oci_fetch_array</function> para más ejemplos sobre la recuperación
de líneas.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -103,9 +104,8 @@ oci_close($conn);
</simplelist>
</para>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
@@ -126,4 +126,3 @@ vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@@ -1,13 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 5a3f0c18ac46e6d4313367e44866527badac5b73 Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<!-- EN-Revision: 5fcbcd6b56477034278a2199a8819635f3a0d9b9 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.oci-fetch" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_fetch</refname>
<refpurpose>Coloca la siguiente fila de una consulta en los búferes internos</refpurpose>
<refpurpose>Lee la siguiente línea de un resultado Oracle en un buffer interno</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
@@ -15,17 +16,17 @@
<methodparam><type>resource</type><parameter>statement</parameter></methodparam>
</methodsynopsis>
<para>
Coloca la siguiente fila de una consulta en los búferes internos, accesibles
mediante <function>oci_result</function>, o usando varibles
previamente definidas con <function>oci_define_by_name</function>.
Lee la siguiente línea de una consulta en un buffer interno accesible
bien mediante la función <function>oci_result</function>, o utilizando
las variables previamente definidas con la función
<function>oci_define_by_name</function>.
</para>
<para>
Véase <function>oci_fetch_array</function> para información general
sobre la obtención de datos.
Consulte la función <function>oci_fetch_array</function> para obtener
información genérica sobre la recuperación de datos.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -39,20 +40,20 @@
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve &true; en caso de éxito, o &false; si no existen más filas en el parámetro
<parameter>statement</parameter>.
Devuelve &true; en caso de éxito, o &false; si no hay más líneas
disponibles para la consulta <parameter>statement</parameter>.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>oci_fetch</function> con variables definidas </title>
<title>Ejemplo con <function>oci_fetch</function> y variables definidas</title>
<programlisting role="php">
<![CDATA[
<?php
@@ -66,20 +67,20 @@ if (!$conn) {
$sql = 'SELECT location_id, city FROM locations WHERE location_id < 1200';
$stid = oci_parse($conn, $sql);
// Las definiciones DEBEN realizarse antes de la ejecución
// La definición debe realizarse ANTES de la ejecución
oci_define_by_name($stid, 'LOCATION_ID', $locid);
oci_define_by_name($stid, 'CITY', $city);
oci_execute($stid);
// Cada obtención rellena las variables anteriormente definidas con los datos de la siguiente fila
// Cada recuperación utiliza las variables previamente definidas con los datos de la siguiente línea
while (oci_fetch($stid)) {
echo "El id de ubicacion $locid es $city<br>\n";
echo "Location id $locid is $city<br>\n";
}
// Se muestra:
// El id de ubicacion 1000 es Roma
// El id de ubicacion 1100 es Venice
// Muestra:
// Location id 1000 is Roma
// Location id 1100 is Venice
oci_free_statement($stid);
oci_close($conn);
@@ -91,7 +92,7 @@ oci_close($conn);
</para>
<para>
<example>
<title><function>oci_fetch</function> con <function>oci_result</function></title>
<title>Ejemplo con <function>oci_fetch</function> y <function>oci_result</function></title>
<programlisting role="php">
<![CDATA[
<?php
@@ -107,13 +108,13 @@ $stid = oci_parse($conn, $sql);
oci_execute($stid);
while (oci_fetch($stid)) {
echo oci_result($stid, 'LOCATION_ID') . " es ";
echo oci_result($stid, 'LOCATION_ID') . " is ";
echo oci_result($stid, 'CITY') . "<br>\n";
}
// Se muestra:
// 1000 es Roma
// 1100 es Venice
// Muestra:
// 1000 is Roma
// 1100 is Venice
oci_free_statement($stid);
oci_close($conn);
@@ -124,18 +125,18 @@ oci_close($conn);
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
No se devolverán filas desde Conjuntos de Resultados Implícitos de
Oracle Database 12<emphasis>c</emphasis>. Use <function>oci_fetch_array</function>
en su lugar.
Esta función no devolverá líneas desde el conjunto de resultados implícito
de una base de datos Oracle. Utilice en su lugar la función
<function>oci_fetch_array</function>.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -150,7 +151,7 @@ oci_close($conn);
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View File

@@ -1,26 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 8c1fe071140833a8e90b266523ff26a32520c4e7 Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<!-- EN-Revision: 5e41012cfdf8f2eff5fa56de446c7656afac536c Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.oci-field-is-null" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_field_is_null</refname>
<refpurpose>Comprueba si un campo de la fila actualmente obtenida es &null;</refpurpose>
<refpurpose>Comprueba si un campo de la fila recuperada es nulo</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>oci_field_is_null</methodname>
<methodparam><type>resource</type><parameter>statement</parameter></methodparam>
<methodparam><type>mixed</type><parameter>field</parameter></methodparam>
<methodparam><type class="union"><type>string</type><type>int</type></type><parameter>column</parameter></methodparam>
</methodsynopsis>
<para>
Comprueba si el campo especificado por <parameter>field</parameter> de de la fila actual
de la sentencia dada por <parameter>statement</parameter> es &null;.
Verifica si el campo <parameter>column</parameter> dado de la fila
actual de la consulta <parameter>statement</parameter> es nulo.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -29,39 +29,39 @@
<term><parameter>statement</parameter></term>
<listitem>
<para>
Un identificador de sentencia de OCI válido.
Un identificador de consulta OCI válido.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>field</parameter></term>
<term><parameter>column</parameter></term>
<listitem>
<para>
Puede ser el índice de campo (basado en 1) o el nombre.
Puede ser el índice del campo (a partir de 1) o su nombre.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve &true; si <parameter>field</parameter> es &null;, &false; si no.
Devuelve &true; si <parameter>column</parameter> es nulo, &false; en caso contrario.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Ejemplo de <function>oci_field_name</function></title>
<title>Ejemplo con <function>oci_field_name</function></title>
<programlisting role="php">
<![CDATA[
<?php
// Crear una tabla con:
// Creación de la tabla con:
// CREATE TABLE mytab (c1 NUMBER);
// INSERT INTO mytab VALUES (1);
// INSERT INTO mytab VALUES (NULL);
@@ -79,10 +79,10 @@ while (($row = oci_fetch_array($stid, OCI_RETURN_NULLS)) != false) {
$ncols = oci_num_fields($stid);
for ($col = 1; $col <= $ncols; $col++) {
var_dump(oci_field_is_null($stid, $col));
}
}
}
// Salidas:
// Muestra:
// bool(false)
// bool(true)
@@ -95,21 +95,8 @@ oci_close($conn);
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
En versiones de PHP anteriores a la 5.0.0 se debe usar <function>ocicolumnisnull</function> en su lugar.
Este nombre aún se puede usar; se dejó como un alias de
<function>oci_field_is_null</function> por razones de retrocompatibilidad.
Sin embargo, este nombre es obsoleto y no se recomienda.
</para>
</note>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml

View File

@@ -1,25 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: e41806c30bf6975e452c0d4ce35ab0984c2fa68c Maintainer: seros Status: ready -->
<!-- EN-Revision: 5e41012cfdf8f2eff5fa56de446c7656afac536c Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.oci-field-name" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_field_name</refname>
<refpurpose>Devuelve el nombre de un campo de una sentencia</refpurpose>
<refpurpose>Devuelve el nombre de un campo Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>string</type><methodname>oci_field_name</methodname>
<type class="union"><type>string</type><type>false</type></type><methodname>oci_field_name</methodname>
<methodparam><type>resource</type><parameter>statement</parameter></methodparam>
<methodparam><type>mixed</type><parameter>field</parameter></methodparam>
<methodparam><type class="union"><type>string</type><type>int</type></type><parameter>column</parameter></methodparam>
</methodsynopsis>
<para>
Devuelve el nombre del campo dado por <parameter>field</parameter>.
Devuelve el nombre del campo <parameter>column</parameter>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -28,39 +28,39 @@
<term><parameter>statement</parameter></term>
<listitem>
<para>
Un identifidacor de sentencia de OCI válido.
Un identificador de consulta OCI válido.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>field</parameter></term>
<term><parameter>column</parameter></term>
<listitem>
<para>
Puede ser un índice de campo (basado en 1) o un nombre.
Puede ser un índice de campo (comenzando en 1) o un nombre de campo.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve el nombre como una cadena, o &false; en caso de error.
Devuelve el nombre, en forma de &string;,&return.falseforfailure;
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Ejemplo de <function>oci_field_name</function></title>
<title>Ejemplo con <function>oci_field_name</function></title>
<programlisting role="php">
<![CDATA[
<?php
// Crear la tabla con:
// Creación de la tabla con:
// CREATE TABLE mytab (number_col NUMBER, varchar2_col varchar2(1),
// clob_col CLOB, date_col DATE);
@@ -71,7 +71,7 @@ if (!$conn) {
}
$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // Use OCI_DESCRIBE_ONLY if not fetching rows
oci_execute($stid, OCI_DESCRIBE_ONLY); // Uso de OCI_DESCRIBE_ONLY si no se recuperan filas
echo "<table border=\"1\">\n";
echo "<tr>";
@@ -94,7 +94,7 @@ for ($i = 1; $i <= $ncols; $i++) {
echo "</table>\n";
// Salidas:
// Muestra:
// Name Type
// NUMBER_COL NUMBER
// VARCHAR2_COL VARCHAR2
@@ -110,19 +110,7 @@ oci_close($conn);
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
En versiones de PHP anteriores a la 5.0.0 se debe usar <function>ocicolumnname</function> en su lugar.
Este nombre aún se puede usar; se dejó como un alias de
<function>oci_field_name</function> por razones de retrocompatibilidad.
Sin embargo, este nombre es obsoleto y no se recomienda.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -133,9 +121,8 @@ oci_close($conn);
</simplelist>
</para>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml

View File

@@ -1,30 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: e41806c30bf6975e452c0d4ce35ab0984c2fa68c Maintainer: seros Status: ready -->
<!-- EN-Revision: 5e41012cfdf8f2eff5fa56de446c7656afac536c Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.oci-field-precision" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_field_precision</refname>
<refpurpose>Indica la precisión de un campo</refpurpose>
<refpurpose>Lee la precisión de un campo Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>int</type><methodname>oci_field_precision</methodname>
<type class="union"><type>int</type><type>false</type></type><methodname>oci_field_precision</methodname>
<methodparam><type>resource</type><parameter>statement</parameter></methodparam>
<methodparam><type>mixed</type><parameter>field</parameter></methodparam>
<methodparam><type class="union"><type>string</type><type>int</type></type><parameter>column</parameter></methodparam>
</methodsynopsis>
<para>
Devuelve la precisión del campo dado por <parameter>field</parameter>.
Devuelve la precisión del campo <parameter>column</parameter>.
</para>
<para>
Para columnas FLOAT, la precisión no es cero y la escala es -127.
Si la precisión es cero, entonces la columna es NUMBER. Otro número indica
NUMBER(precisión, precisión).
Para las columnas de tipo FLOAT, la precisión no es nula, y
la escala es de -127. Si la precisión es 0, entonces la columna
es de tipo NUMBER. De lo contrario, es de tipo <literal>NUMBER(precision, scale)</literal>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -33,39 +33,39 @@
<term><parameter>statement</parameter></term>
<listitem>
<para>
Un identificador de sentencia de OCI válido.
Un identificador de consulta OCI válido.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>field</parameter></term>
<term><parameter>column</parameter></term>
<listitem>
<para>
Puede ser un índice de campo (basado en 1) o un nombre.
Puede ser un índice de campo (comenzando en 1) o un nombre de campo.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve la precisión como un entero, o &false; en caso de error.
Devuelve la precisión, en forma de &integer;,&return.falseforfailure;
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Ejemplo de <function>oci_field_precision</function></title>
<title>Ejemplo con <function>oci_field_precision</function></title>
<programlisting role="php">
<![CDATA[
<?php
// Crear la tabla con:
// Creación de la tabla con:
// CREATE TABLE mytab (c1 NUMBER, c2 FLOAT, c3 NUMBER(4), c4 NUMBER(5,3));
$conn = oci_connect("hr", "hrpwd", "localhost/XE");
@@ -75,16 +75,16 @@ if (!$conn) {
}
$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // Use OCI_DESCRIBE_ONLY if not fetching rows
oci_execute($stid, OCI_DESCRIBE_ONLY); // Uso de OCI_DESCRIBE_ONLY si ninguna fila es recuperada
$ncols = oci_num_fields($stid);
for ($i = 1; $i <= $ncols; $i++) {
echo oci_field_name($stid, $i) . " "
. oci_field_precision($stid, $i) . " "
echo oci_field_name($stid, $i) . " "
. oci_field_precision($stid, $i) . " "
. oci_field_scale($stid, $i) . "<br>\n";
}
// Salidas:
// Muestra:
// C1 0 -127
// C2 126 -127
// C3 4 0
@@ -99,19 +99,7 @@ oci_close($conn);
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
En versiones de PHP anteriores a la 5.0.0 se debe usar <function>ocicolumnprecision</function> en su lugar.
Este nombre aún se puede usar; se dejó como un alias de
<function>oci_field_precision</function> por razones de retrocompatibilidad.
Sin embargo, este nombre es obsoleto y no se recomienda.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -121,9 +109,8 @@ oci_close($conn);
</simplelist>
</para>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml

View File

@@ -1,30 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: e41806c30bf6975e452c0d4ce35ab0984c2fa68c Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<!-- EN-Revision: 5e41012cfdf8f2eff5fa56de446c7656afac536c Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.oci-field-scale" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_field_scale</refname>
<refpurpose>Indica la escala de un campo</refpurpose>
<refpurpose>Lee la escala de una columna Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>int</type><methodname>oci_field_scale</methodname>
<type class="union"><type>int</type><type>false</type></type><methodname>oci_field_scale</methodname>
<methodparam><type>resource</type><parameter>statement</parameter></methodparam>
<methodparam><type>mixed</type><parameter>field</parameter></methodparam>
<methodparam><type class="union"><type>string</type><type>int</type></type><parameter>column</parameter></methodparam>
</methodsynopsis>
<para>
Devuelve la escala de la columna con índice <parameter>field</parameter>.
Lee la escala de una columna Oracle.
</para>
<para>
Para columnas FLOAT, la precisión no es cero y la escala es -127.
Si la precisión es cero, entonces la columna es NUMBER. Otro número indica
NUMBER(precisión, precisión).
Para las columnas de tipo FLOAT, la precisión no es nula, y
la escala es de -127. Si la precisión es 0, entonces la columna
es de tipo NUMBER. De lo contrario, es de tipo <literal>NUMBER(precision, scale)</literal>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -33,39 +33,39 @@
<term><parameter>statement</parameter></term>
<listitem>
<para>
Un identificador de sentencia de OCI válido.
Un identificador de consulta OCI válido.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>field</parameter></term>
<term><parameter>column</parameter></term>
<listitem>
<para>
Puede ser un índice de campo (basado en 1) o un nombre.
Puede ser un índice de campo (comenzando en 1) o el nombre de un campo.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve la escala como un entero, o &false; en caso de error.
Devuelve la escala, en forma de &integer;,&return.falseforfailure;
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>oci_field_scale</function> Example</title>
<title>Ejemplo con <function>oci_field_scale</function></title>
<programlisting role="php">
<![CDATA[
<?php
// Crear la tabla con:
// Creación de la tabla con:
// CREATE TABLE mytab (c1 NUMBER, c2 FLOAT, c3 NUMBER(4), c4 NUMBER(5,3));
$conn = oci_connect("hr", "hrpwd", "localhost/XE");
@@ -75,16 +75,16 @@ if (!$conn) {
}
$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // Use OCI_DESCRIBE_ONLY if not fetching rows
oci_execute($stid, OCI_DESCRIBE_ONLY); // Uso de OCI_DESCRIBE_ONLY si no se recupera ninguna fila
$ncols = oci_num_fields($stid);
for ($i = 1; $i <= $ncols; $i++) {
echo oci_field_name($stid, $i) . " "
. oci_field_precision($stid, $i) . " "
echo oci_field_name($stid, $i) . " "
. oci_field_precision($stid, $i) . " "
. oci_field_scale($stid, $i) . "<br>\n";
}
// Salidas:
// Muestra:
// C1 0 -127
// C2 126 -127
// C3 4 0
@@ -99,19 +99,7 @@ oci_close($conn);
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
En versiones de PHP anteriores a la 5.0.0 se debe usar <function>ocicolumnscale</function> en su lugar.
Este nombre aún se puede usar; se dejó como un alias de
<function>oci_field_scale</function> por razones de retrocompatibilidad.
Sin embargo, este nombre es obsoleto y no se recomienda.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -121,9 +109,8 @@ oci_close($conn);
</simplelist>
</para>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml

View File

@@ -1,25 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: e41806c30bf6975e452c0d4ce35ab0984c2fa68c Maintainer: seros Status: ready -->
<!-- EN-Revision: 5e41012cfdf8f2eff5fa56de446c7656afac536c Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.oci-field-size" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_field_size</refname>
<refpurpose>Devuelve el tamaño de un campo</refpurpose>
<refpurpose>Devuelve el tamaño de un campo Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>int</type><methodname>oci_field_size</methodname>
<type class="union"><type>int</type><type>false</type></type><methodname>oci_field_size</methodname>
<methodparam><type>resource</type><parameter>statement</parameter></methodparam>
<methodparam><type>mixed</type><parameter>field</parameter></methodparam>
<methodparam><type class="union"><type>string</type><type>int</type></type><parameter>column</parameter></methodparam>
</methodsynopsis>
<para>
Devuelve el tamaño del campo dado por <parameter>field</parameter>.
Devuelve el tamaño del campo <parameter>column</parameter> Oracle.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -28,41 +28,41 @@
<term><parameter>statement</parameter></term>
<listitem>
<para>
Un identificador de sentencia de OCI válido.
Un identificador de consulta OCI válido.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>field</parameter></term>
<term><parameter>column</parameter></term>
<listitem>
<para>
Puede ser un índice de campo (basado en 1) o un nombre.
Puede ser el índice del campo (la indexación comienza en 1) o
el nombre del campo.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve el tamaño de <parameter>field</parameter> en bytes, o &false; en
caso de error.
Devuelve el tamaño del campo <parameter>field</parameter> en bytes,&return.falseforfailure;
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Ejemplo de <function>oci_field_size</function></title>
<title>Ejemplo con <function>oci_field_size</function></title>
<programlisting role="php">
<![CDATA[
<?php
// Crear la tabla con:
// CREATE TABLE mytab (number_col NUMBER, varchar2_col varchar2(1),
// Creación de la tabla con:
// CREATE TABLE mytab (number_col NUMBER, varchar2_col varchar2(1),
// clob_col CLOB, date_col DATE);
$conn = oci_connect("hr", "hrpwd", "localhost/XE");
@@ -72,7 +72,7 @@ if (!$conn) {
}
$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // Use OCI_DESCRIBE_ONLY if not fetching rows
oci_execute($stid, OCI_DESCRIBE_ONLY); // Utilización de OCI_DESCRIBE_ONLY si ninguna fila es recuperada
echo "<table border=\"1\">\n";
echo "<tr>";
@@ -97,7 +97,7 @@ for ($i = 1; $i <= $ncols; $i++) {
echo "</table>\n";
// Salidas:
// Muestra:
// Name Type Length
// NUMBER_COL NUMBER 22
// VARCHAR2_COL VARCHAR2 1
@@ -113,19 +113,7 @@ oci_close($conn);
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
En versiones de PHP anteriores a la 5.0.0 se debe usar <function>ocicolumnsize</function> en su lugar.
Este nombre aún se puede usar; se dejó como un alias de
<function>oci_field_size</function> por razones de retrocompatibilidad.
Sin embargo, este nombre es obsoleto y no se recomienda.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -135,9 +123,8 @@ oci_close($conn);
</simplelist>
</para>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml

View File

@@ -1,28 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: e41806c30bf6975e452c0d4ce35ab0984c2fa68c Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<!-- EN-Revision: 5e41012cfdf8f2eff5fa56de446c7656afac536c Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.oci-field-type-raw" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_field_type_raw</refname>
<refpurpose>Indica el tipo de datos sin tratar de Oracle de un campo</refpurpose>
<refpurpose>Lee los datos brutos del tipo de un campo</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>int</type><methodname>oci_field_type_raw</methodname>
<type class="union"><type>int</type><type>false</type></type><methodname>oci_field_type_raw</methodname>
<methodparam><type>resource</type><parameter>statement</parameter></methodparam>
<methodparam><type>mixed</type><parameter>field</parameter></methodparam>
<methodparam><type class="union"><type>string</type><type>int</type></type><parameter>column</parameter></methodparam>
</methodsynopsis>
<para>
Devuelve el tipo de datos "SQLT" sin tratar de Oracle del campo dado por <parameter>field</parameter>.
Lee los datos brutos "SQLT" del tipo del campo <parameter>column</parameter>.
</para>
<para>
Si se quiere obtener el nombre de tipo del campo, es mejor usar <function>oci_field_type</function>.
Si se desea obtener el nombre del tipo del campo, utilice la función
<function>oci_field_type</function>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -31,39 +32,40 @@
<term><parameter>statement</parameter></term>
<listitem>
<para>
Un identificador de sentencia de OCI válido.
Un identificador de consulta OCI válido.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>field</parameter></term>
<term><parameter>column</parameter></term>
<listitem>
<para>
Puede ser un índice de campo (basado en 1) o un nombre.
Puede ser el índice de un campo (comenzando en 1) o el nombre de un campo.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devueleve el tipo de datos sin tratar de Oracle como un número, o &false; en caso de error.
Devuelve el tipo de datos brutos de Oracle, para el campo, en forma de número,
&return.falseforfailure;
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>oci_field_type_raw</function> Example</title>
<title>Ejemplo con <function>oci_field_type_raw</function></title>
<programlisting role="php">
<![CDATA[
<?php
// Crear la tabla con:
// Creación de la tabla con:
// CREATE TABLE mytab (number_col NUMBER, varchar2_col varchar2(1), clob_col CLOB, date_col DATE);
$conn = oci_connect("hr", "hrpwd", "localhost/XE");
@@ -73,13 +75,14 @@ if (!$conn) {
}
$stid = oci_parse($conn, 'select * from mytab');
oci_execute($stid, OCI_DESCRIBE_ONLY); // Use OCI_DESCRIBE_ONLY if not fetching rows
oci_execute($stid, OCI_DESCRIBE_ONLY); // Uso de OCI_DESCRIBE_ONLY si no se recupera ninguna fila
$n = oci_num_fields($stid);
for ($i = 1; $i <= $n; ++$i) {
echo oci_field_name($stid, $i) . " is raw type: " . oci_field_type_raw($stid, $i) . "<br>\n";
}
// La salida es:
// Muestra:
// NUMBER_COL is raw type: 2
// VARCHAR2_COL is raw type: 1
// CLOB_COL is raw type: 112
@@ -93,21 +96,8 @@ oci_close($conn);
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
En versiones de PHP anteriores a la 5.0.0 se debe usar <function>ocicolumntyperaw</function> en su lugar.
Este nombre aún se puede usar; se dejó como un alias de
<function>oci_field_type_raw</function> por razones de retrocompatibilidad.
Sin embargo, este nombre es obsoleto y no se recomienda.
</para>
</note>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml

View File

@@ -1,25 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 0231235092aa64d7e0abfd69de7fab047fba73b1 Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<!-- EN-Revision: 5e41012cfdf8f2eff5fa56de446c7656afac536c Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.oci-field-type" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_field_type</refname>
<refpurpose>Devuelve el nombre del tipo de datos de un campo</refpurpose>
<refpurpose>Devuelve el tipo de datos de un campo Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>mixed</type><methodname>oci_field_type</methodname>
<type class="union"><type>string</type><type>int</type><type>false</type></type><methodname>oci_field_type</methodname>
<methodparam><type>resource</type><parameter>statement</parameter></methodparam>
<methodparam><type>mixed</type><parameter>field</parameter></methodparam>
<methodparam><type class="union"><type>string</type><type>int</type></type><parameter>column</parameter></methodparam>
</methodsynopsis>
<para>
Devuelve el nombre del tipo de datos de un campo.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -28,40 +28,40 @@
<term><parameter>statement</parameter></term>
<listitem>
<para>
Un identificador de sentencia de OCI válido.
Un identificador de consulta OCI válido.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>field</parameter></term>
<term><parameter>column</parameter></term>
<listitem>
<para>
Puede ser un índice de campo (basado en 1) o un nombre.
Puede ser el índice del campo (la indexación comienza en 1) o el nombre.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve el tipo de datos de un campo como una cadena, o &false; en caso de error.
Devuelve el tipo de datos de un campo, en forma de &string; o un
&integer;,&return.falseforfailure;
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Ejemplo de <function>oci_field_type</function></title>
<title>Ejemplo con <function>oci_field_type</function></title>
<programlisting role="php">
<![CDATA[
<?php
// Crear la tabla con:
// CREATE TABLE mytab (number_col NUMBER, varchar2_col varchar2(1),
// Creación de la tabla con:
// CREATE TABLE mytab (number_col NUMBER, varchar2_col varchar2(1),
// clob_col CLOB, date_col DATE);
$conn = oci_connect("hr", "hrpwd", "localhost/XE");
@@ -71,7 +71,7 @@ if (!$conn) {
}
$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // Use OCI_DESCRIBE_ONLY si no se obtienen filas
oci_execute($stid, OCI_DESCRIBE_ONLY); // Uso de OCI_DESCRIBE_ONLY si no se recupera ninguna fila
echo "<table border=\"1\">\n";
echo "<tr>";
@@ -96,7 +96,7 @@ for ($i = 1; $i <= $ncols; $i++) {
echo "</table>\n";
// Salidas:
// Muestra:
// Name Type Length
// NUMBER_COL NUMBER 22
// VARCHAR2_COL VARCHAR2 1
@@ -112,19 +112,7 @@ oci_close($conn);
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
En versiones de PHP anteriores a la 5.0.0 se debe usar <function>ocicolumntype</function> en su lugar.
Este nombre aún se puede usar; se dejó como un alias de
<function>oci_field_type</function> por razones de retrocompatibilidad.
Sin embargo, este nombre es obsoleto y no se recomienda.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -135,9 +123,8 @@ oci_close($conn);
</simplelist>
</para>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml

View File

@@ -1,22 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: b9e6268918813e27972c644897970b0cdbc6f86e Maintainer: andresdzphp Status: ready -->
<!-- Reviewed: yes Maintainer: andresdzphp -->
<!-- EN-Revision: deb6ee36001e5d315c92780db3a6cf64fe4f70bf Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.oci-free-descriptor" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_free_descriptor</refname>
<refpurpose>Libera un descriptor</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis role="procedural">
<methodsynopsis>
<type>bool</type><methodname>oci_free_descriptor</methodname>
<methodparam><type>OCILob</type><parameter>lob</parameter></methodparam>
</methodsynopsis>
<para>
Libera un descriptor asignado por <function>oci_new_descriptor</function>.
Libera un descriptor asignado por la función
<function>oci_new_descriptor</function>.
</para>
</refsect1>
@@ -28,13 +27,13 @@
<term><parameter>descriptor</parameter></term>
<listitem>
<para>
Descriptor asignado por la función <function>oci_new_descriptor</function>.
Descriptor asignado por <function>oci_new_descriptor</function>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
@@ -47,12 +46,12 @@
&reftitle.notes;
<note>
<para>
Esta función se utiliza comúnmente como un método <link linkend="ocilob.free">OCILOB::free</link>.
Esta función es habitualmente utilizada como método
<link linkend="ocilob.free">OCILOB::free</link>.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -62,7 +61,6 @@
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:

View File

@@ -1,41 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: cb2e7b70b1354e5468e538720d59c37e273bc98e Maintainer: seros Status: ready -->
<!-- EN-Revision: ed6de1ae20ce16c0c7be0b3fef282b6065bebfac Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.oci-get-implicit-resultset" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_get_implicit_resultset</refname>
<refpurpose>Devuelve el siguiente recurso de sentencia hija desde un recurso de sentencia padre que posee Conjuntos de resultados implícitos de Oracle Database 12c
</refpurpose>
<refpurpose>Retorna el hijo siguiente de un recurso de consulta desde un recurso de consulta padre que tiene un juego de resultados implícito de Oracle Database</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>resource </type><methodname>oci_get_implicit_resultset</methodname>
<type class="union"><type>resource</type><type>false</type></type><methodname>oci_get_implicit_resultset</methodname>
<methodparam><type>resource</type><parameter>statement</parameter></methodparam>
</methodsynopsis>
<para>
Usado para obtener conjuntos consecutivos de resultados de consultas destpués de la
ejecución de un bloque almacenado o anónimo de PL/SQL de Oracle cuando dicho
bloque devuelve resultados de consultas con la
función de PL/SQL
<emphasis>DBMS_SQL.RETURN_RESULT</emphasis> de
Oracle. Esto permite a los bloques de PL/SQL devolver fácilmente resultados
Utilizado para recuperar juegos recursivos de resultados de consultas
después de la ejecución de un bloque almacenado o anónimo Oracle PL/SQL donde este bloque
retorna resultados de consultas con la función
<emphasis>DBMS_SQL.RETURN_RESULT</emphasis> Oracle PL/SQL de la base de datos
Oracle 12 (o posterior).
Esto permite a los bloques PL/SQL retornar fácilmente resultados
de consultas.
</para>
<para>
La sentencia hija puede usarse con cualquier función de obtención
de OCI8: <function>oci_fetch</function>, <function>oci_fetch_all</function>,
<function>oci_fetch_array</function>, <function>oci_fetch_object</function>,
<function>oci_fetch_assoc</function> or <function>oci_fetch_row</function>
La consulta hija puede ser utilizada con cualquiera de las funciones
de recuperación OCI8: <function>oci_fetch</function>, <function>oci_fetch_all</function>,
<function>oci_fetch_array</function>, <function>oci_fetch_object</function>,
<function>oci_fetch_assoc</function> o <function>oci_fetch_row</function>
</para>
<para>
Las sentencias hijas heredan el valor de precarga de sus sentencias padres,
o se puede establecer explícitamente con <function>oci_set_prefetch</function>.
Las consultas hijas heredan los valores pre-recuperados de sus padres,
o pueden ser definidas explícitamente con la función
<function>oci_set_prefetch</function>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -43,34 +43,34 @@
<varlistentry>
<term><parameter>statement</parameter></term>
<listitem>
<para>Un identificador de sentencia OCI8 válido creado
mediante <function>oci_parse</function> y ejecutada
por <function>oci_execute</function>. El identificador
de sentencia podría o no estar asociado con una sentencia SQL
que devuelva Conjuntos de resultados implícitos.
</para>
<para>
Un identificador de consulta OCI8 válido creado por la función
<function>oci_parse</function> y ejecutado por la función
<function>oci_execute</function>. El identificador de consulta
puede o no estar asociado con una consulta OCI8 que retorna
juegos de resultados implícitos.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve un gestor de sentencia para la siguiente sentencia hija disponible
en <parameter>statement</parameter>. Devuelve &false; cuando no existan
sentencias hijas, o todas las sentencia hijas han sido devueltas
por llamadas anteriores
a <function>oci_get_implicit_resultset</function>.
Retorna un gestor de consulta para la próxima consulta hija disponible
en <parameter>statement</parameter>. Retorna &false; cuando la consulta
hija no existe, o cuando todas las consultas hijas han sido retornadas
por llamados previos a la función <function>oci_get_implicit_resultset</function>.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Obtener Conjuntos de resultados implícitos en un blucle</title>
<title>Recuperación de los juegos de resultados implícitos mediante un ciclo</title>
<programlisting role="php">
<![CDATA[
<?php
@@ -94,7 +94,7 @@ $stid = oci_parse($conn, $sql);
oci_execute($stid);
while (($stid_c = oci_get_implicit_resultset($stid))) {
echo "<h2>Nuevo Conjunto de resultados implícitos:</h2>\n";
echo "<h2>Nuevo juego de resultados implícito:</h2>\n";
echo "<table>\n";
while (($row = oci_fetch_array($stid_c, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
echo "<tr>\n";
@@ -106,12 +106,12 @@ while (($stid_c = oci_get_implicit_resultset($stid))) {
echo "</table>\n";
}
// La salida es:
// Nuevo Conjunto de resultados implícitos:
// Muestra:
// Nuevo juego de resultados implícito:
// Beijing 190518
// Bern 3095
// Bombay 490231
// Nuevo Conjunto de resultados implícitos:
// Nuevo juego de resultados implícito:
// CN
// CH
// IN
@@ -124,10 +124,10 @@ oci_close($conn);
</programlisting>
</example>
</para>
<para>
<example>
<title>Obtener gestores de sentencias hijas individualemente</title>
<title>Recupera individualmente los gestores de consultas hijas</title>
<programlisting role="php">
<![CDATA[
<?php
@@ -162,7 +162,7 @@ var_dump($row);
$row = oci_fetch_array($stid_2, OCI_ASSOC+OCI_RETURN_NULLS);
var_dump($row);
// La salida es:
// Muestra:
// array(2) {
// ["CITY"]=>
// string(7) "Beijing"
@@ -192,10 +192,10 @@ oci_close($conn);
</programlisting>
</example>
</para>
<para>
<example>
<title>Establecer explícitamente la Cuenta de precarga</title>
<title>Definición explícita del contador de pre-recuperación</title>
<programlisting role="php">
<![CDATA[
<?php
@@ -217,7 +217,7 @@ $stid = oci_parse($conn, $sql);
oci_execute($stid);
$stid_c = oci_get_implicit_resultset($stid);
oci_set_prefetch($stid_c, 200); // Set the prefetch before fetching from the child statement
oci_set_prefetch($stid_c, 200); // Establece la pre-recuperación antes de recuperar de la consulta hija
echo "<table>\n";
while (($row = oci_fetch_array($stid_c, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
echo "<tr>\n";
@@ -236,12 +236,13 @@ oci_close($conn);
</programlisting>
</example>
</para>
<para>
<example>
<title>Ejemplo de Conjunto de resultados implícitos sin usar <function>oci_get_implicit_resultset</function></title>
<title>Ejemplo de juego de resultados implícito sin utilizar la función
<function>oci_get_implicit_resultset</function></title>
<para>
Todos los resultados de todas las consultas son devueltas consecutivamente.
Todos los resultados de todas las consultas son retornados consecutivamente.
</para>
<programlisting role="php">
<![CDATA[
@@ -265,7 +266,7 @@ $sql = 'DECLARE
$stid = oci_parse($conn, $sql);
oci_execute($stid);
// Note: oci_fetch_all y oci_fetch() no se pueden usar de esta manera
// Nota: oci_fetch_all y oci_fetch() no pueden ser utilizados de esta manera
echo "<table>\n";
while (($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
echo "<tr>\n";
@@ -276,7 +277,7 @@ while (($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
}
echo "</table>\n";
// La salida es:
// Muestra:
// Beijing 190518
// Bern 3095
// Bombay 490231
@@ -293,16 +294,15 @@ oci_close($conn);
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
&oci.use.setprefetch;
</note>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
@@ -323,4 +323,3 @@ vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@@ -1,25 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 96c9d88bad9a7d7d44bfb7f26c226df7ee9ddf26 Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<!-- EN-Revision: ed6de1ae20ce16c0c7be0b3fef282b6065bebfac Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.oci-lob-is-equal" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_lob_is_equal</refname>
<refpurpose>Compara dos localizadores LOB/FILE</refpurpose>
<refpurpose>Comparar dos LOB/FILE de Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>oci_lob_is_equal</methodname>
<methodparam><type>OCI-Lob</type><parameter>lob1</parameter></methodparam>
<methodparam><type>OCI-Lob</type><parameter>lob2</parameter></methodparam>
<methodparam><type>OCILob</type><parameter>lob1</parameter></methodparam>
<methodparam><type>OCILob</type><parameter>lob2</parameter></methodparam>
</methodsynopsis>
<para>
Compara dos localizadores LOB/FILE.
Compara dos LOB/FILE de Oracle.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -43,15 +43,24 @@
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve &true; si los objetos son iguales, &false; si no.
Devuelve &true; si estos objetos son iguales, &false; en caso contrario.
</para>
</refsect1>
</refentry>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
La clase OCICollection se denominaba OCI-Collection antes de PHP 8 y OCI8 3.0.0.
</para>
</note>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
@@ -72,4 +81,3 @@ vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@@ -1,14 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: b9e6268918813e27972c644897970b0cdbc6f86e Maintainer: seros Status: ready -->
<!-- EN-Revision: 5e41012cfdf8f2eff5fa56de446c7656afac536c Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.oci-new-collection" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_new_collection</refname>
<refpurpose>Asigna un nuevo objeto colección</refpurpose>
<refpurpose>Inicializa una nueva colección Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
@@ -18,10 +17,10 @@
<methodparam choice="opt"><type class="union"><type>string</type><type>null</type></type><parameter>schema</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
<para>
Asigna un nuevo objeto colección.
Inicializa una nueva colección Oracle.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -30,16 +29,17 @@
<term><parameter>connection</parameter></term>
<listitem>
<para>
Un identificador de conexión de Oracle devuelto por
<function>oci_connect</function> o <function>oci_pconnect</function>.
Un identificador de conexión Oracle, devuelto por la función
<function>oci_connect</function> o la función
<function>oci_pconnect</function>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>tdo</parameter></term>
<term><parameter>type_name</parameter></term>
<listitem>
<para>
Debería ser un tipo con nombre válido (en mayúsculas).
Debe ser un tipo nombrado válido (en mayúsculas).
</para>
</listitem>
</varlistentry>
@@ -47,20 +47,20 @@
<term><parameter>schema</parameter></term>
<listitem>
<para>
Debería apuntar al esquema donde fue creado el tipo con nombre. El nombre
del usuario actual es usado cuando el valor &null; es pasado.
Debe apuntar al esquema de la base de datos, donde el tipo fue creado.
El nombre del usuario actual es utilizado cuando &null; es proporcionado.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve un nuevo objeto <classname>OCICollection</classname> o &false; en caso de
error.
Devuelve un nuevo objeto <classname>OCICollection</classname>, o &false;
si ocurre un error.
</para>
</refsect1>
@@ -78,31 +78,23 @@
<row>
<entry>8.0.0, PECL OCI8 3.0.0</entry>
<entry>
<parameter>schema</parameter> es ahora nullable.
<parameter>schema</parameter> ahora es nullable.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
La clase <classname>OCICollection</classname> se llamó <classname>OCI-Collection</classname> antes de PHP 8 y OCI8 3.0.0.
</para>
</note>
<note>
<para>
En versiones de PHP anteriores a la 5.0.0 se debe usar
<function>ocinewcollection</function> en su lugar. Este nombre aún puede
usarse; se dejó como alias de <function>oci_new_collection</function> por
razones de retrocompatibilidad. Sin embargo, este nombre es obsoleto y no se recomienda.
La clase <classname>OCICollection</classname> se llamaba <classname>OCI-Collection</classname> antes de PHP 8 y OCI8 3.0.0.
</para>
</note>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:

View File

@@ -1,35 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: e41806c30bf6975e452c0d4ce35ab0984c2fa68c Maintainer: seros Status: ready -->
<!-- Reviewed: yes Maintainer: seros -->
<!-- EN-Revision: ed6de1ae20ce16c0c7be0b3fef282b6065bebfac Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes Maintainer: PhilDaiguille -->
<refentry xml:id="function.oci-new-connect" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>oci_new_connect</refname>
<refpurpose>Conectar al servidor de Oracle usando una conexión única</refpurpose>
<refpurpose>Conexión al servidor Oracle utilizando una sola conexión</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>resource</type><methodname>oci_new_connect</methodname>
<type class="union"><type>resource</type><type>false</type></type><methodname>oci_new_connect</methodname>
<methodparam><type>string</type><parameter>username</parameter></methodparam>
<methodparam><type>string</type><parameter>password</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>connection_string</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>character_set</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>session_mode</parameter></methodparam>
<methodparam choice="opt"><type class="union"><type>string</type><type>null</type></type><parameter>connection_string</parameter><initializer>&null;</initializer></methodparam>
<methodparam choice="opt"><type>string</type><parameter>encoding</parameter><initializer>""</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>session_mode</parameter><initializer><constant>OCI_DEFAULT</constant></initializer></methodparam>
</methodsynopsis>
<para>
Establece una nueva conexión a un servidor de Oracle y se identifica.
Establece una nueva conexión al servidor Oracle e identifica.
</para>
<para>
A diferencia de <function>oci_connect</function> y
A diferencia de las funciones <function>oci_connect</function> y
<function>oci_pconnect</function>, <function>oci_new_connect</function>
no almacena en caché conexiones y siempre devolve un gestor de conexión
recién abierto. Esto es útil si la aplicación necesita
aislamiento transaccional entre dos conjuntos de consultas.
no almacena en caché las conexiones y siempre devuelve un manejador de conexión
recién abierto. Esto es muy útil si la aplicación necesita aislamiento
transaccional entre dos conjuntos de consultas.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -46,7 +45,7 @@
<term><parameter>password</parameter></term>
<listitem>
<para>
La contraseña para <parameter>username</parameter>.
La contraseña para el usuario.
</para>
</listitem>
</varlistentry>
@@ -57,7 +56,7 @@
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>character_set</parameter></term>
<term><parameter>encoding</parameter></term>
<listitem>
&oci.charset;
</listitem>
@@ -71,34 +70,57 @@
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve un identificador de conexión, o &false; en caso de error.
Devuelve un identificador de conexión, o &false;
si ocurre un error.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.0.0, PECL OCI8 3.0.0</entry>
<entry>
<parameter>connection_string</parameter> ahora es nullable.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
Lo siguiente demuestra cómo se pueden separar conexiones.
A continuación se muestra cómo separar transacciones.
<example>
<title>Ejemplo de <function>oci_new_connect</function></title>
<title>Ejemplo con <function>oci_new_connect</function></title>
<programlisting role="php">
<![CDATA[
<?php
// crear la tabla mytab (mycol number);
// Creación de la tabla mytab (mycol number);
function query($name, $c)
{
echo "Consultando $name\n";
echo "Querying $name\n";
$s = oci_parse($c, "select * from mytab");
oci_execute($s, OCI_NO_AUTO_COMMIT);
$row = oci_fetch_array($s, OCI_ASSOC);
if (!$row) {
echo "No hay filas\n";
echo "No rows\n";
} else {
do {
foreach ($row as $item)
@@ -114,18 +136,18 @@ $c2 = oci_new_connect("hr", "welcome", "localhost/orcl");
$s = oci_parse($c1, "insert into mytab values(1234)");
oci_execute($s, OCI_NO_AUTO_COMMIT);
query("conexión básica", $c1);
query("nueva conexión", $c2);
query("basic connection", $c1);
query("new connection", $c2);
oci_commit($c1);
query("nueva conexión después de consignar", $c2);
query("new connection after commit", $c2);
// Output is:
// Consultando conexión básica
// 1234
// Consultando nueva conexión
// No hay filas
// Consultando nueva conexión después de consignar
// 1234
// Muestra:
// Querying basic connection
// 1234
// Querying new connection
// No rows
// Querying new connection after commit
// 1234
?>
]]>
@@ -133,10 +155,11 @@ query("nueva conexión después de consignar", $c2);
</example>
</para>
<para>
Véase <function>oci_connect</function> para más ejemplos de uso de parámetros.
Ver la función <function>oci_connect</function> para más ejemplos
sobre el uso de este parámetro.
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -146,9 +169,8 @@ query("nueva conexión después de consignar", $c2);
</simplelist>
</para>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml

View File

@@ -1,24 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: e41806c30bf6975e452c0d4ce35ab0984c2fa68c Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<!-- EN-Revision: 5e41012cfdf8f2eff5fa56de446c7656afac536c Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.oci-new-cursor" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_new_cursor</refname>
<refpurpose>Asigna y devuelve un nuevo cursor (gestor de sentencia)</refpurpose>
<refpurpose>Asigna y devuelve un nuevo cursor Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>resource</type><methodname>oci_new_cursor</methodname>
<type class="union"><type>resource</type><type>false</type></type><methodname>oci_new_cursor</methodname>
<methodparam><type>resource</type><parameter>connection</parameter></methodparam>
</methodsynopsis>
<para>
Asigna un nuevo gestor de sentencia para la conexión especificada.
Asigna un nuevo cursor Oracle en la conexión especificada.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -27,31 +27,34 @@
<term><parameter>connection</parameter></term>
<listitem>
<para>
Un identificador de conexión de Oracle devuelto por
<function>oci_connect</function> o <function>oci_pconnect</function>.
Un identificador de conexión Oracle, devuelto por la función
<function>oci_connect</function> o la función
<function>oci_pconnect</function>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve un nuevo gestor de sentencia, o &false; en caso de error.
Devuelve un nuevo manejador de conexión, o &false;
si ocurre un error.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Vincular un REF CURSOR en una llamada a un procedimiento almacenado de Oracle</title>
<title>Utilizar un REF CURSOR de un procedimiento almacenado</title>
<programlisting role="php">
<![CDATA[
// Precreación:
// create or replace procedure myproc(myrc out sys_refcursor) as
<?php
// Requisitos previos:
// crear o reemplazar el procedimiento myproc(myrc out sys_refcursor) de la siguiente manera:
// begin
// open myrc for select first_name from employees;
// end;
@@ -67,7 +70,7 @@ $stid = oci_parse($conn, "begin myproc(:cursbv); end;");
oci_bind_by_name($stid, ":cursbv", $curs, -1, OCI_B_CURSOR);
oci_execute($stid);
oci_execute($curs); // Ejecutar el REF CURSOR como un ide de sentencia normal
oci_execute($curs); // Ejecutar el REF CURSOR como un identificador de sentencia normal
while (($row = oci_fetch_array($curs, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
echo $row['FIRST_NAME'] . "<br />\n";
}
@@ -75,28 +78,14 @@ while (($row = oci_fetch_array($curs, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
oci_free_statement($stid);
oci_free_statement($curs);
oci_close($conn);
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
En versiones de PHP anteriores a la 5.0.0 se debe usar <function>ocinewcursor</function>
en su lugar. Este nombre aún puede usarse; se dejó como alias de
<function>oci_new_cursor</function> por razones de retrocompatibilidad.
Sin embargo, este nombre es obsoleto y no se recomienda.
</para>
</note>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml

View File

@@ -1,25 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: e41806c30bf6975e452c0d4ce35ab0984c2fa68c Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<!-- EN-Revision: 5e41012cfdf8f2eff5fa56de446c7656afac536c Maintainer: yannick Status: ready -->
<!-- Reviewed: yes Maintainer: mikaelkael -->
<refentry xml:id="function.oci-new-descriptor" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_new_descriptor</refname>
<refpurpose>Inicializa un nuevo descriptor LOB o FILE vacío</refpurpose>
<refpurpose>Inicializa un nuevo puntero vacío de LOB/FILE de Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>OCI-Lob</type><methodname>oci_new_descriptor</methodname>
<type class="union"><type>OCILob</type><type>null</type></type><methodname>oci_new_descriptor</methodname>
<methodparam><type>resource</type><parameter>connection</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>type</parameter><initializer>OCI_DTYPE_LOB</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>type</parameter><initializer><constant>OCI_DTYPE_LOB</constant></initializer></methodparam>
</methodsynopsis>
<para>
Asigna recursos para almacenar un descriptor o un localizador LOB.
Inicializa un nuevo puntero vacío de LOB/FILE de Oracle.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -28,8 +28,9 @@
<term><parameter>connection</parameter></term>
<listitem>
<para>
Un identificador de conexión de Oracle devuelto por
<function>oci_connect</function> o <function>oci_pconnect</function>.
Un identificador de conexión Oracle, devuelto por la función
<function>oci_connect</function> o la función
<function>oci_pconnect</function>.
</para>
</listitem>
</varlistentry>
@@ -37,36 +38,37 @@
<term><parameter>type</parameter></term>
<listitem>
<para>
Los valores válidos para <parameter>type</parameter> son:
<constant>OCI_DTYPE_FILE</constant>, <constant>OCI_DTYPE_LOB</constant> y
<constant>OCI_DTYPE_ROWID</constant>.
Los valores admitidos para <parameter>type</parameter> son :
<constant>OCI_D_FILE</constant>,
<constant>OCI_D_LOB</constant> y <constant>OCI_D_ROWID</constant>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve un nuevo descriptor de LOB o FILE en caso de éxito, &false; en caso de error.
Devuelve un nuevo recurso LOB o FILE en caso de éxito,
o &null; en caso de fallo.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Ejemplo de <function>oci_new_descriptor</function></title>
<title>Ejemplo con <function>oci_new_descriptor</function></title>
<programlisting role="php">
<![CDATA[
<?php
/* Este script está diseñado para ser invocado desde un formulario HTML.
* Se le ha de proporcionar $user, $password, $table, $where, y $commitsize
* desde el formulario. Entonces, el script elimina
* las filas seleccionadas usando el ROWID y consigna después de cada
* conjunto de filas $commitsize. (Úselo con cuidado, no hay reversión)
/* Este script está diseñado para ser llamado desde un formulario HTML
* Espera las variables $user, $password, $table, $where, y $commitsize
* El script elimina entonces las filas seleccionadas con ROWID y valida
* la eliminación después de cada grupo de $commitsize filas.
* (Utilícelo con precaución, ya que no hay posibilidad de deshacer).
*/
$conn = oci_connect($user, $password);
$stmt = oci_parse($conn, "select rowid from $table $where");
@@ -84,7 +86,7 @@ while (oci_fetch($stmt)) {
}
}
$nrows = oci_num_rows($stmt);
echo "$nrows eliminada...\n";
echo "$nrows deleted...\n";
oci_free_statement($stmt);
oci_close($conn);
?>
@@ -93,12 +95,12 @@ oci_close($conn);
<programlisting role="php">
<![CDATA[
<?php
/* Este script demuestra la subida de ficheros a columnas LOB.
* El campo de formulario usado para este ejemplo es como este:
* <form action="upload.php" method="post" enctype="multipart/form-data">
* <input type="file" name="lob_upload" />
* ...
*/
/* Este script ilustra la carga de columnas de tipo LOB
* El formulario utilizado en este ejemplo se parece a esto:
* <form action="upload.php" method="post" enctype="multipart/form-data">
* <input type="file" name="lob_upload" />
* ...
*/
if (!isset($lob_upload) || $lob_upload == 'none'){
?>
<form action="upload.php" method="post" enctype="multipart/form-data">
@@ -108,10 +110,10 @@ Upload file: <input type="file" name="lob_upload" /><br />
<?php
} else {
// $lob_upload contiene el nombre temporal del fichero subido
// $lob_upload contiene el fichero temporal
// véase también la sección de características sobre la subida de ficheros,
// si le gustaría usar subidas seguras
// Consulte la sección sobre la subida de ficheros
// para asegurar sus subidas
$conn = oci_connect($user, $password);
$lob = oci_new_descriptor($conn, OCI_D_LOB);
@@ -121,9 +123,9 @@ Upload file: <input type="file" name="lob_upload" /><br />
oci_execute($stmt, OCI_DEFAULT);
if ($lob->savefile($lob_upload)){
oci_commit($conn);
echo "Blob successfully uploaded\n";
echo "BLOB cargado !\n";
}else{
echo "Couldn't upload Blob\n";
echo "Imposible cargar el BLOB\n";
}
$lob->free();
oci_free_statement($stmt);
@@ -134,13 +136,13 @@ Upload file: <input type="file" name="lob_upload" /><br />
</programlisting>
</example>
<example>
<title>Ejemplo de <function>oci_new_descriptor</function></title>
<title>Ejemplo con <function>oci_new_descriptor</function></title>
<programlisting role="php">
<![CDATA[
<?php
/* Llamar a procedimientos almacenados de PL/SQL que contienen CLOBs como parámetros
* de entrada.
* Ejemplo de firma de procedimiento almacenado de PL/SQL:
/* Llamada a un procedimiento PL/SQL almacenado que toma un clob
* como entrada.
* Ejemplo de firma de procedimiento almacenado PL/SQL:
*
* PROCEDURE save_data
* Argument Name Type In/Out Default?
@@ -166,19 +168,7 @@ oci_free_statement($stmt);
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
En versiones de PHP anteriores a la 5.0.0 se debe usar <function>ocinewdescriptor</function>
en su lugar. Este nombre aún puede usarse; se dejó como alias de
<function>oci_new_descriptor</function> por razones de retrocompatibilidad.
Sin embargo, este nombre es obsoleto y no se recomienda.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -187,10 +177,8 @@ oci_free_statement($stmt);
</simplelist>
</para>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml

View File

@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: e41806c30bf6975e452c0d4ce35ab0984c2fa68c Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<!-- EN-Revision: 5e41012cfdf8f2eff5fa56de446c7656afac536c Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.oci-num-fields" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_num_fields</refname>
<refpurpose>Devuelve el número de columnas del resultado de una sentencia</refpurpose>
<refpurpose>Devuelve el número de columnas en un resultado Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
@@ -15,10 +15,11 @@
<methodparam><type>resource</type><parameter>statement</parameter></methodparam>
</methodsynopsis>
<para>
Obtiene el número de columnas de la sentencia dada por <parameter>statement</parameter>.
Devuelve el número de columnas en el resultado Oracle
<parameter>statement</parameter>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -27,31 +28,31 @@
<term><parameter>statement</parameter></term>
<listitem>
<para>
Un identificador de sentencia de OCI válido.
Un identificador de consulta OCI válido.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve el número de columnas como un entero, o &false; en caso de error.
Devuelve el número de columnas, en forma de &integer;.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Ejemplo de <function>oci_num_fields</function></title>
<title>Ejemplo con <function>oci_num_fields</function></title>
<programlisting role="php">
<![CDATA[
<?php
// Crear la tabla con:
// Creación de la tabla con:
// CREATE TABLE mytab (id NUMBER, quantity NUMBER);
$conn = oci_connect("hr", "hrpwd", "localhost/XE");
@@ -61,14 +62,14 @@ if (!$conn) {
}
$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // Use OCI_DESCRIBE_ONLY if not fetching rows
oci_execute($stid, OCI_DESCRIBE_ONLY); // Uso de OCI_DESCRIBE_ONLY si no se recupera ninguna fila
$ncols = oci_num_fields($stid);
for ($i = 1; $i <= $ncols; $i++) {
echo oci_field_name($stid, $i) . " " . oci_field_type($stid, $i) . "<br>\n";
}
// Salidas:
// Muestra:
// ID NUMBER
// QUANTITY NUMBER
@@ -81,19 +82,7 @@ oci_close($conn);
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
En versiones de PHP anteriores a la 5.0.0 se debe usar <function>ocinumcols</function>
en su lugar. Este nombre aún puede usarse; se dejó como alias de
<function>oci_num_fields</function> por razones de retrocompatibilidad.
Sin embargo, este nombre es obsoleto y no se recomienda.
</para>
</note>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View File

@@ -1,24 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: e41806c30bf6975e452c0d4ce35ab0984c2fa68c Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<!-- EN-Revision: 5e41012cfdf8f2eff5fa56de446c7656afac536c Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.oci-num-rows" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_num_rows</refname>
<refpurpose>Devuelve el número de filas afectadas durante la ejecución de una sentencia</refpurpose>
<refpurpose>Devuelve el número de filas afectadas durante el último comando Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>int</type><methodname>oci_num_rows</methodname>
<type class="union"><type>int</type><type>false</type></type><methodname>oci_num_rows</methodname>
<methodparam><type>resource</type><parameter>statement</parameter></methodparam>
</methodsynopsis>
<para>
Obtiene el número de filas afectadas durante la ejecución de una sentencia.
Devuelve el número de filas afectadas durante el último comando Oracle.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -27,30 +27,29 @@
<term><parameter>statement</parameter></term>
<listitem>
<para>
Un identificador de sentencia de OCI válido.
Un identificador de consulta OCI válido.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve el número de filas afectadas como un entero, o &false; en caso de error.
Devuelve el número de filas afectadas, en forma de &integer;,&return.falseforfailure;
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Ejemplo de <function>oci_num_rows</function></title>
<title>Ejemplo con <function>oci_num_rows</function></title>
<programlisting role="php">
<![CDATA[
<?php
$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
$m = oci_error();
@@ -59,12 +58,12 @@ if (!$conn) {
$stid = oci_parse($conn, "create table emp2 as select * from employees");
oci_execute($stid);
echo oci_num_rows($stid) . " rows inserted.<br />\n";
echo oci_num_rows($stid) . " filas insertadas.<br />\n";
oci_free_statement($stid);
$stid = oci_parse($conn, "delete from emp2");
oci_execute($stid, OCI_DEFAULT);
echo oci_num_rows($stid) . " rows deleted.<br />\n";
echo oci_num_rows($stid) . " filas borradas.<br />\n";
oci_commit($conn);
oci_free_statement($stid);
@@ -73,35 +72,26 @@ oci_execute($stid);
oci_free_statement($stid);
oci_close($conn);
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Esta función <emphasis>no</emphasis> devuelve el número de filas seleccionadas.
Para sentencias SELECT, esta función devolverá el número de filas que fueron
obtenidas desde el búfer con funciones de tipo <function>oci_fetch*</function>.
</para>
</note>
<note>
<para>
En versiones de PHP anteriores a la 5.0.0 se debe usar <function>ocirowcount</function>
en su lugar. Este nombre aún puede usarse; se dejó como alias de
<function>oci_num_rows</function> por razones de retrocompatibilidad.
Sin embargo, este nombre es obsoleto y no se recomienda.
Esta función <emphasis>no devuelve</emphasis> el número de filas
seleccionadas. Para los comandos de tipo SELECT, esta función va
a devolver el número de filas que han sido leídas en el buffer con
<function>oci_fetch*</function>.
</para>
</note>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml

View File

@@ -1,33 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: e41806c30bf6975e452c0d4ce35ab0984c2fa68c Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<!-- EN-Revision: ed6de1ae20ce16c0c7be0b3fef282b6065bebfac Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.oci-parse" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_parse</refname>
<refpurpose>Prepara una sentencia de Oracle para su ejecución</refpurpose>
<refpurpose>Prepara una consulta SQL con Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>resource</type><methodname>oci_parse</methodname>
<type class="union"><type>resource</type><type>false</type></type><methodname>oci_parse</methodname>
<methodparam><type>resource</type><parameter>connection</parameter></methodparam>
<methodparam><type>string</type><parameter>sql_text</parameter></methodparam>
<methodparam><type>string</type><parameter>sql</parameter></methodparam>
</methodsynopsis>
<para>
Prepara la sentencia dada por <parameter>sql_text</parameter> usando la conexión
<parameter>connection</parameter> y devuelve el identificador de sentencia,
el cual puede usarse con <function>oci_bind_by_name</function>,
<function>oci_execute</function> y demás funciones.
Prepara la consulta <parameter>sql</parameter> utilizando la conexión
<parameter>connection</parameter> y devuelve el identificador de consulta
que podrá ser utilizado con las funciones <function>oci_bind_by_name</function>,
<function>oci_execute</function>, etc.
</para>
<para>
Los identificadores de sentencia pueden liberarse
con <function>oci_free_statement</function> o estableciendo la
variable a &null;.
Los identificadores de consulta pueden ser liberados
utilizando la función <function>oci_free_statement</function>
o definiendo la variable correspondiente al valor
&null;.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -36,48 +37,51 @@
<term><parameter>connection</parameter></term>
<listitem>
<para>
Un identificador de conexión de Oracle devuelto por
<function>oci_connect</function>, <function>oci_pconnect</function>, o <function>oci_new_connect</function>.
Un identificador de conexión Oracle, devuelto por la función
<function>oci_connect</function>,
<function>oci_pconnect</function> o
<function>oci_new_connect</function>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>sql_text</parameter></term>
<term><parameter>sql</parameter></term>
<listitem>
<para>
La sentencia SQL o PL/SQL.
La consulta SQL o PL/SQL.
</para>
<para>
Las sentencias SQL <emphasis>no deberían</emphasis> finalizar con un
punto y coma (&quot;;&quot;). Las sentencias
PL/SQL <emphasis>deberían</emphasis> finalizar con un punto y coma
(&quot;;&quot;).
Las consultas SQL <emphasis>no deben</emphasis>
terminar con un punto y coma (&quot;;&quot;). Las
consultas PL/SQL <emphasis>deben</emphasis> terminar
con un punto y coma (&quot;;&quot;).
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve el gestor de sentencia en caso de éxito, o &false; en caso de error.
Devuelve un manejador de consulta en caso de éxito, o &false;
si ocurre un error.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Ejemplo de <function>oci_parse</function> para sentencias SQL</title>
<title>Ejemplo con <function>oci_parse</function></title>
<programlisting role="php">
<![CDATA[
<?php
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
// Analizar la sentencia. Observe que no hay punto y coma final en la sentencia SQL
// Análisis de la consulta. Note que no hay un punto y coma al final de la consulta SQL
$stid = oci_parse($conn, 'SELECT * FROM employees');
oci_execute($stid);
@@ -98,13 +102,13 @@ echo "</table>\n";
</para>
<para>
<example>
<title>Ejemplo de <function>oci_parse</function> para sentencias PL/SQL</title>
<title>Ejemplo con <function>oci_parse</function> y una consulta PL/SQL</title>
<programlisting role="php">
<![CDATA[
<?php
/*
Antes de ejecutar el programa de PHP, cree un procedimiento almacenado en
Antes de ejecutar este código PHP, debe crear un procedimiento almacenado en
SQL*Plus o SQL Developer:
CREATE OR REPLACE PROCEDURE myproc(p1 IN NUMBER, p2 OUT NUMBER) AS
@@ -122,14 +126,14 @@ if (!$conn) {
$p1 = 8;
// Cuando se analizan programas PL/SQL, debería existir un punto y coma final de la cadena
// Al analizar PL/SQL, debe haber un punto y coma al final de la cadena
$stid = oci_parse($conn, 'begin myproc(:p1, :p2); end;');
oci_bind_by_name($stid, ':p1', $p1);
oci_bind_by_name($stid, ':p2', $p2, 40);
oci_execute($stid);
print "$p2\n"; // imprime 16
print "$p2\n"; // muestra 16
oci_free_statement($stid);
oci_close($conn);
@@ -140,19 +144,18 @@ oci_close($conn);
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Esta función <emphasis>no</emphasis> valida
<parameter>sql_text</parameter>. La única manera de averiguar si
<parameter>sql_text</parameter> es una sentencia SQL o PL/SQL válida
es ejecutarla.
Esta función <emphasis>no valida</emphasis> la consulta
<parameter>sql</parameter>. La única forma de saber si la
consulta <parameter>sql</parameter> es válida es ejecutándola.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -162,9 +165,8 @@ oci_close($conn);
</simplelist>
</para>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml

View File

@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 6728d8981c43a02192d9cd2144f3e4a40113e976 Maintainer: seros Status: ready -->
<!-- Reviewed: yes Maintainer: seros -->
<!-- EN-Revision: 78be3d554eca2e35b0e7cdbfb3aaba62bacdc336 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.oci-password-change" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_password_change</refname>
<refpurpose>Cambia la contraseña de un usuario de Oracle</refpurpose>
<refpurpose>Modifica la contraseña de un usuario Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
@@ -19,20 +19,21 @@
</methodsynopsis>
<methodsynopsis>
<type>resource</type><methodname>oci_password_change</methodname>
<methodparam><type>string</type><parameter>dbname</parameter></methodparam>
<methodparam><type>string</type><parameter>database_name</parameter></methodparam>
<methodparam><type>string</type><parameter>username</parameter></methodparam>
<methodparam><type>string</type><parameter>old_password</parameter></methodparam>
<methodparam><type>string</type><parameter>new_password</parameter></methodparam>
</methodsynopsis>
<para>
Cambia la contraseña del usuario dado por <parameter>username</parameter>.
Modifica la contraseña del usuario <parameter>username</parameter>.
</para>
<para>
La función <function>oci_password_change</function> es más útil para scripts de línea de comandos de PHP,
o cuando se usan conexiones no persistentes a través de una aplicación de PHP.
La función <function>oci_password_change</function> es más útil con scripts PHP
en línea de comandos, o cuando se utilizan conexiones no persistentes en
la aplicación PHP.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -41,8 +42,9 @@
<term><parameter>connection</parameter></term>
<listitem>
<para>
Un identificador de conexión de Oracle devuelto por
<function>oci_connect</function> o <function>oci_pconnect</function>.
Un identificador de conexión Oracle, devuelto por la función
<function>oci_connect</function> o la función
<function>oci_pconnect</function>.
</para>
</listitem>
</varlistentry>
@@ -50,7 +52,7 @@
<term><parameter>username</parameter></term>
<listitem>
<para>
El nombre del usuario de Oracle.
El nombre de usuario Oracle.
</para>
</listitem>
</varlistentry>
@@ -71,7 +73,7 @@
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>dbname</parameter></term>
<term><parameter>database_name</parameter></term>
<listitem>
<para>
El nombre de la base de datos.
@@ -81,31 +83,36 @@
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
Cuando <parameter>database_name</parameter> es proporcionado,
<function>oci_password_change</function> devuelve &true; en caso de éxito,
&return.falseforfailure;. Cuando <parameter>connection</parameter> es proporcionado,
<function>oci_password_change</function> devuelve el recurso de
conexión en caso de éxito,&return.falseforfailure;.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Ejemplo de <function>oci_password_change</function> cambiando la contraseña de un usuario ya conectado</title>
<title>Ejemplo con <function>oci_password_change</function> para cambiar
la contraseña de un usuario ya conectado</title>
<programlisting role="php">
<![CDATA[
<?php
$bd = 'localhost/orcl';
$usuario = 'cj';
$contraseña_actual = 'welcome';
$contraseña_nueva = 'geelong';
$dbase = 'localhost/orcl';
$user = 'cj';
$current_pw = 'welcome';
$new_pw = 'geelong';
$c = oci_pconnect($usuario, $contraseña_actual, $bd);
oci_password_change($c, $usuario, $contraseña_actual, $contraseña_nueva);
echo "La nueva contraseña es : " . $contraseña_nueva . "\n";
$c = oci_pconnect($user, $current_pw, $dbase);
oci_password_change($c, $user, $current_pw, $new_pw);
echo "La nueva contraseña es: " . $new_pw . "\n";
?>
]]>
@@ -114,35 +121,36 @@ echo "La nueva contraseña es : " . $contraseña_nueva . "\n";
</para>
<para>
<example>
<title>Ejemplo de <function>oci_password_change</function> conectando y cambiando la contraseña en un solo paso</title>
<title>Ejemplo con <function>oci_password_change</function> para conectarse
y cambiar la contraseña en una sola etapa</title>
<programlisting role="php">
<![CDATA[
<?php
$bd = 'localhost/orcl';
$usuario = 'cj';
$contraseña_actual = 'welcome';
$contraseña_nueva = 'geelong';
$dbase = 'localhost/orcl';
$user = 'cj';
$current_pw = 'welcome';
$new_pw = 'geelong';
$c = oci_pconnect($usuario, $contraseña_actual, $bd);
$c = oci_pconnect($user, $current_pw, $dbase);
if (!$c) {
$m = oci_error();
if ($m['code'] == 28001) { // "ORA-28001: the password has expired"
// Identinficarse y reiniciar la contraseña al mismo tiempo
$c = oci_password_change($bd, $usuario, $contraseña_actual, $contraseña_nueva);
if ($m['code'] == 28001) { // "ORA-28001: La contraseña ha expirado"
// Conexión y cambio de contraseña en una etapa
$c = oci_password_change($dbase, $user, $current_pw, $new_pw);
if ($c) {
echo "La nueva contraseña es : " . $contraseña_nueva . "\n";
echo "La nueva contraseña es: " . $new_pw . "\n";
}
}
}
if (!$c) { // El error original era 28001, o que el cambio de contraseña falló
if (!$c) { // El error original no era 28001, o el cambio de contraseña falló
$m = oci_error();
trigger_error('No se pudo conectar a la base de datos: '. $m['message'], E_USER_ERROR);
}
// Usar la conexión $c
...
// Uso de la conexión $c
// ...
?>
]]>
@@ -150,45 +158,37 @@ if (!$c) { // El error original era 28001, o que el cambio de contraseña fall
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
El cambio de la contraseña mediante esta función o directamente en
Oracle debería hacerse con cuidado. Esto es debido a que las aplicaciones de PHP
podrían seguir reutilizando con éxito conexiones persistentes mediante
la autenticación con contraseñas antiguas. La mejor práctica es
reinicializar todos los servidores web siempre que se cambie una contraseña de usuario.
Cambiar la contraseña, con esta función, o directamente en Oracle
debe hacerse con precaución. Esto se debe a que las aplicaciones PHP podrían
seguir utilizando conexiones persistentes con la contraseña antigua.
La mejor práctica es reiniciar todos los servidores web una vez que
la contraseña ha sido cambiada.
</para>
</note>
<note>
<para>
Si se actualizan las bibliotecas cliente o la base de datos de Oracle desde una versión anterior a la 11.2.0.3
hasta esta misma versión o superior, <function>oci_password_change</function> pordría generar el
error "ORA-1017: invalid username/password" a menos que las versiones del cliente y del servidor
se actualicen a la vez.
Si se actualizan las bibliotecas cliente o la base de datos Oracle
desde una versión anterior a 11.2.0.3 a una versión 11.2.0.3 o superior,
la función <function>oci_password_change</function> puede devolver el error
"ORA-1017: invalid username/password" hasta que las versiones del cliente y del
servidor sean idénticas.
</para>
</note>
<note>
<para>
Está disponible la segunda sintaxis de <function>oci_password_change</function>
desde la versión 1.1 de OCI8.
La segunda sintaxis de <function>oci_password_change</function> está disponible desde
la versión de OCI8 1.1.
</para>
</note>
<note>
<para>
En versiones de PHP anteriores a la 5.0.0 se debe usar <function>ocipasswordchange</function>
en su lugar. Este nombre aún puede usarse; se dejó como alias de
<function>oci_password_change</function> por razones de retrocompatibilidad.
Sin embargo, este nombre es obsoleto y no se recomienda.
</para>
</note>
</refsect1>
</refentry>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml

View File

@@ -1,36 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 01dee487a7f82fbfa99ba833c589507734f1c284 Maintainer: seros Status: ready -->
<!-- Reviewed: yes Maintainer: seros -->
<!-- EN-Revision: 5e41012cfdf8f2eff5fa56de446c7656afac536c Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.oci-pconnect" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>oci_pconnect</refname>
<refpurpose>Conectar a una base de datos de Oracle usando una conexión persistente</refpurpose>
<refpurpose>Establece una conexión persistente a un servidor Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>resource</type><methodname>oci_pconnect</methodname>
<type class="union"><type>resource</type><type>false</type></type><methodname>oci_pconnect</methodname>
<methodparam><type>string</type><parameter>username</parameter></methodparam>
<methodparam><type>string</type><parameter>password</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>connection_string</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>character_set</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>session_mode</parameter></methodparam>
<methodparam choice="opt"><type class="union"><type>string</type><type>null</type></type><parameter>connection_string</parameter><initializer>&null;</initializer></methodparam>
<methodparam choice="opt"><type>string</type><parameter>encoding</parameter><initializer>""</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>session_mode</parameter><initializer><constant>OCI_DEFAULT</constant></initializer></methodparam>
</methodsynopsis>
<para>
Crea una conexión persistente al servidor de Oracle y se identifica.
Establece una conexión persistente a un servidor Oracle y se identifica.
</para>
<para>
Las conexiones persistentes son almacenadas en caché y reutilizadas entre peticiones, resultando
en la reducción de carga adicional en cada página; una aplicación típica de PHP tendrá
una única conexión persistente abierta a un servidor de Oracle por cada proceso
hijo de Apache (o proceso FastCGI/CGI de PHP). Véase la sección <link
linkend="features.persistent-connections">Conexiones persistentes a
bases de datos</link> para más información.
Las conexiones persistentes se almacenan en caché y se reutilizan
entre las consultas, reduciendo así la carga en cada carga de página;
una aplicación PHP típica tiene una sola conexión persistente a un servidor Oracle
por proceso hijo Apache (o proceso PHP FastCGI/CGI). Ver la sección sobre la
<link linkend="oci8.connection">Gestión de Conexiones y el Agrupamiento
de Conexiones</link> para más información.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -47,7 +47,7 @@
<term><parameter>password</parameter></term>
<listitem>
<para>
La contraseña de <parameter>username</parameter>.
La contraseña del usuario.
</para>
</listitem>
</varlistentry>
@@ -58,7 +58,7 @@
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>character_set</parameter></term>
<term><parameter>encoding</parameter></term>
<listitem>
&oci.charset;
</listitem>
@@ -72,24 +72,24 @@
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve un identificador de conexión, o &false; en caso de error.
Devuelve un identificador de conexión, o &false; si ocurre un error.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Ejemplo básico de <function>oci_pconnect</function> usando la sintaxis de Easy Connect</title>
<title>Ejemplo con <function>oci_pconnect</function></title>
<programlisting role="php">
<![CDATA[
<?php
// Conecta al servicio XE (esto es, una base de datos) en la máquina "localhost"
// Conexión al servicio XE (i.e. base de datos) en la máquina "localhost"
$conn = oci_pconnect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
@@ -115,24 +115,25 @@ echo "</table>\n";
</example>
</para>
<para>
Véase <function>oci_connect</function> para más ejemplos de uso de parámetros.
Ver la función <function>oci_connect</function> para más ejemplos sobre el uso
de este parámetro.
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<simpara>
Desde PHP 5.1.2 y PECL OCI8 1.1, el tiempo de vida y
el número máximo de conexiones persistentes a Oracle por proceso de PHP se puede
ajustar estableciendo los siguientes valores de configuración: <link
La duración y el número máximo
de conexiones persistentes Oracle por proceso PHP pueden ajustarse
definiendo los siguientes valores de configuración: <link
linkend="ini.oci8.persistent-timeout">oci8.persistent_timeout</link>,
<link linkend="ini.oci8.ping-interval">oci8.ping_interval</link> y
<link linkend="ini.oci8.max-persistent">oci8.max_persistent</link>.
</simpara>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -142,7 +143,7 @@ echo "</table>\n";
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View File

@@ -1,42 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 96c9d88bad9a7d7d44bfb7f26c226df7ee9ddf26 Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<!-- EN-Revision: ed6de1ae20ce16c0c7be0b3fef282b6065bebfac Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.oci-register-taf-callback" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_register_taf_callback</refname>
<refpurpose>Registrar una función de retrollamada definida por el usuario para TAF de Oracle Database</refpurpose>
<refpurpose>Registra una función de retrollamada definida por el usuario para Oracle Database TAF</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>oci_register_taf_callback</methodname>
<methodparam><type>resource</type><parameter>connection</parameter></methodparam>
<methodparam><type>mixed</type><parameter>callbackFn</parameter></methodparam>
<methodparam><type class="union"><type>callable</type><type>null</type></type><parameter>callback</parameter></methodparam>
</methodsynopsis>
<para>
Registra una función de retrollamada definida por el usuario al parmátro <parameter>connection</parameter>.
Si <parameter>connection</parameter> falla debido a un fallo de instancia o de red,
Se registra una función de retrollamada definida por el usuario para <parameter>connection</parameter>.
Si <parameter>connection</parameter> falla debido a una falla de instancia o de red,
la función de retrollamada registrada será invocada varias veces durante
el fallo. Véase <link linkend="oci8.taf">Soporte para 'Transparent Application Failover'
(TAF) de OCI8</link> para más información sobre el soporte para TAF de OCI8.
el basculement. Ver <link linkend="oci8.taf">Soporte de basculement de aplicación transparente OCI8 (TAF)</link> para más información.
</para>
<para>
Al llamar a <function>oci_register_taf_callback</function> varias veces,
cada registro sobreescribe al anterior.
Cuando <function>oci_register_taf_callback</function> es llamada varias veces,
cada registro sobrescribe al anterior.
</para>
<para>
Use <function>oci_disable_taf_callback</function> para desregistrar explícitamente una
retrollada definida por el usuario.
Utilizar <function>oci_unregister_taf_callback</function> para cancelar explícitamente un
retrollamada definida por el usuario.
</para>
<para>
El registro de retrollamda de TAF NO se guardará a través
conexiones persistentes, por lo que la retrollamada necesita ser registrada de nuevo para
una nueva conexión persistente.
Los registros de retrollamada TAF NO serán guardados entre conexiones persistentes,
por lo tanto, el retrollamada debe ser re-registrado para una nueva conexión persistente.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -45,19 +42,19 @@
<term><parameter>connection</parameter></term>
<listitem>
<para>
Un identificador de conexión de Oracle.
Un identificador de conexión Oracle.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>calllbackFn</parameter></term>
<term><parameter>callback</parameter></term>
<listitem>
<para>
Una retrollamada definida por el usuario para registrar TAF de Oracle. Puede ser una
cadena del nombre de una función o un cierre (función anónima).
Una función de retrollamada definida por el usuario para registrar TAF Oracle. Puede ser
una cadena de nombre de función o una clausura (función anónima).
</para>
<para>
La interfaz de una función de retrollamada definida por el usuario de TAF es como sigue:
La interfaz para una función de retrollamada definida por el usuario TAF es la siguiente:
</para>
<methodsynopsis>
<type>int</type><methodname>userCallbackFn</methodname>
@@ -66,22 +63,22 @@
<methodparam><type>int</type><parameter>type</parameter></methodparam>
</methodsynopsis>
<para>
Véase la descripción del parámetro y el ejemplo en la página <link linkend="oci8.taf">
Soporte para 'Transparent Application Failover' (TAF) de OCI8</link>.
Ver la descripción del parámetro y un ejemplo en la página <link linkend="oci8.taf">
Soporte de basculement de aplicación transparente OCI8 (TAF)</link>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -90,9 +87,8 @@
</simplelist>
</para>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml

View File

@@ -1,27 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 445c757a35e0f4f893796f7147336ad3f075c1d6 Maintainer: seros Status: ready -->
<!-- Reviewed: yes Maintainer: seros -->
<!-- EN-Revision: 5e41012cfdf8f2eff5fa56de446c7656afac536c Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.oci-result" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_result</refname>
<refpurpose>Devuelve el valor de un campo de la fila obtenida</refpurpose>
<refpurpose>Devuelve el valor de una columna en un resultado Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>mixed</type><methodname>oci_result</methodname>
<methodparam><type>resource</type><parameter>statement</parameter></methodparam>
<methodparam><type>mixed</type><parameter>field</parameter></methodparam>
<methodparam><type class="union"><type>string</type><type>int</type></type><parameter>column</parameter></methodparam>
</methodsynopsis>
<para>
Devuelve los datos del campo dado por <parameter>field</parameter> de la fila actual,
obtenida mediante <function>oci_fetch</function>.
Devuelve los datos de la columna <parameter>column</parameter>
en la fila actual del resultado <parameter>statement</parameter>.
</para>
&oci.datatypes;
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -34,33 +34,32 @@
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>field</parameter></term>
<term><parameter>column</parameter></term>
<listitem>
<para>
Puede ser el número de columna (basado en 1) o el nombre de columna.
El uso de mayúsculas/minúsculas del nombre de columna debe ser el mismo que el de
los metadatos de Oracle que describen la columna, que es en mayúsculas para columnas creadas
con uso insensible a mayúsculas/minúsculas.
Puede ser el número de la columna (empezando por 1), o el nombre de la columna. Si es el nombre de la columna, es porque
las metadatos de Oracle lo presentan de esta manera, y estará en mayúsculas
para las columnas creadas sin tener en cuenta la casilla.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve todo como un string excepto para tipos abstractos (ROWID, LOB y
FILE). Devuelve &false; en caso de error.
Devuelve todos los tipos, excepto los tipos abstractos (ROWIDs, LOBs y FILEs).
Devuelve &false; en caso de error.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>oci_fetch</function> con <function>oci_result</function></title>
<title>Ejemplo con <function>oci_fetch</function> y <function>oci_result</function></title>
<programlisting role="php">
<![CDATA[
<?php
@@ -93,19 +92,7 @@ oci_close($conn);
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
En versiones de PHP anteriores a la 5.0.0 se debe usar <function>ociresult</function>
en su lugar. Este nombre aún puede usarse; se dejó como alias de
<function>oci_result</function> por razones de retrocompatibilidad.
Sin embargo, este nombre es obsoleto y no se recomienda.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -118,9 +105,8 @@ oci_close($conn);
</simplelist>
</para>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml

View File

@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 5a3f0c18ac46e6d4313367e44866527badac5b73 Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<!-- EN-Revision: 5e41012cfdf8f2eff5fa56de446c7656afac536c Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.oci-rollback" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_rollback</refname>
<refpurpose>Revierte la transacción pendiente de la base de datos</refpurpose>
<refpurpose>Anula las transacciones Oracle en curso</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
@@ -15,26 +15,30 @@
<methodparam><type>resource</type><parameter>connection</parameter></methodparam>
</methodsynopsis>
<para>
Revierte todos los cambios no consignados para la conexión de Oracle dada por
<parameter>connection</parameter> y finaliza la transacción.
Libera todos los bloqueos existentes. Todos los <literal>SAVEPOINT</literal>
de Oracle se eliminan.
Anula todas las modificaciones no confirmadas para una
conexión <parameter>connection</parameter> Oracle
y finaliza la transacción actual. Todos los bloqueos serán
liberados asimismo. Todos los puntos de guardado Oracle
(<literal>SAVEPOINTS</literal>) serán eliminados.
</para>
<para>
Una transacción comienza cuando la primera sentencia SQL que modifica datos
es ejecutada con <function>oci_execute</function> usando
la bandera <constant>OCI_NO_AUTO_COMMIT</constant>. Las modificaciones
posteriores a datos realizadas por otras sentencias se convierten en parte de la misma
transacción. Las modificaciones a datos hechas en una transacción son temporales
hasta que ésta se consigna o revierte. Los demás usuarios de
la base de datos no verán los cambios hasta que sean consignados.
Una transacción comienza cuando la primera consulta SQL
que modifica datos es ejecutada con la función
<function>oci_execute</function> utilizando el flag
<constant>OCI_NO_AUTO_COMMIT</constant>. Las modificaciones siguientes
realizadas por otras consultas se convierten en parte de la
misma transacción. Las modificaciones realizadas durante una transacción son
temporales hasta que la transacción sea confirmada o anulada.
Los demás usuarios de la base de datos no verán estas modificaciones
hasta la confirmación de la transacción.
</para>
<para>
Cuando se insertan o actualizan datos, se recomienda usar transacciones
para mantener la consistencia de datos relacional y por razones rendimiento.
Al insertar o actualizar datos, el uso de transacciones es
altamente recomendado para garantizar la consistencia
relacional de los datos, pero también por razones de rendimiento.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -43,7 +47,7 @@
<term><parameter>connection</parameter></term>
<listitem>
<para>
Un identificador de conexión de Oracle, devuelto por
Un identificador de conexión Oracle, devuelto por la función
<function>oci_connect</function>, <function>oci_pconnect</function>
o <function>oci_new_connect</function>.
</para>
@@ -52,48 +56,47 @@
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Ejemplo de <function>oci_rollback</function></title>
<title>Ejemplo con <function>oci_rollback</function></title>
<programlisting role="php">
<![CDATA[
<?php
// Insertar en varias tablas, revirtiendo los cambios si ocurriera un error
// Inserción en múltiples tablas, luego, anulación de las modificaciones si ocurren errores
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
$stid = oci_parse($conn, "INSERT INTO mysalary (id, name) VALUES (1, 'Chris')");
// La bandera OCI_NO_AUTO_COMMIT le indica a Oracle que no consigne el INSERT inmediatamente
// Use OCI_DEFAULT como bandera para PHP <= 5.3.1. Las dos banderas son equivalentes
// El flag OCI_NO_AUTO_COMMIT indica a Oracle no confirmar la inserción inmediatamente.
$r = oci_execute($stid, OCI_NO_AUTO_COMMIT);
if (!$r) {
if (!$r) {
$e = oci_error($stid);
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
$stid = oci_parse($conn, 'INSERT INTO myschedule (startday) VALUES (12)');
$r = oci_execute($stid, OCI_NO_AUTO_COMMIT);
if (!$r) {
if (!$r) {
$e = oci_error($stid);
oci_rollback($conn); // revertir los cambios de ambas tablas
oci_rollback($conn); // Anulación de las modificaciones en las 2 tablas
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
// Consignar los cambios de ambas tablas
// Confirmación de las modificaciones en las 2 tablas
$r = oci_commit($conn);
if (!r) {
if (!$r) {
$e = oci_error($conn);
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
@@ -105,54 +108,54 @@ if (!r) {
</para>
<para>
<example>
<title>Ejemplo de reversión a un <literal>SAVEPOINT</literal></title>
<title>Ejemplo de retorno a un punto de guardado (<literal>SAVEPOINT</literal>)</title>
<programlisting role="php">
<![CDATA[
<?php
$stid = oci_parse($conn, 'UPDATE mytab SET id = 1111');
oci_execute($stid, OCI_NO_AUTO_COMMIT);
// Crear el punto de prevención
// creación del punto de guardado
$stid = oci_parse($conn, 'SAVEPOINT mysavepoint');
oci_execute($stid, OCI_NO_AUTO_COMMIT);
$stid = oci_parse($conn, 'UPDATE mytab SET id = 2222');
oci_execute($stid, OCI_NO_AUTO_COMMIT);
// Usar una sentencia SQL explícita para volver al punto de prevención
// utiliza una consulta SQL explícita para realizar el retorno al punto de guardado
$stid = oci_parse($conn, 'ROLLBACK TO SAVEPOINT mysavepoint');
oci_execute($stid, OCI_NO_AUTO_COMMIT);
oci_commit($conn); // mytab ahora tiene el id 1111
oci_commit($conn); // mytab tiene ahora un id de 1111
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Las transacciones son automáticamente revertidas cuando se cierra la
conexión o cuando finaliza el script, lo que ocurra antes. Es
necesario llamar explícitamente a <function>oci_commit</function> para consignar
la transacción.
Las transacciones son anuladas automáticamente al cerrar
la conexión, o cuando el script finaliza, cualquiera de los dos que ocurra primero.
Debe llamarse explícitamente a la función <function>oci_commit</function>
para confirmar la conexión.
</para>
<para>
Cualquier llamada a <function>oci_execute</function> que use el modo
<constant>OCI_COMMIT_ON_SUCCESS</constant>, explícitamente o por
omisión, consignará cualquier transacción no consignada anteriormente.
Todas las llamadas a la función <function>oci_execute</function> que utilizan
el modo <constant>OCI_COMMIT_ON_SUCCESS</constant>, ya sea por defecto o
de forma explícita, confirmarán todas las transacciones pendientes.
</para>
<para>
Cualquier sentencia DDL de Oracle como <literal>CREATE</literal>
o <literal>DROP</literal> consignará automáticamente cualquier
transacción no consignada.
Todas las consultas Oracle como <literal>CREATE</literal>
o <literal>DROP</literal> confirmarán asimismo,
automáticamente, todas las transacciones pendientes.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -162,7 +165,7 @@ oci_commit($conn); // mytab ahora tiene el id 1111
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View File

@@ -1,24 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: e41806c30bf6975e452c0d4ce35ab0984c2fa68c Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<!-- EN-Revision: 5e41012cfdf8f2eff5fa56de446c7656afac536c Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.oci-server-version" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_server_version</refname>
<refpurpose>Devuelve la versión de Oracle Database</refpurpose>
<refpurpose>Devuelve la versión del servidor Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>string</type><methodname>oci_server_version</methodname>
<type class="union"><type>string</type><type>false</type></type><methodname>oci_server_version</methodname>
<methodparam><type>resource</type><parameter>connection</parameter></methodparam>
</methodsynopsis>
<para>
Devuelve una cadena con la verisón de Oracle Database y las opciones disponibles.
Devuelve una cadena que contiene la versión del servidor
Oracle junto con las opciones disponibles.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -33,49 +34,38 @@
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve la información de la versión como una cadena, o &false; en caso de error.
Devuelve la información sobre la versión, en forma de &string;,
o &false; en caso de error.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Ejemplo de <function>oci_server_version</function></title>
<title>Ejemplo con <function>oci_server_version</function></title>
<programlisting role="php">
<![CDATA[
<?php
$conn = oci_connect("hr", "hrpwd", "localhost/XE");
echo "Server Version: " . oci_server_version($conn);
echo "Versión del servidor : " . oci_server_version($conn);
// Muestra:
// Server Version: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
// Muestra :
// Versión del servidor : Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
// With the Partitioning, OLAP, Data Mining and Real Application Testing option
oci_close($conn);
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
En versiones de PHP anteriores a la 5.0.0 se debe usar <function>ociserverversion</function> en su luagar.
El nombre antiguo aún se puede utilizar. Sin embargo es obsoleto y no se recomienda.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -84,9 +74,8 @@ oci_close($conn);
</simplelist>
</para>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml

View File

@@ -1,39 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 0640e024d4b8a9400d457143ccd0ea66e5f98ead Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<!-- EN-Revision: ed6de1ae20ce16c0c7be0b3fef282b6065bebfac Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes Maintainer: PhilDaiguille -->
<refentry xml:id="function.oci-set-action" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_set_action</refname>
<refpurpose>Establece el nombre de una acción</refpurpose>
<refpurpose>Define el nombre de la acción</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>oci_set_action</methodname>
<methodparam><type>resource</type><parameter>connection</parameter></methodparam>
<methodparam><type>string</type><parameter>action_name</parameter></methodparam>
<methodparam><type>string</type><parameter>action</parameter></methodparam>
</methodsynopsis>
<para>
Establece el nombre de una acción para el rastreo de Oracle.
Define el nombre de la acción para un seguimiento de Oracle.
</para>
<para>
El nombre de la acción se registra con la base de datos cuando ocurra el
siguiente "viaje de ida y vuelta" desde PHP a la base de datos, normalemnte cuando una
sentencia SQL es ejecutada.
El nombre de la acción se registra en la base de datos durante el próximo
intercambio 'round-trip' desde PHP hacia la base de datos; típicamente, cuando se
ejecuta una consulta SQL.
</para>
<para>
El nombre de la acción puede ser consultado posteriormente desde una vista de administración
de la base de datos como <literal>V$SESSION</literal>. Se puede usar para
rastrear y monitorizar como con <literal>V$SQLAREA</literal>
y <literal>DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE</literal>.
El nombre de la acción puede ser consultado posteriormente desde la vista de administración
de la base de datos <literal>V$SESSION</literal>.
Puede ser utilizado para rastrear y monitorear otras vistas como
<literal>V$SQLAREA</literal> y <literal>DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE</literal>.
</para>
<para>
El valor podría manterse entre conexiones persistentes.
El valor puede ser conservado a través de las conexiones persistentes.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -45,39 +45,40 @@
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>action_name</parameter></term>
<term><parameter>action</parameter></term>
<listitem>
<para>
La cadena elegida por el usuario, hasta 32 bytes de longitud.
String seleccionado por el usuario de hasta 32 caracteres
de longitud.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Establecer la acción</title>
<title>Definición de una acción</title>
<programlisting role="php">
<![CDATA[
<?php
$c = oci_connect('hr', 'welcome', 'localhost/XE');
// Grabar la acción
// Registra la acción
oci_set_action($c, 'Friend Lookup');
// Código que causa un viaje de ida y vuelta, por ejemplo una consulta:
// Código que genera un intercambio (round-trip), por ejemplo, una consulta:
$s = oci_parse($c, 'select * from dual');
oci_execute($s);
oci_fetch_all($s, $res);
@@ -89,8 +90,8 @@ sleep(30);
</programlisting>
<screen>
<![CDATA[
// Mientras el script se esté ejecutando, el administrador puede ver las acciones
// que se están realizando:
// Durante la ejecución del script, el administrador puede ver las acciones
// en curso de ejecución:
sqlplus system/welcome
SQL> select action from v$session;
@@ -99,14 +100,14 @@ SQL> select action from v$session;
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
&oci.availability.note.10g;
&oci.clientinfo.tip;
&oci.roundtrip.caution;
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -114,12 +115,12 @@ SQL> select action from v$session;
<member><function>oci_set_module_name</function></member>
<member><function>oci_set_client_info</function></member>
<member><function>oci_set_client_identifier</function></member>
<member><function>oci_set_db_operation</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml

View File

@@ -1,12 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: ed6de1ae20ce16c0c7be0b3fef282b6065bebfac Maintainer: julionc Status: ready -->
<!-- Reviewed: yes Maintainer: julionc -->
<!-- EN-Revision: e2db993fbd38b9cf04ab9c66823910adae050f2b Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.oci-set-call-timout" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_set_call_timeout</refname>
<refpurpose>Establece un tiempo de espera de milisegundos para las llamadas a la base de datos</refpurpose>
<refpurpose>Define un tiempo de espera en milisegundos para las llamadas a la base de datos</refpurpose>
</refnamediv>
<refsect1 role="description">
@@ -17,34 +15,34 @@
<methodparam><type>int</type><parameter>timeout</parameter></methodparam>
</methodsynopsis>
<para>
Establece un tiempo de espera que limita el tiempo máximo que puede tardar un viaje de ida y vuelta de la base de datos con esta conexión.
Define un tiempo de espera que limita el tiempo máximo que puede tomar un intercambio de base de datos utilizando esta conexión.
</para>
<para>
Cada operación OCI8 puede realizar cero o más llamadas a la biblioteca
cliente de Oracle. Estas llamadas internas pueden realizar cero o más
viajes de ida y vuelta a la base de datos Oracle. Si alguno de esos
viajes de ida y vuelta tarda más del <literal>time_out</literal> milisegundos,
la operación se cancela y se devuelve un error a la aplicación.
Cada operación OCI8 puede realizar cero o más llamadas a la biblioteca cliente
de Oracle. Estas llamadas internas pueden luego realizar cero o más intercambios con
la base de datos Oracle. Si alguno de estos intercambios toma
más de <literal>time_out</literal> milisegundos,
entonces la operación se cancela y se devuelve un error a la aplicación.
</para>
<para>
El valor <literal>time_out</literal> se aplica a cada viaje de ida y vuelta
individualmente, no a la suma de todos los viajes de ida y vuelta. El tiempo dedicado
al procesamiento en PHP OCI8 antes o después de la finalización de cada
viaje de ida y vuelta no se cuenta.
El valor <literal>time_out</literal> se aplica a cada intercambio
individualmente, y no a la suma de todos los intercambios. El tiempo pasado
procesando en PHP OCI8 antes o después de la finalización de cada
intercambio no se cuenta.
</para>
<para>
Cuando se interrumpe una llamada, Oracle intentará limpiar la conexión
para su reutilización. Esta operación puede ejecutarse durante otro período
<literal>time_out</literal>. Dependiendo del resultado de la limpieza,
la conexión puede o no ser reutilizable.
Cuando una llamada es interrumpida, Oracle intentará limpiar la
conexión para su reutilización. Esta operación está permitida para ejecutarse durante
otro período de <literal>time_out</literal>. Dependiendo del
resultado de la limpieza, la conexión puede o no ser reutilizable.
</para>
<para>
Cuando se utilizan conexiones persistentes, el valor de tiempo de
espera se conserva en todas las solicitudes PHP.
Cuando se utilizan conexiones persistentes, el valor del tiempo de espera será
conservado entre las consultas PHP.
</para>
<para>
La función <function>oci_set_call_timeout</function> está disponible
cuando OCI8 utiliza la biblioteca cliente de Oracle 18 (o posterior).
cuando OCI8 utiliza las bibliotecas clientes de Oracle 18 (o posteriores).
</para>
</refsect1>
@@ -62,7 +60,7 @@
<term><parameter>timeout</parameter></term>
<listitem>
<para>
El tiempo máximo en milisegundos que puede tomar cualquier viaje de ida y vuelta entre PHP y la base de datos Oracle.
El tiempo máximo en milisegundos que puede tomar un intercambio entre PHP y la base de datos Oracle.
</para>
</listitem>
</varlistentry>
@@ -81,7 +79,7 @@
&reftitle.examples;
<para>
<example>
<title>Ajuste del tiempo de espera</title>
<title>Configuración del tiempo de espera</title>
<programlisting role="php">
<![CDATA[
<?php

View File

@@ -1,43 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: cd110607fd94ccea0f99a693be555a50ce5c6b1e Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<!-- EN-Revision: ed6de1ae20ce16c0c7be0b3fef282b6065bebfac Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes Maintainer: PhilDaiguille -->
<refentry xml:id="function.oci-set-client-identifier" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_set_client_identifier</refname>
<refpurpose>Establece el identificador del cliente</refpurpose>
<refpurpose>Define el identificador del cliente</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>oci_set_client_identifier</methodname>
<methodparam><type>resource</type><parameter>connection</parameter></methodparam>
<methodparam><type>string</type><parameter>client_identifier</parameter></methodparam>
<methodparam><type>string</type><parameter>client_id</parameter></methodparam>
</methodsynopsis>
<para>
Establece el identificador del cliente usado por varios componentes de la base de datos
para identificar usuarios de aplicaciones ligeras que se identificaron con el mismo
usuario de base de datos.
Define el identificador del cliente, utilizado por numerosos componentes
de la base de datos para identificar a los usuarios de la aplicación
que se autentican con el mismo nombre de usuario de la base de datos.
</para>
<para>
El identificador del cliente se registra con la base de datos cuando ocurra el
siguiente "viaje de ida y vuelta" desde PHP a la base de datos, normalemnte cuando una
sentencia SQL es ejecutada.
El identificador del cliente se registra en la base de datos durante el próximo
intercambio 'round-trip' desde PHP hacia la base de datos; típicamente,
la ejecución de una consulta SQL.
</para>
<para>
El identificador puede ser consultado subsiguientemente, por ejemplo,
con <literal>SELECT SYS_CONTEXT('USERENV','CLIENT_IDENTIFIER')
FROM DUAL</literal>. Las vistas de administración de la base de datos como
<literal>V$SESSION</literal> también contendrán el valor. Se
puede usar con <literal>DBMS_MONITOR.CLIENT_ID_TRACE_ENABLE</literal>
para rastreo y también para auditoría.
El identificador puede ser consultado posteriormente, por ejemplo,
con la consulta <literal>SELECT SYS_CONTEXT('USERENV','CLIENT_IDENTIFIER')
FROM DUAL</literal>. Una vista de administración de la base de datos,
como la vista <literal>V$SESSION</literal> también contiene el valor.
Puede ser utilizado con <literal>DBMS_MONITOR.CLIENT_ID_TRACE_ENABLE</literal>
en el contexto de un trazado. Asimismo, puede ser utilizado en el marco
de un audit.
</para>
<para>
El valor podría mantenerse entre peticiones de páginas que usen la misma conexión persistente.
El valor puede ser conservado a lo largo de las diferentes consultas de las páginas
que utilizan la misma conexión persistente.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -49,42 +50,42 @@
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>client_identifier</parameter></term>
<term><parameter>client_id</parameter></term>
<listitem>
<para>
La cadena elegida por el usuario, hasta 64 bytes de longitud.
Cadena de caracteres elegida por el usuario de hasta 64 bytes de longitud.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Establecer el identificador del cliente para el usuario de la aplicación</title>
<title>Define el identificador del cliente como el usuario de la aplicación</title>
<programlisting role="php">
<![CDATA[
<?php
// Buscar el nombre de identificación de usuario de la aplicación
// Recupera el nombre utilizado para la identificación del usuario de la aplicación
session_start();
$un = my_validate_session($_SESSION['username']);
$c = oci_connect('myschema', 'welcome', 'localhost/XE');
// Indicar a Oracle qué usuario es
// Informa a Oracle sobre este usuario
oci_set_client_identifier($c, $un);
// El siguiente viaje de ida y vuelta a la base de datos adjuntará el identificador
// El próximo intercambio (round-trip) hacia la base de datos validará este identificador
$s = oci_parse($c, 'select mydata from mytable');
oci_execute($s);
@@ -96,12 +97,12 @@ oci_execute($s);
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
&oci.roundtrip.caution;
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -109,12 +110,12 @@ oci_execute($s);
<member><function>oci_set_module_name</function></member>
<member><function>oci_set_action</function></member>
<member><function>oci_set_client_info</function></member>
<member><function>oci_set_db_operation</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml

View File

@@ -1,13 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 6d998932b630b5d08d617e40b5711a1d7aad2125 Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<!-- EN-Revision: 729d3d6ef52f2e00977f4dc10e5cb28d42405f85 Maintainer: yannick Status: ready -->
<!-- Reviewed: yes Maintainer: mikaelkael -->
<refentry xml:id="function.oci-set-client-info" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_set_client_info</refname>
<refpurpose>Establece la información del cliente</refpurpose>
<refpurpose>Define la información del cliente</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
@@ -16,22 +17,22 @@
<methodparam><type>string</type><parameter>client_info</parameter></methodparam>
</methodsynopsis>
<para>
Establece la información del cliente para el rastreo de Oracle.
Define la información del cliente para el trazado de Oracle.
</para>
<para>
La información del cliente se registra con la base de datos cuando ocurra el
siguiente "viaje de ida y vuelta" desde PHP a la base de datos, normalemnte cuando una
sentencia SQL es ejecutada.
La información del cliente se registra en la base de datos durante el próximo
intercambio 'round-trip' desde PHP hacia la base de datos; típicamente,
cuando se ejecuta una consulta SQL.
</para>
<para>
La información del cliente puede ser consultado posteriormente desde una vista
de administración de la base de datos como <literal>V$SESSION</literal>.
La información del cliente puede ser consultada posteriormente
desde la vista de administración de la base de datos <literal>V$SESSION</literal>.
</para>
<para>
El valor podría manterse entre conexiones persistentes.
El valor se conserva mediante el mecanismo de conexiones persistentes.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -46,36 +47,36 @@
<term><parameter>client_info</parameter></term>
<listitem>
<para>
La cadena elegida por el usuario, hasta 64 bytes de longitud.
Cadena de caracteres de hasta 64 bytes de longitud.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Establecer la información del cliente</title>
<title>Define la información del cliente</title>
<programlisting role="php">
<![CDATA[
<?php
$c = oci_connect('hr', 'welcome', 'localhost/XE');
// Grabar la información del cliente
// Registra la información del cliente
oci_set_client_info($c, 'My Application Version 2');
// Código que causa un viaje de ida y vuelta, por ejemplo una consulta:
// Código que genera un intercambio (round-trip), por ejemplo, una consulta:
$s = oci_parse($c, 'select * from dual');
oci_execute($s);
oci_fetch_all($s, $res);
@@ -87,7 +88,7 @@ sleep(30);
</programlisting>
<screen>
<![CDATA[
// Mientras el script se esté ejecutando, el administrador puede ver la informaicón
// Durante la ejecución de este script, el administrador puede ver la información
// del cliente:
sqlplus system/welcome
@@ -97,14 +98,14 @@ SQL> select client_info from v$session;
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
&oci.availability.note.10g;
&oci.clientinfo.tip;
&oci.roundtrip.caution;
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -112,10 +113,11 @@ SQL> select client_info from v$session;
<member><function>oci_set_module_name</function></member>
<member><function>oci_set_action</function></member>
<member><function>oci_set_client_identifier</function></member>
<member><function>oci_set_db_operation</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View File

@@ -1,13 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: cd110607fd94ccea0f99a693be555a50ce5c6b1e Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<!-- EN-Revision: d26548d3357ea3f9488463de6192db814bd05826 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes Maintainer: PhilDaiguille -->
<refentry xml:id="function.oci-set-edition" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_set_edition</refname>
<refpurpose>Establece la edición de la base de datos</refpurpose>
<refpurpose>Define la edición de la base de datos</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
@@ -15,30 +16,31 @@
<methodparam><type>string</type><parameter>edition</parameter></methodparam>
</methodsynopsis>
<para>
Establece la "edición" de la base de datos de objetos que van a se utilizada
por conexiones subsiguientes.
Define la edición de los objetos de la base de datos a utilizar por las
conexiones.
</para>
<para>
Las ediciones de Oracle permiten la ejecución de aplicaciones de versiones concurrentes
usando el mismo esquema y nombres de objetos. Esto es útil para
actualizar sistemas en vivo.
La edición Oracle permite que versiones concurrentes de las aplicaciones
se ejecuten utilizando el mismo nombre de esquema y objetos.
Esto es práctico para actualizar sistemas en vivo.
</para>
<para>
Se ha de llamar a <function>oci_set_edition</function> antes de invocar a
<function>oci_connect</function>, <function>oci_pconnect</function>
Llame a la función <function>oci_set_edition</function> antes de llamar
a una función como <function>oci_connect</function>, <function>oci_pconnect</function>
o <function>oci_new_connect</function>.
</para>
<para>
Si se establece en la base de datos una edición que no es válida, la conexión
fallará incluso si <function>oci_set_edition</function> tiene éxito.
Si se define una edición pero no es válida en la base de datos,
cualquier intento de conexión fallará incluso si la función
<function>oci_set_edition</function> devuelve un estado de éxito.
</para>
<para>
Cuando se usan conexiones persistentes, si una conexión con la
edición establecida solicitada ya existe, será reutilizada. De lo contrario,
se creará una conexión persistente diferente.
Al utilizar conexiones persistentes, si una conexión con la edición
solicitada ya existe, será reutilizada.
De lo contrario, se creará una conexión persistente diferente.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -47,7 +49,7 @@
<term><parameter>edition</parameter></term>
<listitem>
<para>
El nombre de la edición de Oracle Database anteriormente creada con el comando
Nombre de la edición Oracle, previamente creada con el comando
<acronym>SQL</acronym> "<literal>CREATE EDITION</literal>".
</para>
</listitem>
@@ -55,53 +57,25 @@
</variablelist>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<title>Requisitos de la versión de Oracle</title>
<para>
Esta función está disponible desde Oracle 11<emphasis>g</emphasis>R2 en adelante.
</para>
</note>
<caution>
<title>Conexiones persistentes</title>
<para>
Para evitar inconsistencias y errores inesperados, no use ALTER
SESSION SET EDITION para cambiar la edición en conexiones persistentes.
</para>
</caution>
<caution>
<title>Agrupamiento de conexiones DRCP</title>
<para>
Para evitar inconsistencias y errores inesperados cuando se utilizan ediciones
y <link linkend="oci8.connection">DRCP</link> con Oracle
11.2.0.1, mantenga una correspondencia uno-a-uno entre
<link linkend="ini.oci8.connection-class">oci8.connection_class</link>
y el nombre de la edición usado por las aplicaciones. Cada servidor de la agrupación de
una clase de conexión dada debería ser usado únicamente con una edición.
Esta restricción se ha eliminado con 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>Dos scripts pueden usar diferentes versiones de myfunc() a la vez</title>
<title>2 scripts pueden utilizar diferentes versiones
de myfunc() al mismo momento</title>
<programlisting role="php">
<![CDATA[
<?php
// Fichero 1
// Archivo 1
echo "Versión 1 de la aplicación\n";
@@ -115,13 +89,13 @@ echo "El resultado es $r\n";
?>
]]>
</programlisting>
<programlisting role="php">
</programlisting>
<programlisting role="php">
<![CDATA[
<?php
// Fichero 2
// Archivo 2
echo "Versión 2 de la aplicación\n";
@@ -139,7 +113,38 @@ echo "El resultado es $r\n";
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<title>Requisito de la versión Oracle</title>
<para>
Esta función está disponible para Oracle 11<emphasis>g</emphasis>R2 y versiones posteriores.
</para>
</note>
<caution>
<title>Conexiones persistentes</title>
<para>
Para evitar inconsistencias de datos o errores inesperados,
no se utilice la consulta ALTER SESSION SET EDITION para cambiar
una edición en las conexiones persistentes.
</para>
</caution>
<caution>
<title>Cola de conexiones DRCP</title>
<para>
Para evitar inconsistencias de datos o errores inesperados
al utilizar ediciones y
<link linkend="oci8.connection">DRCP</link> con Oracle 11.2.0.1,
mantenga una correspondencia uno-a-uno entre
<link linkend="ini.oci8.connection-class">oci8.connection_class</link>
y el nombre de la edición utilizado por sus aplicaciones. Cada servidor
para una clase de conexión dada debe ser utilizado con una sola
edición. Esta restricción fue eliminada en Oracle 11.2.0.2.
</para>
</caution>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View File

@@ -1,39 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 0640e024d4b8a9400d457143ccd0ea66e5f98ead Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<!-- EN-Revision: ed6de1ae20ce16c0c7be0b3fef282b6065bebfac Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes Maintainer: PhilDaiguille -->
<refentry xml:id="function.oci-set-module-name" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_set_module_name</refname>
<refpurpose>Establece el nombre de un módulo</refpurpose>
<refpurpose>Define el nombre del módulo</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>oci_set_module_name</methodname>
<methodparam><type>resource</type><parameter>connection</parameter></methodparam>
<methodparam><type>string</type><parameter>module_name</parameter></methodparam>
<methodparam><type>string</type><parameter>name</parameter></methodparam>
</methodsynopsis>
<para>
Establece el nombre de un módulo para el rastreo de Oracle.
Define el nombre del módulo para el trazado de Oracle.
</para>
<para>
El nombre del módulo se registra con la base de datos cuando ocurra el
siguiente "viaje de ida y vuelta" desde PHP a la base de datos, normalemnte cuando una
sentencia SQL es ejecutada.
El nombre del módulo se registra en la base de datos durante el próximo
viaje de ida y vuelta 'round-trip' desde PHP hacia la base de datos;
típicamente, cuando se ejecuta una consulta SQL.
</para>
<para>
El nombre del módulo puede ser consultado posteriormente desde una vista de administración
de la base de datos como <literal>V$SESSION</literal>. Se puede usar para
rastrear y monitorizar como con <literal>V$SQLAREA</literal>
y <literal>DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE</literal>.
El nombre podrá ser consultado posteriormente desde la vista de administración
de la base de datos como <literal>V$SESSION</literal>. También podrá
ser utilizado para el trazado y la supervisión, como con
<literal>V$SQLAREA</literal> y <literal>DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE</literal>.
</para>
<para>
El valor podría manterse entre conexiones persistentes.
El valor será retenido mediante el mecanismo de conexiones persistentes.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -45,46 +45,39 @@
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>module_name</parameter></term>
<term><parameter>name</parameter></term>
<listitem>
<para>
El <type>string</type> elegido por el usuario, hasta 48 bytes de longitud.
String seleccionado por el usuario con una longitud máxima de 48 caracteres.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
&oci.availability.note.10g;
&oci.clientinfo.tip;
&oci.roundtrip.caution;
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Establecer el nombre del módulo</title>
<title>Definición del nombre del módulo</title>
<programlisting role="php">
<![CDATA[
<?php
$c = oci_connect('hr', 'welcome', 'localhost/XE');
// Grabar el módulo
// Registro del módulo
oci_set_module_name($c, 'Home Page');
// Código que causa un viaje de ida y vuelta, por ejemplo una consulta:
// Código que genera un viaje de ida y vuelta (round-trip), por ejemplo, una consulta:
$s = oci_parse($c, 'select * from dual');
oci_execute($s);
oci_fetch_all($s, $res);
@@ -95,8 +88,8 @@ sleep(30);
</programlisting>
<screen>
<![CDATA[
// Mientras el script se esté ejecutando, el administrador puede ver el
// módulo en uso:
// Durante la ejecución del script, el administrador puede ver los
// módulos en uso:
sqlplus system/welcome
SQL> select module from v$session;
@@ -105,7 +98,14 @@ SQL> select module from v$session;
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
&oci.availability.note.10g;
&oci.clientinfo.tip;
&oci.roundtrip.caution;
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -113,12 +113,12 @@ SQL> select module from v$session;
<member><function>oci_set_action</function></member>
<member><function>oci_set_client_info</function></member>
<member><function>oci_set_client_identifier</function></member>
<member><function>oci_set_db_operation</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml

View File

@@ -1,12 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: a48db6e7cd2c2fd953cab0ecf07050d5689ad7ba Maintainer: seros Status: ready -->
<!-- Reviewed: yes Maintainer: julionc -->
<!-- EN-Revision: 35dc939fd104d82146846224bf171b048a47b64b Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.oci-set-prefetch-lob">
<refnamediv>
<refname>oci_set_prefetch_lob</refname>
<refpurpose>Establece la cantidad de datos precargados para cada CLOB o BLOB.</refpurpose>
<refpurpose>Define la cantidad de datos precargados para cada CLOB o BLOB.</refpurpose>
</refnamediv>
<refsect1 role="description">
@@ -17,25 +15,24 @@
<methodparam><type>int</type><parameter>prefetch_lob_size</parameter></methodparam>
</methodsynopsis>
<para>
Establece el tamaño del búfer interno utilizado para obtener cada valor CLOB o BLOB cuando la
implementación obtiene el localizador interno de la base de datos Oracle LOB después de una
correcta llamada de consulta a <function>oci_execute</function> y para cada solicitud
de recuperación interna posterior a la base de datos. Aumentar este valor
puede mejorar el rendimiento de la obtención de LOB más pequeños al reducir los viajes de ida y vuelta
Define el tamaño del búfer interno utilizado para recuperar cada valor CLOB o BLOB cuando
la implementación recupera el localizador LOB interno de Oracle de la base de datos después
de una llamada exitosa a <function>oci_execute</function> y para cada
solicitud de recuperación interna posterior a la base de datos. Aumentar este valor
puede mejorar el rendimiento de recuperación de los LOB más pequeños al reducir los viajes
entre PHP y la base de datos. El uso de la memoria cambiará.
</para>
<para>
El valor afecta a las LOB devueltos como instancias OCI-Lob y también a las devueltas
mediante <constant>OCI_RETURN_LOBS</constant>.
Este valor afecta a los LOB devueltos como instancias OCILob y también a aquellos devueltos
utilizando <constant>OCI_RETURN_LOBS</constant>.
</para>
<para>
Llamar a la función <function>oci_set_prefetch_lob</function> antes de
llamar a <function>oci_execute</function>. Si no se invoca, el valor
de <link linkend="ini.oci8.prefetch-lob-size">oci8.prefetch_lob_size</link>
se utilizará.
Llamar a <function>oci_set_prefetch_lob</function> antes de llamar
a <function>oci_execute</function>. Si no se hace, se utiliza
el valor de <link linkend="ini.oci8.prefetch-lob-size">oci8.prefetch_lob_size</link>.
</para>
<para>
El valor de precarga de LOB solo debe establecerse con la base de datos Oracle 12.2 o posterior.
El valor de prefetch LOB debe definirse únicamente con Oracle Database 12.2 o posterior.
</para>
</refsect1>
@@ -53,7 +50,7 @@
<term><parameter>prefetch_lob_size</parameter></term>
<listitem>
<para>
El número de bytes de cada LOB que se va a precargar, &gt;= 0
El número de bytes de cada LOB a precargar, &gt;= 0
</para>
</listitem>
</varlistentry>
@@ -68,32 +65,11 @@
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>PECL OCI8 3.2</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Cambiando el valor de prefetch de LOB para una consulta</title>
<title>Cambio del valor de prefetch LOB para una consulta</title>
<programlisting role="php">
<![CDATA[
<?php
@@ -101,7 +77,7 @@
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
$stid = oci_parse($conn, 'SELECT myclob FROM mytable');
oci_set_prefetch_lob($stid, 100000); // Set before calling oci_execute()
oci_set_prefetch_lob($stid, 100000); // Establecer antes de llamar a oci_execute()
oci_execute($stid);
echo "<table border='1'>\n";
@@ -129,8 +105,8 @@ oci_close($conn);
<para>
<simplelist>
<member>
La opción ini
<link linkend="ini.oci8.prefetch-lob-size">oci8.prefetch_lob_size</link>
opción ini
</member>
</simplelist>
</para>

View File

@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 5a3f0c18ac46e6d4313367e44866527badac5b73 Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<!-- EN-Revision: f80105b4fc1196bd8d5fecb98d686b580b1ff65d Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.oci-set-prefetch">
<refnamediv>
<refname>oci_set_prefetch</refname>
<refpurpose>Establece el número de filas a precargar mediante consultas</refpurpose>
<refpurpose>Indica el número de filas que deben leerse por adelantado por Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
@@ -16,59 +16,55 @@
<methodparam><type>int</type><parameter>rows</parameter></methodparam>
</methodsynopsis>
<para>
Establece el número de filas que las bibliotecas de Oracle Client almacenará
en búfer después de una llamada exitosa
a <function>oci_execute</function> y por cada petición de obtención
interna subsigiente a la base de datos. Para consultas que devuelven un
gran número de filas, se puede mejorar significativamente el rendimiento
aumentando el número de precarga sobre el
valor predeterminado de
<link linkend="ini.oci8.default-prefetch">oci8.default_prefetch</link>.
Define el número de filas a pre-cargar por las bibliotecas clientes de Oracle
después de una llamada exitosa a la función <function>oci_execute</function> pero también
para cada llamada a las funciones internas de recuperación de filas en la base
de datos. Para las consultas que devuelven un gran número de filas, el rendimiento
puede mejorar significativamente aumentando el número de filas a pre-cargar respecto
al valor por omisión definido por la opción de configuración <link linkend="ini.oci8.default-prefetch">oci8.default_prefetch</link>.
</para>
<para>
La precarga es la forma eficiente de Oracle de devolver más de una
fila de datos desde la base de datos en cada petición de red. Esto puede
resultar en un uso mejor de la red y la CPU. El almacenamiento en búder de
filas es interno a OCI8 y el comportamiento de las funciones de obtención
de OCI8 no se modifica a pesar del número de precargas. Por
ejemplo, <function>oci_fetch_row</function> siempre devolverá una
fila. El almancenamiento en búfer de las precargas se realiza en función de cada sentencia y
no es utilizado por sentencias reejecutadas o por otras conexiones.
La pre-carga es una forma eficiente de devolver más de una fila de datos
desde la base de datos por cada envío de red. Esto permite una mejor utilización
de la red y del CPU. La pre-carga de filas es interna a OCI8 y el comportamiento
de las funciones de recuperación de datos permanece inalterado según el valor
del contador de pre-carga. Por ejemplo, la función <function>oci_fetch_row</function>
siempre devolverá una fila. El buffer de pre-carga es específico de cada consulta
y no será utilizado para re-ejecutar consultas o por otras conexiones.
</para>
<para>
Se ha de llamar a <function>oci_set_prefetch</function> antes
de invocar a <function>oci_execute</function>.
Es conveniente llamar a la función <function>oci_set_prefetch</function> antes
de la función <function>oci_execute</function>.
</para>
<para>
Un objetivo para el ajuste es establecer el valor de precarga a un tamaño razonable que
pueda manejar la red y la base de datos. Para consultas que devuelven un número de
filas muy grande, se podría mejorar la eficiencia total del sistema si
las filas son obtenidas de la base de datos en varios trozos (esto es, establecer el
valor de precarga menor que el número de filas). Esto permite que la
base de datos maneje otras sentencias de usuarios mientras que el script de PHP está
procesando el conjunto de filas actual.
Una forma de mejorar la eficiencia es definir el valor de pre-carga a un valor
razonable según la red y la base de datos a gestionar. Para las consultas que
devuelven un número muy grande de filas, es conveniente recuperar el conjunto
de filas por partes (es decir, definir el valor de pre-carga a un valor inferior
al número total de filas). Esto permite a la base de datos gestionar las consultas
de otros usuarios mientras el script PHP gestiona el conjunto de filas actual.
</para>
<para>
La precarga de consultas se introdujo en Oracle 8<emphasis>i</emphasis>. La precarga de
REF CURSOR se introdujo en Oracle 11<emphasis>g</emphasis>R2 y sucede cuando PHP está
vinculado con las bibliotecas cliente de Oracle 11<emphasis>g</emphasis>R2 (o posterior).
La precarga de cursores anidados fue
introducida en Oracle 11<emphasis>g</emphasis>R2 y requiere que las bibliotecas de Oracle Client
y las bases de datos sean la versión 11<emphasis>g</emphasis>R2 o posterior.
La pre-carga fue introducida en Oracle 8<emphasis>i</emphasis>.
La pre-carga <literal>REF CURSOR</literal> fue introducida en
Oracle 11<emphasis>g</emphasis>R2 y está disponible cuando PHP está vinculado
con las bibliotecas clientes de Oracle 11<emphasis>g</emphasis>R2 (o superior).
Los cursores anidados de pre-carga fueron introducidos en Oracle
11<emphasis>g</emphasis>R2 y requieren tanto las bibliotecas clientes de Oracle,
como una base de datos en versión 11<emphasis>g</emphasis>R2 (o superior).
</para>
<para>
La precarga no es soportada cuando las consultas contienen columnas
LONG o LOB. El valor de la precarga será ignorado y se usará la obtención de
una única fila en todas las situaciones donde no esté soportada la precarga.
La pre-carga no es soportada cuando las consultas contienen columnas de tipo LONG o LOB. El valor de pre-carga será utilizado en todas las situaciones
donde la pre-carga es soportada.
</para>
<para>
Al usar Oracle Database 12<emphasis>c</emphasis>, el valor precargado
establecido por PHP puede ser sobrescrito por el fichero de configuración
de del cliente <literal>oraaccess.xml</literal> de Oracle. Consulte
la documentación de Oracle para más detalles.
Al utilizar la base de datos Oracle 12<emphasis>c</emphasis>,
el conjunto de valores pre-cargados por PHP puede ser sobrescrito por el archivo
de configuración cliente de Oracle <literal>oraaccess.xml</literal>.
Consulte la documentación de Oracle para más detalles.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -83,59 +79,26 @@
<term><parameter>rows</parameter></term>
<listitem>
<para>
El número de filas que van a se precargadas, &gt;= 0
El número de filas a pre-cargar, &gt;=0
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>5.3.2 (PECL OCI8 1.4)</entry>
<entry>
Antes de esta versión, <parameter>rows</parameter> debe ser &gt;= 1.
</entry>
</row>
<row>
<entry>5.3.0 (PECL OCI8 1.3.4)</entry>
<entry>
Antes de esta versión, la precarga estaba limitada al menor valor
de <parameter>rows</parameter> filas y 1024
* <parameter>rows</parameter> bytes. La restricción del
tamaño de bytes ahora ha sido eliminada.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Cambiar el valor de precarga predeterminado para una consulta</title>
<title>Modificación del valor de pre-carga para una consulta</title>
<programlisting role="php">
<![CDATA[
<?php
@@ -143,7 +106,7 @@
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
$stid = oci_parse($conn, 'SELECT * FROM myverybigtable');
oci_set_prefetch($stid, 300); // Establecer antes de llamar a oci_execute()
oci_set_prefetch($stid, 300); // A definir antes de la llamada a la función oci_execute()
oci_execute($stid);
echo "<table border='1'>\n";
@@ -166,12 +129,12 @@ oci_close($conn);
</para>
<para>
<example>
<title>Cambiar la precarga predeterminada para la obtención de un REF CURSOR</title>
<title>Modificación del valor de pre-carga para una recuperación REF CURSOR</title>
<programlisting role="php">
<![CDATA[
<?php
/*
Crear el procedimiento almacenado PL/SQL:
Creación del procedimiento almacenado PL/SQL siguiente :
CREATE OR REPLACE PROCEDURE myproc(p1 OUT SYS_REFCURSOR) AS
BEGIN
@@ -186,8 +149,9 @@ $refcur = oci_new_cursor($conn);
oci_bind_by_name($stid, ':rc', $refcur, -1, OCI_B_CURSOR);
oci_execute($stid);
// Cambiar la precarga antes de ejecutar el cursor.
// La precarga de REF CURSOR funciona cuando PHP está vinculado con las bibliotecas cliente de Oracle 11gR2 o posteriores
// Modificación del valor de pre-carga antes de la ejecución del cursor.
// La pre-carga REF CURSOR funciona cuando PHP está vinculado con las bibliotecas clientes
// Oracle 11gR2 (o superior)
oci_set_prefetch($refcur, 200);
oci_execute($refcur);
@@ -205,36 +169,36 @@ oci_free_statement($refcur);
oci_free_statement($stid);
oci_close($conn);
?>
?>
]]>
</programlisting>
</example>
</para>
<para>
Si OCI8 de PHP realiza la obtención desde un REF CURSOR y luego pasa el REF
CURSOR a un segundo procedimiento de PL/SQL para su procesamiento posterior,
establezca el número de precargas de REF CURSOR a <constant>0</constant> para
evitar que las filas se "pierdan" en el conjunto de resultados. El valor de la precarga
es el número de filas extra obtenidas en cada petición interna de OCI8 para
la base de datos, por lo que establecerlo a <constant>0</constant> significa que únicamente
se obtiene una fila cada vez.
Si PHP OCI8 recupera datos desde un cursor <literal>REF CURSOR</literal>
y luego devuelve el cursor <literal>REF CURSOR</literal> a un segundo
procedimiento almacenado para su procesamiento, entonces es conveniente definir
la pre-carga de <literal>REF CURSOR</literal> a <literal>0</literal>
para evitar perder filas del conjunto de resultados. El valor de pre-carga es
el número de filas adicionales a recuperar para cada llamada interna OCI8 a la base de datos,
por lo tanto, definirlo a <literal>0</literal> significa simplemente que se desea
recuperar una sola fila a la vez.
<example>
<title>Establecer el valor de precarga cuando se vuelve a pasar un REF CURSOR a Oracle</title>
<title>Definición del valor de pre-carga al devolver un cursor <literal>REF CURSOR</literal> a Oracle</title>
<programlisting role="php">
<![CDATA[
<?php
$conn = oci_connect('hr', 'welcome', 'localhost/orcl');
// obtener el REF CURSOR
// Recuperación del cursor REF CURSOR
$stid = oci_parse($conn, 'BEGIN myproc(:rc_out); END;');
$refcur = oci_new_cursor($conn);
oci_bind_by_name($stid, ':rc_out', $refcur, -1, OCI_B_CURSOR);
oci_execute($stid);
// Mostrar dos filas, pero no precargar ninguna fila extra, si no,
// esas filas extra no se pasarán de nuevo a myproc_use_rc().
// Un valor de precarga de 0 está permitido en PHP 5.3.2 y PECL OCI8 1.4
// Muestra 2 filas, pero no pre-carga filas adicionales
// de lo contrario, estas filas adicionales no serán pasadas a myproc_use_rc().
oci_set_prefetch($refcur, 0);
oci_execute($refcur);
$row = oci_fetch_array($refcur);
@@ -242,9 +206,9 @@ var_dump($row);
$row = oci_fetch_array($refcur);
var_dump($row);
// pasar el REF CURSOR a myproc_use_rc() para porcesar más datos
// con el conjunto de resultados
$stid = oci_parse($conn, 'begin myproc_use_rc(:rc_in); end;');
// pasa el cursor REF CURSOR a myproc_use_rc() para realizar otros
// procesamientos en el conjunto de resultados
$stid = oci_parse($conn, 'begin myproc_use_rc(:rc_in); end;');
oci_bind_by_name($stid, ':rc_in', $refcur, -1, OCI_B_CURSOR);
oci_execute($stid);
@@ -254,19 +218,19 @@ oci_execute($stid);
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member>
La opción ini
la opción de configuración
<link linkend="ini.oci8.default-prefetch">oci8.default_prefetch</link>
</member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View File

@@ -1,25 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: e41806c30bf6975e452c0d4ce35ab0984c2fa68c Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<!-- EN-Revision: 5e41012cfdf8f2eff5fa56de446c7656afac536c Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<refentry xml:id="function.oci-statement-type" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>oci_statement_type</refname>
<refpurpose>Devuelve el tipo de una sentencia</refpurpose>
<refpurpose>Devuelve el tipo de consulta Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>string</type><methodname>oci_statement_type</methodname>
<type class="union"><type>string</type><type>false</type></type><methodname>oci_statement_type</methodname>
<methodparam><type>resource</type><parameter>statement</parameter></methodparam>
</methodsynopsis>
<para>
Devuelve una palabra clave que identifica el tipo de la sentencia de
OCI8 dada por <parameter>statement</parameter>.
Devuelve una palabra clave que identifica el tipo de
la consulta <parameter>statement</parameter> OCI8.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -28,21 +28,22 @@
<term><parameter>statement</parameter></term>
<listitem>
<para>
Un identificador de sentencia de OCI8 válido desde <function>oci_parse</function>.
Un identificador de consulta OCI válido, devuelto
por la función <function>oci_parse</function>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve el tipo de <parameter>statement</parameter> como una de las
siguientes cadenas.
Devuelve el tipo de consulta <parameter>statement</parameter>
en forma de una de las siguientes cadenas.
<table>
<title>Tipo de sentencia</title>
<title>Tipo de consulta</title>
<tgroup cols="2">
<thead>
<row>
@@ -53,62 +54,62 @@
<tbody>
<row>
<entry><literal>ALTER</literal></entry>
<entry></entry>
<entry/>
</row>
<row>
<entry><literal>BEGIN</literal></entry>
<entry></entry>
<entry/>
</row>
<row>
<entry><literal>CALL</literal></entry>
<entry>Introducido en PHP 5.2.1 (PECL OCI8 1.2.3)</entry>
<entry></entry>
</row>
<row>
<entry><literal>CREATE</literal></entry>
<entry></entry>
<entry/>
</row>
<row>
<entry><literal>DECLARE</literal></entry>
<entry></entry>
<entry/>
</row>
<row>
<entry><literal>DELETE</literal></entry>
<entry></entry>
<entry/>
</row>
<row>
<entry><literal>DROP</literal></entry>
<entry></entry>
<entry/>
</row>
<row>
<entry><literal>INSERT</literal></entry>
<entry></entry>
<entry/>
</row>
<row>
<entry><literal>SELECT</literal></entry>
<entry></entry>
<entry/>
</row>
<row>
<entry><literal>UPDATE</literal></entry>
<entry></entry>
<entry/>
</row>
<row>
<entry><literal>UNKNOWN</literal></entry>
<entry></entry>
<entry/>
</row>
</tbody>
</tgroup>
</table>
</para>
<para>
Devuelve &false; en caso de error.
Devuelve &false; si ocurre un error.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Ejemplo de <function>oci_statement_type</function></title>
<title>Ejemplo con <function>oci_statement_type</function></title>
<programlisting role="php">
<![CDATA[
<?php
@@ -117,10 +118,10 @@ $conn = oci_connect('hr', 'welcome', 'localhost/XE');
$stid = oci_parse($conn, 'DELETE FROM departments WHERE department_id = 130;');
if (oci_statement_type($stid) == "DELETE") {
trigger_error('You are not allowed to delete from this table', E_USER_ERROR);
trigger_error('No se está autorizado a borrar líneas en esta tabla', E_USER_ERROR);
}
else {
oci_execute($stid); // eliminar la fila
oci_execute($stid); // borra la línea
}
oci_free_statement($stid);
@@ -132,9 +133,8 @@ oci_close($conn);
</example>
</para>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml

View File

@@ -1,14 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: a48db6e7cd2c2fd953cab0ecf07050d5689ad7ba Maintainer: seros Status: ready -->
<!-- Reviewed: yes Maintainer: julionc -->
<!-- EN-Revision: 5e41012cfdf8f2eff5fa56de446c7656afac536c Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: yes -->
<section xml:id="oci8.configuration" xmlns="http://docbook.org/ns/docbook">
&reftitle.runtime;
&extension.runtime;
<para>
<table>
<title>Opciones de configuración de OCI8</title>
<title>&ConfigureOptions; OCI8</title>
<tgroup cols="4">
<thead>
<row>
@@ -23,61 +21,61 @@
<entry><link linkend="ini.oci8.connection-class">oci8.connection_class</link></entry>
<entry>""</entry>
<entry><constant>INI_ALL</constant></entry>
<entry>Disponible desde PECL OCI8 1.3.</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.oci8.default-prefetch">oci8.default_prefetch</link></entry>
<entry>"100"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry>Disponible desde PECL OCI8 1.1.</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.oci8.events">oci8.events</link></entry>
<entry>Off</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry>Disponible desde PECL OCI8 1.3.</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.oci8.max-persistent">oci8.max_persistent</link></entry>
<entry>"-1"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry>Disponible desde PECL OCI8 1.1.</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.oci8.old-oci-close-semantics">oci8.old_oci_close_semantics</link></entry>
<entry>Off</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry>Disponible desde PECL OCI8 1.1.</entry>
<entry>Deprecado a partir de PHP 8.1.0.</entry>
</row>
<row>
<entry><link linkend="ini.oci8.persistent-timeout">oci8.persistent_timeout</link></entry>
<entry>"-1"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry>Disponible desde PECL OCI8 1.1.</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.oci8.ping-interval">oci8.ping_interval</link></entry>
<entry>"60"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry>Disponible desde PECL OCI8 1.1.</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.oci8.prefetch-lob-size">oci8.prefetch_lob_size</link></entry>
<entry>"0"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry>Disponible desde PECL OCI8 3.2.</entry>
<entry>Disponible a partir de PECL OCI8 3.2.</entry>
</row>
<row>
<entry><link linkend="ini.oci8.privileged-connect">oci8.privileged_connect</link></entry>
<entry>Off</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry>Disponible desde PECL OCI8 1.1.</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.oci8.statement-cache-size">oci8.statement_cache_size</link></entry>
<entry>"20"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry>Disponible desde PECL OCI8 1.1.</entry>
<entry></entry>
</row>
</tbody>
</tgroup>
@@ -95,29 +93,28 @@
</term>
<listitem>
<para>
Este texto definido por el usuario es utilizado por las conexiones de
Oracle 11<emphasis>g</emphasis> Database Resident Connection Pooling (DRCP) para
subparticionar la agrupación de conexiones. Permite conexiones persistentes
de OCI8 desde una aplicación para reutilizar las sesiones de la base de datos
de un script anterior de PHP, proporcionando una mejor escalabilidad. Cuando
una aplicación usa un proceso de una agrupación de una base de datos anteriormente usado
con una clase de conexión diferente, las configuraciones de sesión, tales como
el formato de fecha predeterminado de Oracle, son reiniciadas. Esto previene de
la compartición accidental de información entre diferentes
aplicaciones.
El texto definido por el usuario es utilizado por las conexiones del
pool de conexiones residente de la base de datos Oracle 11<emphasis>g</emphasis>
para particionar el pool. Esto permite a las conexiones persistentes
OCI8 de una aplicación reutilizar las sesiones a la base de datos
desde un script anterior, permitiendo así una mejor eficiencia.
Cuando una aplicación utiliza un proceso de base de datos previamente
utilizado con una clase de conexión diferente, las configuraciones
de la sesión, como el formato de fecha por defecto de Oracle,
serán reinicializadas. Este comportamiento permite evitar compartir
accidentalmente información entre las diferentes aplicaciones.
</para>
<para>
El valor puede establecerse en tiempo de ejecución
con <function>ini_set</function> entes de la conexión.
El valor puede ser definido en tiempo de ejecución gracias a la función
<function>ini_set</function>, llamada antes de la conexión.
</para>
<para>
Para usar DRCP, OCI8 debe vincularse con las bibliotecas de Oracle 11<emphasis>g</emphasis>,
y la base de datos debe ser Oracle 11<emphasis>g</emphasis>. La agrupación de conexiones
debe habilitarse en la base de datos,
<literal>oci8.connection_class</literal> debería establecerse a
la misma cadena para todos los servidores web que ejecuten la misma
aplicación, y la cadena de conexión de OCI8 debe especificar el
suo de un servidor de la agrupación.
Para utilizar DRCP, OCI8 debe estar vinculado con las bibliotecas Oracle 11<emphasis>g</emphasis>
y la base de datos debe ser Oracle 11<emphasis>g</emphasis>. El pool de conexión debe
estar activado en la base de datos, la opción de configuración
<literal>oci8.connection_class</literal> debe valer la misma cadena
para todos los servidores web utilizando la misma aplicación, y la cadena
de conexión OCI8 debe especificar el uso de un servidor con pool.
</para>
</listitem>
</varlistentry>
@@ -128,43 +125,33 @@
</term>
<listitem>
<para>
Esta opción establece el número predeterminado de filas extra que
se obtendrán y almacenarán en caché automáticamente siempre que se haga
una petición de bajo nivel para datos de la base de datos. Establecer un valor
de <literal>0</literal> desactiva la precarga.
Esta opción define el número por defecto de líneas adicionales
que serán recuperadas y almacenadas en caché automáticamente cada vez
que se realice una consulta de bajo nivel recuperando datos desde la base
de datos. Definir un valor de
<literal>0</literal> permite desactivar esta funcionalidad.
</para>
<para>
El valor de la precarga no altera el número de filas que
son devueltas al usuario por funciones como <function>oci_fetch_array</function>;
la precarga y el almacenamiento en caché de filas son manejados
internamente por OCI8.
El valor de pre-carga no altera el número de líneas que funciones como
<function>oci_fetch_array</function> devolverán al usuario; la pre-carga y
el almacenamiento en caché de líneas es gestionado internamente por OCI8.
</para>
<para>
El valor puede ser establecido para cada sentencia
con <function>oci_set_prefetch</function> antes de la ejecución
de dicha sentencia.
El valor puede ser definido para cada consulta, ejecutando la función
<function>oci_set_prefetch</function> antes de ejecutar la consulta.
</para>
<para>
En PHP 5.3 (PECL OCI8 1.3.4), el valor predeterminado estaba aumentado
desde <literal>10</literal> hasta <literal>100</literal>.
</para>
<para>
En PHP 5.3.2 (PECL OCI8 1.4), el valor mínimo establecible estaba
reducido desde <literal>1</literal> hasta <literal>0</literal>,
permitiendo la que precarga se desactivara.
</para>
<para>
Al usar Oracle Database 12<emphasis>c</emphasis>, el valor
de precarga establecido por PHP puede ser sobrescrito por el fichero de
configuración del cliente <literal>oraaccess.xml</literal> de Oracle. Consulte
la documentación de Oracle para más detalles.
Al utilizar Oracle 12<emphasis>c</emphasis> o posterior, el valor de
pre-carga definido por PHP puede ser sobreescrito por el archivo de
configuración del cliente Oracle: <literal>oraaccess.xml</literal>.
Consulte la documentación de Oracle para más información.
</para>
<note>
<simpara>
Un valor de precarga más alto puede mejorar el rendimiento, con el
coste del aumento del uso de memoria. Para consultas que devuelven
gran cantidad de datos, el beneficio del rendimiento puede ser
significativo.
Si se introduce un valor demasiado grande, esto puede conducir a
una mejora de las prestaciones, a costa
del uso de memoria. Para consultas que devuelven un gran número de datos,
la ganancia de rendimiento puede ser realmente significativa.
</simpara>
</note>
</listitem>
@@ -172,30 +159,30 @@
<varlistentry xml:id="ini.oci8.events">
<term>
<parameter>oci8.events</parameter>
<type>boolean</type>
<type>bool</type>
</term>
<listitem>
<para>
Usar <literal>On</literal> permite que PHP sea informado de
los eventos Fast Application Notification (FAN) de la base de datos.
Definir esta opción a <literal>On</literal> permite a PHP ser
notificado de los eventos de base de datos FAN (<literal>Fast Application
Notification</literal>).
</para>
<para>
Sin FAN, cuando una instancia de una base de datos o un nodo de una máquina fallan
de forma impredecible, las aplicaciones de PHP podrían bloquearse esperando una
respuesta de la base de datos hasta que el tiempo de espera de TCP expire. Con los
eventos FAN, las aplicaciones de PHP son informadas rápidamente de fallos
que afectan a sus conexiones de bases de datos establecidas. La extensión OCI8
limpiará las conexiones inservibles de la
caché de conexiones persistentes.
Sin FAN, cuando una instancia de la base de datos o un nodo de máquinas
falla bruscamente, las aplicaciones PHP pueden bloquearse esperando
una respuesta de la base de datos, hasta el final del tiempo de espera TCP.
Con los eventos FAN, las aplicaciones PHP son notificadas rápidamente
de los errores que afectan a las conexiones a la base de datos. La extensión
OCI8 limpiará las conexiones inutilizables en la caché de conexiones persistentes.
</para>
<para>
Cuando se usa <literal>On</literal>, la base de datos debe también
estar configurada para enviar eventos FAN.
Cuando se utiliza <literal>On</literal> como valor, la base de datos
también debe estar configurada para emitir los eventos FAN.
</para>
<para>
El soporte para FAN está disponible cuando OCI8 está vinculada con la biblioteca
de Oracle 10<emphasis>g</emphasis>R2 (o posterior) y conectada con Oracle Database
10<emphasis>g</emphasis>R2 (o posterior).
El soporte de FAN está disponible cuando OCI8 está vinculado a bibliotecas
Oracle 10<emphasis>g</emphasis>R2 (y posteriores) y conectado a una base de datos Oracle
10<emphasis>g</emphasis>R2 (y posteriores).
</para>
</listitem>
</varlistentry>
@@ -206,27 +193,25 @@
</term>
<listitem>
<para>
El número máximo de conexiones persistentes de OCI8 por proceso de
PHP. Establecer esta opción a -1 significa que no existe
límite.
El número máximo de conexiones persistentes OCI8 por proceso PHP.
Definir esta opción a -1 significa que no hay límite.
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.oci8.old-oci-close-semantics">
<term>
<parameter>oci8.old_oci_close_semantics</parameter>
<type>boolean</type>
<type>bool</type>
</term>
<listitem>
<para>
Esta opción controla el comportamiento de <function>oci_close</function>.
Habilitarla significa que <function>oci_close</function> no hará
nada; la conexión no será cerrada
hasta que finalice el script. Esto es debido únicamente por razones de
retrocompatibilidad. Si fuera necesario habilitar esta
opción, <emphasis>se recomienda encarecidamente</emphasis>
ajustar las llamadas de <function>oci_close</function> en la
aplicación en lugar de habilitar esta opción.
Esta opción controla el comportamiento de la función <function>oci_close</function>.
Activar esta opción significa que <function>oci_close</function> no hará nada;
la conexión no será cerrada hasta que finalice el script. Esto es únicamente
para asegurar la compatibilidad ascendente. Si se piensa que es necesario
activar esta opción, se <emphasis>recomienda encarecidamente</emphasis>
eliminar las llamadas a la función <function>oci_close</function> de la aplicación
en lugar de activar esta opción.
</para>
</listitem>
</varlistentry>
@@ -237,33 +222,26 @@
</term>
<listitem>
<para>
El número máximo de segundos que a un proceso de PHP se le permite
mantener una conexión persistente inactiva abierta. Establecer esta
opción a -1 significa que las conexiones persistentes inactivas serán
retenidas hasta que el proceso de PHP finalice o la conexión
sea explícitamente cerrada con <function>oci_close</function>.
El tiempo máximo (en segundos) que un proceso PHP dado está autorizado
a mantener una conexión persistente. Definir esta opción a -1 significa
que las conexiones persistentes serán siempre mantenidas
mientras el proceso PHP no termine o la conexión sea explícitamente
cerrada usando la función <function>oci_close</function>.
</para>
<note>
<simpara>
En PHP, la caducidad de los recursos inactivos no está basada en alarmas.
Esto ocurre cuando PHP termina de procesar un script y de comprobar la
marca de tiempo del último recurso utilizado. Por lo tanto, existe una paradoja
donde las conexiones inactivas solamente son cerradas cuando hay alguna
actividad (aunque no necesariamente relacionada con OCI8) en el proceso
de PHP. Si hay más de un proceso de PHP, cada uno
debe ser activado individualmente para desencadenar la caducidad de
sus recursos inactivos. La introducción de Database Resident
Connection Pooling (DRCP) en Oracle 11<emphasis>g</emphasis> resuleve los problmas de
memoria y de recursos
que <literal>oci8.max_persistent</literal>
y <literal>oci8.persistent_timeout</literal>
intentaron superar anteriormente.
</simpara>
</note>
<note>
<simpara>
En PHP 5.3 (PECL OCI8 1.3), las conexiones persistentes pueden ser
cerradas con <function>oci_close</function>.
En PHP, la expiración de los recursos persistentes no produce
ninguna alerta. Ocurre cuando PHP termina un script y
verifica el timestamp del último uso del recurso.
Además, las conexiones persistentes solo pueden ser cerradas
durante alguna actividad (no necesaria en OCI8) en el proceso PHP.
Si hay más de un proceso PHP, entonces cada uno de ellos
debe ser activado manualmente
para iniciar la expiración de sus propios recursos.
La introducción del pool de conexiones persistentes (DRCP) en
Oracle 11<emphasis>g</emphasis> resuelve los problemas de memoria y recursos, que
las opciones <literal>oci8.max_persistent</literal> y
<literal>oci8.persistent_timeout</literal> intentaron resolver previamente.
</simpara>
</note>
</listitem>
@@ -275,21 +253,18 @@
</term>
<listitem>
<para>
El número de segundos que deben transcurrir antes de emitir un ping
durante la ejecución de <function>oci_pconnect</function>. Un ping se asegura
de que la conexión de la base de datos es válida. Cuando se establece a 0,
las conexiones persistentes serán comprobadas cada
vez que se llame a <function>oci_pconnect</function>. Para deshabilitar
estas comprobaciones completamente, se ha de establecer esta opción a -1.
El tiempo máximo (en segundos) a esperar antes de enviar un ping durante
<function>oci_pconnect</function>. Cuando se define a 0, las conexiones
persistentes serán verificadas en cada reutilización. Para desactivar
completamente los pings, defina esta opción a -1.
</para>
<note>
<simpara>
La deshabilitación de las comprobaciones permite a <function>oci_pconnect</function>
operar con la mayor eficiencia, aunque PHP podría no ser capaz
de detectar conexiones inutilizables, como las causadas por la caída
de la red, o si la base de datos de Oracle se ha venido abajo mientras PHP
sigue conectado, hasta que la conexión se use después en el
script. Consulte la documentación de
Desactivar los pings hace que las llamadas a <function>oci_pconnect</function>
sean altamente rentables, pero impide a PHP detectar problemas de conexión,
como problemas de red, o si el servidor Oracle ha sido apagado desde la
conexión de PHP, hasta que la conexión no sea utilizada más tarde en el script.
Consulte la documentación de la función
<function>oci_pconnect</function> para más información.
</simpara>
</note>
@@ -302,44 +277,44 @@
</term>
<listitem>
<para>
Este es un parámetro de ajuste que afecta al almacenamiento interno de los datos LOB.
Incrementar este valor puede mejorar el rendimiento en la obtención de LOBs más pequeños
al reducir los viajes de ida y vuelta entre PHP y la base de datos.
El uso de la memoria cambiará.
Se trata de un parámetro de ajuste que afecta al almacenamiento en memoria
interna de los datos LOB. Aumentar este valor puede mejorar el rendimiento
de recuperación de pequeños LOB reduciendo los intercambios entre PHP y la base de datos.
El uso de la memoria cambiará.
</para>
<para>
El valor afecta a los LOB devueltos como instancias OCI-Lob y también a
los devueltos mediante <constant>OCI_RETURN_LOBS</constant>.
El valor afecta a los LOB devueltos como instancias OCILob así como a aquellos
devueltos usando <constant>OCI_RETURN_LOBS</constant>.
</para>
<para>
El valor se puede establecer por instrucción
con <function>oci_set_prefetch_lob</function> antes de la
ejecución de la sentencia.
El valor puede ser definido por instrucción
con <function>oci_set_prefetch_lob</function> antes de ejecutar la instrucción.
</para>
<note>
<simpara>
Utilizarlo con Oracle Database 12.2 o posterior.
</simpara>
<simpara>
Para usar con Oracle Database 12.2 o posterior.
</simpara>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.oci8.privileged-connect">
<term>
<parameter>oci8.privileged_connect</parameter>
<type>boolean</type>
<type>bool</type>
</term>
<listitem>
<para>
Esta opción permite que las conexiones usen las credenciales privilegiadas
externas
<constant>OCI_SYSOPER</constant> u <constant>OCI_SYSDBA</constant>.
Esta opción activa las conexiones privilegiadas utilizando derechos externos
(<constant>OCI_SYSOPER</constant>, <constant>OCI_SYSDBA</constant>).
</para>
<note>
<simpara>
El establecerla a <literal>On</literal> puede permitir a los scripts de
servidores web, ejecutados con los privilegios apropiados del SO,
conectarse como usuarios privilegiados de la base de datos sin requerir una
contraseña de la misma. Esto puede ser un riesgo para la seguridad.
Definir este valor a <literal>On</literal>
permite a los scripts del servidor web ejecutando los privilegios de usuario
del sistema apropiados conectarse a la base de datos utilizando
estos privilegios, sin necesidad de proporcionar una contraseña a
la base de datos. Esto puede tener consecuencias en términos de
seguridad.
</simpara>
</note>
</listitem>
@@ -351,34 +326,34 @@
</term>
<listitem>
<para>
Esta opción habilita el almacenamiento en caché de sentencias, y especifica cuántas
almacenar. Para deshabilitar dicho almacenamiento se ha de establecer
esta opción a 0.
Esta opción activa la caché de consultas, y especifica el número de consultas
a almacenar en caché. Para desactivar la caché de consultas, defina esta
opción a 0.
</para>
<para>
El almacenamiento en caché de sentencias elimina la necesidad de transmitir el texto
de las mismas a la base de datos y la necesidad de volver a transmitir cualquier
metadato sobre dichas sententencias a PHP. Esto puede
mejorar significativamente el rendimiento global del sistema en
aplicaciones que reutilicen sentencias durante el tiempo de vida de una
conexión. Algunos &quot;cursores&quot; extra de la base de datos podrían
manetenerse abiertos bajo el supuesto de que las sentencias serán
La caché de consultas permite no tener que transmitir
el texto de la consulta a la base de datos, así como no tener que
transmitir metadatos sobre la consulta a PHP.
Esto permite aumentar significativamente el rendimiento del sistema
en las aplicaciones, reutilizando las consultas durante toda
la vida de la conexión. Los "cursores" de base de datos
también pueden ayudar si se parte de la base de que las consultas serán
reutilizadas.
</para>
<para>
Establezca este valor al tamaño del conjunto de trabajo de sentencias
usadas por la aplicación. Establcer un valor demasiado pequeño puede causar
que se vacíen de la caché dichas sentencias antes de que sean
reutilizadas.
Defina este valor al tamaño de su conjunto de consultas comunes
utilizadas por su aplicación. Definir un valor demasiado pequeño
puede hacer que sus consultas sean eliminadas de la caché antes de que
sean utilizadas.
</para>
<para>
Esta opción se usa mayormente con conexiones persistentes.
Esta opción es más utilizada con las conexiones persistentes.
</para>
<para>
Al usar Oracle Database 12<emphasis>c</emphasis>, este
valor puede ser sobrescrito y ajustado automáticamente por el fichero de
del cliente <literal>oraaccess.xml</literal> de Oracle. Consulte
la documentación de Oracle para más detalles.
Con la base de datos Oracle 12<emphasis>c</emphasis>, este valor
puede ser sobreescrito y ajustado automáticamente por el archivo
<literal>oraaccess.xml</literal> del cliente Oracle. Consulte la documentación
de Oracle para más explicaciones.
</para>
</listitem>
</varlistentry>
@@ -406,5 +381,3 @@ vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@@ -1,58 +1,50 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: b9e6268918813e27972c644897970b0cdbc6f86e Maintainer: seros Status: ready -->
<!-- Reviewed: yes Maintainer: julionc -->
<!-- EN-Revision: 14767af0f05dffa6fdb9b49e1a1f4e9ca7022a60 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<reference xml:id="class.ocicollection" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<title>La clase OCI-Collection</title>
<titleabbrev>OCI-Collection</titleabbrev>
<title>La clase OCICollection</title>
<titleabbrev>OCICollection</titleabbrev>
<partintro>
<!-- {{{ ClassName intro -->
<!-- {{{ ClassName intro -->
<section xml:id="ocicollection.intro">
&reftitle.intro;
<para>
Funcionalidad de OCI8 Collection.
Funcionalidades de las colecciones OCI8 Collection.
</para>
<note>
<para>
La clase <classname>OCI-Collection</classname> ha sido renombrada a <classname>OCILob</classname> en PHP 8 y PECL OCI8 3.0.0 para ajustarse a los estándares de nomenclatura de PHP.
La clase <classname>OCI-Collection</classname> fue renombrada a <classname>OCICollection</classname> en PHP 8 OCI8 3.0.0 para alinearse con los estándares de nomenclatura de PHP.
</para>
</note>
</note>
</section>
<!-- }}} -->
<!-- }}} -->
<section xml:id="ocicollection.synopsis">
&reftitle.classsynopsis;
<!-- {{{ Synopsis -->
<classsynopsis>
<classsynopsis class="class">
<ooclass>
<classname>OCICollection</classname>
</ooclass>
<classsynopsisinfo>
<ooclass>
<classname>OCICollection</classname>
</ooclass>
</classsynopsisinfo>
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.ocicollection')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])">
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.ocicollection')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[@role='OCICollection'])">
<xi:fallback/>
</xi:include>
</classsynopsis>
<!-- }}} -->
</section>
</partintro>
&reference.oci8.entities.ocicollection;
</reference>
</section>
</partintro>
&reference.oci8.entities.ocicollection;
</reference>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
@@ -73,4 +65,3 @@ vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@@ -1,26 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: b9e6268918813e27972c644897970b0cdbc6f86e Maintainer: seros Status: ready -->
<!-- Reviewed: yes -->
<!-- EN-Revision: deb6ee36001e5d315c92780db3a6cf64fe4f70bf Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="ocicollection.append" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>OCICollection::append</refname>
<refpurpose>Añade un elemento a la colección</refpurpose>
<refpurpose>Añade un elemento a una colección Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis role="oop">
<methodsynopsis role="OCICollection">
<modifier>public</modifier> <type>bool</type><methodname>OCICollection::append</methodname>
<methodparam><type>string</type><parameter>value</parameter></methodparam>
</methodsynopsis>
<para>
Añade un elemento al final de la colección.
Añade un elemento al final de una colección Oracle.
</para>
</refsect1>
<refsect1 role="parameters">
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
@@ -58,25 +56,24 @@
<entry>8.0.0, PECL OCI8 3.0.0</entry>
<entry>
La clase <classname>OCI-Collection</classname> ha sido renombrada a
<classname>OCICollection</classname> para ajustarse a los estándares de nomenclatura de PHP.
<classname>OCICollection</classname> para alinear con los estándares de nomenclatura de PHP.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><xref linkend="ocicollection.assign" /></member>
<member><xref linkend="ocicollection.assign"/></member>
</simplelist>
</para>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml

View File

@@ -1,24 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: b9e6268918813e27972c644897970b0cdbc6f86e Maintainer: seros Status: ready -->
<!-- Reviewed: yes -->
<!-- EN-Revision: deb6ee36001e5d315c92780db3a6cf64fe4f70bf Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="ocicollection.assign" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>OCICollection::assign</refname>
<refpurpose>Asigna un valor a la colección desde otra colección existente</refpurpose>
<refpurpose>Asigna un valor a una colección desde otra colección Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis role="oop">
<methodsynopsis role="OCICollection">
<modifier>public</modifier> <type>bool</type><methodname>OCICollection::assign</methodname>
<methodparam><type>OCICollection</type><parameter>from</parameter></methodparam>
</methodsynopsis>
<para>
Asigna un valor a la colección desde otra colección previamente
creada. Ambas colecciones deben crearse con
<function>oci_new_collection</function> antes de utilizarlas.
Asigna un valor a una colección, a partir de la colección
<parameter>from</parameter>. Las dos colecciones deben haber sido
creadas con <function>oci_new_collection</function> antes de utilizar
esta función.
</para>
</refsect1>
@@ -30,14 +29,14 @@
<term><parameter>from</parameter></term>
<listitem>
<para>
Una instancia de OCICollection.
Una instancia OCICollection.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
@@ -60,14 +59,14 @@
<entry>8.0.0, PECL OCI8 3.0.0</entry>
<entry>
La clase <classname>OCI-Collection</classname> ha sido renombrada a
<classname>OCICollection</classname> para ajustarse a los estándares de nomenclatura de PHP.
<classname>OCICollection</classname> para alinearse con los estándares de nomenclatura de PHP.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -76,9 +75,8 @@
</simplelist>
</para>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml

View File

@@ -1,26 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: b9e6268918813e27972c644897970b0cdbc6f86e Maintainer: seros Status: ready -->
<!-- Reviewed: yes -->
<!-- EN-Revision: deb6ee36001e5d315c92780db3a6cf64fe4f70bf Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="ocicollection.assignelem" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>OCICollection::assignElem</refname>
<refpurpose>Asigna un valor a un elemento de la colección</refpurpose>
<refpurpose>Asigna un valor a un elemento de una colección Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis role="oop">
<methodsynopsis role="OCICollection">
<modifier>public</modifier> <type>bool</type><methodname>OCICollection::assignElem</methodname>
<methodparam><type>int</type><parameter>index</parameter></methodparam>
<methodparam><type>string</type><parameter>value</parameter></methodparam>
</methodsynopsis>
<para>
Asigna un valor al elemento con índice <parameter>index</parameter>.
Asigna un valor al elemento cuyo índice es <parameter>index</parameter>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -29,7 +27,7 @@
<term><parameter>index</parameter></term>
<listitem>
<para>
El índice del elemento. El primer índice es 0.
El índice del elemento. El primero vale 0.
</para>
</listitem>
</varlistentry>
@@ -37,14 +35,14 @@
<term><parameter>value</parameter></term>
<listitem>
<para>
Puede ser una cadena de caracteres o un número.
Puede ser una &string; o un número.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
@@ -67,14 +65,14 @@
<entry>8.0.0, PECL OCI8 3.0.0</entry>
<entry>
La clase <classname>OCI-Collection</classname> ha sido renombrada a
<classname>OCICollection</classname> para ajustarse a los estándares de nomenclatura de PHP.
<classname>OCICollection</classname> para alinearse con los estándares de nomenclatura de PHP.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -83,9 +81,8 @@
</simplelist>
</para>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml

View File

@@ -1,22 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: b9e6268918813e27972c644897970b0cdbc6f86e Maintainer: seros Status: ready -->
<!-- Reviewed: yes -->
<!-- EN-Revision: deb6ee36001e5d315c92780db3a6cf64fe4f70bf Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="ocicollection.free" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>OCICollection::free</refname>
<refpurpose>Libera los recursos asociados con el objeto colección</refpurpose>
<refpurpose>Libera los recursos asociados con un objeto de colección</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis role="oop">
<methodsynopsis role="OCICollection">
<modifier>public</modifier> <type>bool</type><methodname>OCICollection::free</methodname>
<void/>
</methodsynopsis>
<para>
Libera los recursos asociados con el objeto colección.
Libera los recursos asociados con un objeto de colección.
</para>
</refsect1>
@@ -24,7 +22,7 @@
&reftitle.parameters;
&no.function.parameters;
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
@@ -47,14 +45,14 @@
<entry>8.0.0, PECL OCI8 3.0.0</entry>
<entry>
La clase <classname>OCI-Collection</classname> ha sido renombrada a
<classname>OCICollection</classname> para ajustarse a los estándares de nomenclatura de PHP.
<classname>OCICollection</classname> para alinearse con los estándares de nomenclatura de PHP.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -63,9 +61,8 @@
</simplelist>
</para>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
@@ -86,4 +83,3 @@ vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@@ -1,25 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: b9e6268918813e27972c644897970b0cdbc6f86e Maintainer: seros Status: ready -->
<!-- Reviewed: yes -->
<!-- EN-Revision: deb6ee36001e5d315c92780db3a6cf64fe4f70bf Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="ocicollection.getelem" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>OCICollection::getElem</refname>
<refpurpose>Devuelve el valor de un elemento</refpurpose>
<refpurpose>Devuelve el valor de un elemento de una colección Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis role="oop">
<methodsynopsis role="OCICollection">
<modifier>public</modifier> <type class="union"><type>string</type><type>float</type><type>null</type><type>false</type></type><methodname>OCICollection::getElem</methodname>
<methodparam><type>int</type><parameter>index</parameter></methodparam>
</methodsynopsis>
<para>
Devuelve el valor del elemento cuyo índice es <parameter>index</parameter> (basado en 0).
Devuelve el valor del elemento en el índice <parameter>index</parameter> (comenzando en 0).
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -28,23 +26,21 @@
<term><parameter>index</parameter></term>
<listitem>
<para>
El índice del elemento. El primer índice es 0.
El índice del elemento. El primero vale 1.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve &false; si el elemento no existe; &null; si el elemento es &null;;
un string si el elemento es una columna del tipo de datos string, o un número si es
un campo numérico.
Devuelve &false; si este elemento no existe; &null;, si el elemento es &null;, un string si la columna es de tipo string, y un número si es un campo numérico.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
@@ -60,7 +56,7 @@
<entry>8.0.0, PECL OCI8 3.0.0</entry>
<entry>
La clase <classname>OCI-Collection</classname> ha sido renombrada a
<classname>OCICollection</classname> para ajustarse a los estándares de nomenclatura de PHP.
<classname>OCICollection</classname> para alinearse con los estándares de nomenclatura de PHP.
</entry>
</row>
</tbody>
@@ -76,9 +72,8 @@
</simplelist>
</para>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
@@ -99,4 +94,3 @@ vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@@ -1,22 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: b9e6268918813e27972c644897970b0cdbc6f86e Maintainer: seros Status: ready -->
<!-- Reviewed: yes -->
<!-- EN-Revision: deb6ee36001e5d315c92780db3a6cf64fe4f70bf Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="ocicollection.max" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>OCICollection::max</refname>
<refpurpose>Devuelve el número máximo de elementos de la colección</refpurpose>
<refpurpose>Retorna el número máximo de valores de una colección Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis role="oop">
<methodsynopsis role="OCICollection">
<modifier>public</modifier> <type class="union"><type>int</type><type>false</type></type><methodname>OCICollection::max</methodname>
<void/>
</methodsynopsis>
<para>
Devuelve el número máximo de elementos de la colección.
Retorna el número máximo de valores de una colección Oracle.
</para>
</refsect1>
@@ -24,14 +22,15 @@
&reftitle.parameters;
&no.function.parameters;
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve el número máximo como un entero, o &false; en caso de error.
Retorna el número máximo, en forma de &integer;, o
&false; si ocurre un error.
</para>
<para>
Si el valor devuelto es 0, entonces el número de elementos no está limitado.
Si el valor retornado es 0, entonces el número de elementos no está limitado.
</para>
</refsect1>
@@ -50,7 +49,7 @@
<entry>8.0.0, PECL OCI8 3.0.0</entry>
<entry>
La clase <classname>OCI-Collection</classname> ha sido renombrada a
<classname>OCICollection</classname> para ajustarse a los estándares de nomenclatura de PHP.
<classname>OCICollection</classname> para alinearse con los estándares de nomenclatura de PHP.
</entry>
</row>
</tbody>
@@ -66,9 +65,8 @@
</simplelist>
</para>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml

View File

@@ -1,22 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: b9e6268918813e27972c644897970b0cdbc6f86e Maintainer: seros Status: ready -->
<!-- Reviewed: yes -->
<!-- EN-Revision: deb6ee36001e5d315c92780db3a6cf64fe4f70bf Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="ocicollection.size" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>OCICollection::size</refname>
<refpurpose>Devuelve el tamaño de la colección</refpurpose>
<refpurpose>Devuelve el tamaño de una colección Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis role="oop">
<methodsynopsis role="OCICollection">
<modifier>public</modifier> <type class="union"><type>int</type><type>false</type></type><methodname>OCICollection::size</methodname>
<void/>
</methodsynopsis>
<para>
Devuelve el tamaño de la colección.
Devuelve el tamaño de una colección Oracle.
</para>
</refsect1>
@@ -28,7 +26,7 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve el número de elementos de la colección o &false; en caso de error.
Devuelve el número de elementos de la colección, o &false; en caso de error.
</para>
</refsect1>
@@ -47,25 +45,24 @@
<entry>8.0.0, PECL OCI8 3.0.0</entry>
<entry>
La clase <classname>OCI-Collection</classname> ha sido renombrada a
<classname>OCICollection</classname> para ajustarse a los estándares de nomenclatura de PHP.
<classname>OCICollection</classname> para alinearse con los estándares de nomenclatura de PHP.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><xref linkend="ocicollection.max" /></member>
<member><xref linkend="ocicollection.max"/></member>
</simplelist>
</para>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml

View File

@@ -1,26 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: b9e6268918813e27972c644897970b0cdbc6f86e Maintainer: seros Status: ready -->
<!-- Reviewed: yes -->
<!-- EN-Revision: deb6ee36001e5d315c92780db3a6cf64fe4f70bf Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="ocicollection.trim" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>OCICollection::trim</refname>
<refpurpose>Elimina elementos del final de la colección</refpurpose>
<refpurpose>Elimina los últimos elementos de una colección Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis role="oop">
<methodsynopsis role="OCICollection">
<modifier>public</modifier> <type>bool</type><methodname>OCICollection::trim</methodname>
<methodparam><type>int</type><parameter>num</parameter></methodparam>
</methodsynopsis>
<para>
Elimina el número de elementos dado por <parameter>num</parameter> del final de la
colección.
Elimina los <parameter>num</parameter>
últimos elementos de una colección.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -36,7 +34,7 @@
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
@@ -59,7 +57,7 @@
<entry>8.0.0, PECL OCI8 3.0.0</entry>
<entry>
La clase <classname>OCI-Collection</classname> ha sido renombrada a
<classname>OCICollection</classname> para ajustarse a los estándares de nomenclatura de PHP.
<classname>OCICollection</classname> para alinearse con los estándares de nomenclatura de PHP.
</entry>
</row>
</tbody>
@@ -67,7 +65,6 @@
</informaltable>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -76,9 +73,8 @@
</simplelist>
</para>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml

View File

@@ -1,58 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: b9e6268918813e27972c644897970b0cdbc6f86e Maintainer: seros Status: ready -->
<!-- Reviewed: yes Maintainer: julionc -->
<!-- EN-Revision: 14767af0f05dffa6fdb9b49e1a1f4e9ca7022a60 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<reference xml:id="class.ocilob" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<title>La clase OCI-Lob</title>
<titleabbrev>OCI-Lob</titleabbrev>
<title>La clase OCILob</title>
<titleabbrev>OCILob</titleabbrev>
<partintro>
<!-- {{{ ClassName intro -->
<section xml:id="ocilob.intro">
&reftitle.intro;
<para>
Funcionaliada de OCI8 LOB para objetos grandes binarios (BLOB) y de carácter (CLOB).
</para>
<note>
<para>
La clase <classname>OCI-Lob</classname> ha sido renombrada a <classname>OCILob</classname> en PHP 8 y PECL OCI8 3.0.0 para ajustarse a los estándares de nomenclatura de PHP.
</para>
</note>
</section>
<!-- }}} -->
<section xml:id="ocilob.synopsis">
&reftitle.classsynopsis;
<!-- {{{ Synopsis -->
<classsynopsis>
<ooclass>
<classname>OCILob</classname>
</ooclass>
<classsynopsisinfo>
<ooclass>
<classname>OCILob</classname>
</ooclass>
</classsynopsisinfo>
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.ocilob')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])">
<xi:fallback/>
</xi:include>
</classsynopsis>
<!-- {{{ ClassName intro -->
<section xml:id="ocilob.intro">
&reftitle.intro;
<para>
Funcionalidad OCI8 LOB para los objetos de datos binarios grandes (BLOB) y de caracteres (CLOB).
</para>
<note>
<para>
La clase <classname>OCI-Lob</classname> fue renombrada a <classname>OCILob</classname> en PHP 8 y PECL OCI8 3.0.0 para alinearse con los estándares de nomenclatura de PHP.
</para>
</note>
</section>
<!-- }}} -->
</section>
</partintro>
&reference.oci8.entities.ocilob;
</reference>
<section xml:id="ocilob.synopsis">
&reftitle.classsynopsis;
<!-- {{{ Synopsis -->
<classsynopsis class="class">
<ooclass>
<classname>OCILob</classname>
</ooclass>
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.ocilob')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[@role='OCILob'])">
<xi:fallback/>
</xi:include>
</classsynopsis>
<!-- }}} -->
</section>
</partintro>
&reference.oci8.entities.ocilob;
</reference>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
@@ -73,4 +64,3 @@ vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@@ -1,37 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: b9e6268918813e27972c644897970b0cdbc6f86e Maintainer: seros Status: ready -->
<!-- Reviewed: yes -->
<!-- EN-Revision: deb6ee36001e5d315c92780db3a6cf64fe4f70bf Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="ocilob.append" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>OCILob::append</refname>
<refpurpose>Añade datos a un objeto grande (LOB) desde otro</refpurpose>
<refpurpose>Añade datos a un LOB Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis role="oop">
<methodsynopsis role="OCILob">
<modifier>public</modifier> <type>bool</type><methodname>OCILob::append</methodname>
<methodparam><type>OCILob</type><parameter>from</parameter></methodparam>
</methodsynopsis>
<para>
Añade datos de un objeto grande (LOB) al final de otro.
Añade datos a un LOB Oracle.
</para>
<para>
La escritura del objeto grande con este método fallará si el uso del búfer estaba
previamente habilitado. Se debe deshabilitar el uso del búfer antes de la agregación. Podría
ser necesario vaciar los búferes con <xref linkend="ocilob.flush"/> antes
de deahabilitarlos.
La escritura en un LOB con <function>OCI-Lob->append</function> fallará
si la bufferización ha sido previamente activada. Se debe desactivar
la bufferización antes de añadir datos. Puede ser necesario vaciar los buffers
con la función <xref linkend="ocilob.flush"/>
antes de desactivarla.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>lob_from</parameter></term>
<term><parameter>from</parameter></term>
<listitem>
<para>
El LOB copiado.
@@ -41,7 +40,7 @@
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
@@ -64,14 +63,14 @@
<entry>8.0.0, PECL OCI8 3.0.0</entry>
<entry>
La clase <classname>OCI-Lob</classname> ha sido renombrada a
<classname>OCILob</classname> para ajustarse a los estándares de nomenclatura de PHP.
<classname>OCILob</classname> para alinearse con los estándares de nomenclatura de PHP.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -82,7 +81,7 @@
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
@@ -104,4 +103,3 @@ vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@@ -1,23 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: b9e6268918813e27972c644897970b0cdbc6f86e Maintainer: seros Status: ready -->
<!-- Reviewed: yes -->
<!-- EN-Revision: deb6ee36001e5d315c92780db3a6cf64fe4f70bf Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="ocilob.close" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>OCILob::close</refname>
<refpurpose>Cierra un descriptor de LOB</refpurpose>
<refpurpose>Cierra un LOB Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<methodsynopsis role="OCILob">
<modifier>public</modifier> <type>bool</type><methodname>OCILob::close</methodname>
<void/>
</methodsynopsis>
<para>
Cierra un descriptor de LOB o FILE. Esta función debería usarse únicamente con
<xref linkend="ocilob.writetemporary"/>.
Cierra un LOB Oracle. Esta función debe ser utilizada únicamente
con <xref linkend="ocilob.writetemporary"/>.
</para>
</refsect1>
@@ -25,7 +23,7 @@
&reftitle.parameters;
&no.function.parameters;
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
@@ -48,7 +46,7 @@
<entry>8.0.0, PECL OCI8 3.0.0</entry>
<entry>
La clase <classname>OCI-Lob</classname> ha sido renombrada a
<classname>OCILob</classname> para ajustarse a los estándares de nomenclatura de PHP.
<classname>OCILob</classname> para alinear con los estándares de nombramiento de PHP.
</entry>
</row>
</tbody>
@@ -64,7 +62,7 @@
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:

View File

@@ -1,35 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: b9e6268918813e27972c644897970b0cdbc6f86e Maintainer: seros Status: ready -->
<!-- Reviewed: yes -->
<!-- EN-Revision: deb6ee36001e5d315c92780db3a6cf64fe4f70bf Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="ocilob.eof" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>OCILob::eof</refname>
<refpurpose>Comprueba la marca de final de fichero en un descriptor de objetos grandes</refpurpose>
<refpurpose>Prueba el final del LOB Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis role="oop">
<methodsynopsis role="OCILob">
<modifier>public</modifier> <type>bool</type><methodname>OCILob::eof</methodname>
<void/>
</methodsynopsis>
<para>
Indica si el puntero interno de objetos grandes está al final del LOB.
Verifica si el puntero interno de un LOB está al final.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
&no.function.parameters;
</refsect1>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve &true; si el puntero interno de objetos grandes está al final del LOB.
Otherwise returns &false;.
Devuelve &true; si el puntero interno de LOB ha alcanzado el final
del LOB, y &false; en caso contrario.
</para>
</refsect1>
@@ -48,23 +46,24 @@
<entry>8.0.0, PECL OCI8 3.0.0</entry>
<entry>
La clase <classname>OCI-Lob</classname> ha sido renombrada a
<classname>OCILob</classname> para ajustarse a los estándares de nomenclatura de PHP.
<classname>OCILob</classname> para alinearse con los estándares de nomenclatura de PHP.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Esta función devolverá un error de Oracle si <xref linkend="ocilob.setbuffering"/> está habilitado en el LOB.
Esta función devolverá un error de Oracle si
<xref linkend="ocilob.setbuffering"/> está activo en el LOB.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -73,7 +72,7 @@
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:

View File

@@ -1,32 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: b9e6268918813e27972c644897970b0cdbc6f86e Maintainer: seros Status: ready -->
<!-- Reviewed: yes -->
<!-- EN-Revision: deb6ee36001e5d315c92780db3a6cf64fe4f70bf Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="ocilob.erase" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>OCILob::erase</refname>
<refpurpose>Borra la porción especificada de los datos internos de un LOB</refpurpose>
<refpurpose>Elimina una parte de un LOB Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis role="oop">
<methodsynopsis role="OCILob">
<modifier>public</modifier> <type class="union"><type>int</type><type>false</type></type><methodname>OCILob::erase</methodname>
<methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>offset</parameter><initializer>&null;</initializer></methodparam>
<methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>length</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
<para>
Borra una porción especificada de los datos internos de un LOB comenzando en el
índice dado por <parameter>offset</parameter>. Si se invoca sin parámetros,
borrará todos los datos del LOB.
Elimina la parte del LOB Oracle comenzando en el desplazamiento <parameter>offset</parameter>,
con una longitud de <parameter>length</parameter> bytes.
</para>
<para>
Para BLOBs, el hecho de borrar significa que el valor del LOB existente se sobrescribe con
bytes cero. Para CLOBs, el valor del LOB existente se sobrescribe con espacios.
Para los BLOB, la eliminación significa que el valor existente del LOB
es reemplazado por el carácter 0. Para los CLOB, se utilizan espacios.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -48,11 +45,11 @@
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve el número real de caracteres/bytes borrados &return.falseforfailure;.
Devuelve el número de caracteres/bytes eliminados &return.falseforfailure;.
</para>
</refsect1>
@@ -70,21 +67,21 @@
<row>
<entry>8.0.0, PECL OCI8 3.0.0</entry>
<entry>
<parameter>offset</parameter> y <parameter>length</parameter> ahora son nullable.
<parameter>offset</parameter> y <parameter>length</parameter> ahora son nulos.
</entry>
</row>
<row>
<entry>8.0.0, PECL OCI8 3.0.0</entry>
<entry>
La clase <classname>OCI-Lob</classname> ha sido renombrada a
<classname>OCILob</classname> para ajustarse a los estándares de nomenclatura de PHP.
<classname>OCILob</classname> para alinearse con los estándares de nomenclatura de PHP.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -93,7 +90,7 @@
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
@@ -115,4 +112,3 @@ vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@@ -1,27 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: b9e6268918813e27972c644897970b0cdbc6f86e Maintainer: seros Status: ready -->
<!-- Reviewed: yes -->
<!-- EN-Revision: deb6ee36001e5d315c92780db3a6cf64fe4f70bf Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="ocilob.export" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>OCILob::export</refname>
<refpurpose>Exporta el contenido de un LOB a un fichero</refpurpose>
<refpurpose>Exporta un LOB Oracle a un fichero</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis role="oop">
<methodsynopsis role="OCILob">
<modifier>public</modifier> <type>bool</type><methodname>OCILob::export</methodname>
<methodparam><type>string</type><parameter>filename</parameter></methodparam>
<methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>offset</parameter><initializer>&null;</initializer></methodparam>
<methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>length</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
<para>
Exporta el contenido de un LOB a un fichero.
Exporta un LOB Oracle a un fichero.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -30,15 +28,15 @@
<term><parameter>filename</parameter></term>
<listitem>
<para>
La ruta del fichero.
La ruta de acceso al fichero.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>start</parameter></term>
<term><parameter>offset</parameter></term>
<listitem>
<para>
Indica desde dónde se empieza a exportar.
Indica la posición a partir de la cual debe comenzar la exportación.
</para>
</listitem>
</varlistentry>
@@ -46,14 +44,14 @@
<term><parameter>length</parameter></term>
<listitem>
<para>
Indica la longitud de los datos a exportar.
Indica el tamaño de los datos a exportar.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
@@ -75,14 +73,14 @@
<row>
<entry>8.0.0, PECL OCI8 3.0.0</entry>
<entry>
<parameter>offset</parameter> y <parameter>length</parameter> ahora son nullable.
<parameter>offset</parameter> y <parameter>length</parameter> ahora son nulos.
</entry>
</row>
<row>
<entry>8.0.0, PECL OCI8 3.0.0</entry>
<entry>
La clase <classname>OCI-Lob</classname> ha sido renombrada a
<classname>OCILob</classname> para ajustarse a los estándares de nomenclatura de PHP.
<classname>OCILob</classname> para alinearse con los estándares de nomenclatura de PHP.
</entry>
</row>
</tbody>
@@ -98,7 +96,7 @@
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
@@ -120,4 +118,3 @@ vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@@ -1,25 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: b9e6268918813e27972c644897970b0cdbc6f86e Maintainer: seros Status: ready -->
<!-- Reviewed: yes -->
<!-- EN-Revision: deb6ee36001e5d315c92780db3a6cf64fe4f70bf Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="ocilob.flush" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>OCILob::flush</refname>
<refpurpose>Vacía/escribe el búfer de un LOB al servidor</refpurpose>
<refpurpose>Escribe los LOB Oracle en el disco</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis role="oop">
<methodsynopsis role="OCILob">
<modifier>public</modifier> <type>bool</type><methodname>OCILob::flush</methodname>
<methodparam choice="opt"><type>int</type><parameter>flag</parameter><initializer>0</initializer></methodparam>
</methodsynopsis>
<para>
<function>OCILob::flush</function> en realidad escribe datos en el servidor.
Escribe los LOB Oracle en el disco.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -28,27 +26,28 @@
<term><parameter>flag</parameter></term>
<listitem>
<para>
Por omisión, los recursos no son liberados, aunque usando la bandera
<constant>OCI_LOB_BUFFER_FREE</constant> se puede hacer explícitamente.
Asegúrese de saber lo que está haciendo: la siguiente operación de lectura/escritura a
la misma parte del LOB supondrá un viaje de ida y vuelta al servidor e inicilizará
nuevos recursos de búfer. Se recomienda usar la bandera
<constant>OCI_LOB_BUFFER_FREE</constant> solamente cuando no se vaya a
trabajar más con el LOB.
Por omisión, los recursos no son liberados, pero utilizando
la opción <parameter>flag</parameter> con el valor
<constant>OCI_LOB_BUFFER_FREE</constant>, puede hacerse explícitamente.
Asegúrese de saber bien lo que hace: la próxima lectura
o escritura en el mismo LOB requerirá entonces una petición al servidor,
y la reasignación de recursos. Se recomienda utilizar la opción
<constant>OCI_LOB_BUFFER_FREE</constant> únicamente si ya no se necesita el LOB.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
<para>
Devuelve &false; si el uso del búfer no estaba habilitado u ocurrió un error.
Retorna &false; si la bufferización no ha sido activada,
o si ha ocurrido un error.
</para>
</refsect1>
@@ -67,14 +66,14 @@
<entry>8.0.0, PECL OCI8 3.0.0</entry>
<entry>
La clase <classname>OCI-Lob</classname> ha sido renombrada a
<classname>OCILob</classname> para ajustarse a los estándares de nomenclatura de PHP.
<classname>OCILob</classname> para alinearse con los estándares de nomenclatura de PHP.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -84,7 +83,7 @@
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
@@ -106,4 +105,3 @@ vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@@ -1,22 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: b9e6268918813e27972c644897970b0cdbc6f86e Maintainer: seros Status: ready -->
<!-- Reviewed: yes -->
<!-- EN-Revision: deb6ee36001e5d315c92780db3a6cf64fe4f70bf Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="ocilob.free" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>OCILob::free</refname>
<refpurpose>Libera los recursos asociados con el descriptor del LOB</refpurpose>
<refpurpose>Destruye un puntero de LOB Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis role="oop">
<methodsynopsis role="OCILob">
<modifier>public</modifier> <type>bool</type><methodname>OCILob::free</methodname>
<void/>
</methodsynopsis>
<para>
Libera los recursos asociados con el descriptor, previamente asignados con
Libera los recursos asociados con el recurso, previamente asignado con
<function>oci_new_descriptor</function>.
</para>
</refsect1>
@@ -25,7 +23,7 @@
&reftitle.parameters;
&no.function.parameters;
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
@@ -48,14 +46,14 @@
<entry>8.0.0, PECL OCI8 3.0.0</entry>
<entry>
La clase <classname>OCI-Lob</classname> ha sido renombrada a
<classname>OCILob</classname> para ajustarse a los estándares de nomenclatura de PHP.
<classname>OCILob</classname> para alinearse con los estándares de nomenclatura de PHP.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:

View File

@@ -1,22 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: b9e6268918813e27972c644897970b0cdbc6f86e Maintainer: seros Status: ready -->
<!-- Reviewed: yes -->
<!-- EN-Revision: deb6ee36001e5d315c92780db3a6cf64fe4f70bf Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="ocilob.getbuffering" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>OCILob::getBuffering</refname>
<refpurpose>Devuelve el estado actual del uso del búfer para un objeto grande</refpurpose>
<refpurpose>Devuelve el estado de bufferización LOB de Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis role="oop">
<methodsynopsis role="OCILob">
<modifier>public</modifier> <type>bool</type><methodname>OCILob::getBuffering</methodname>
<void/>
</methodsynopsis>
<para>
Indica si el almacenamiento en búfer para objetos grandes está activado o no.
Devuelve el estado de bufferización LOB de Oracle.
</para>
</refsect1>
@@ -24,12 +22,12 @@
&reftitle.parameters;
&no.function.parameters;
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve &false; si el almacenamiento en búfer de objetos grandes está desactivado, y &true;
si se utiliza dicho almacenamiento.
Devuelve &false; si la bufferización de los LOB está desactivada, y &true;
si está activada.
</para>
</refsect1>
@@ -48,14 +46,14 @@
<entry>8.0.0, PECL OCI8 3.0.0</entry>
<entry>
La clase <classname>OCI-Lob</classname> ha sido renombrada a
<classname>OCILob</classname> para ajustarse a los estándares de nomenclatura de PHP.
<classname>OCILob</classname> para alinearse con los estándares de nomenclatura de PHP.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -64,7 +62,7 @@
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:

View File

@@ -1,26 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: b9e6268918813e27972c644897970b0cdbc6f86e Maintainer: seros Status: ready -->
<!-- Reviewed: yes -->
<!-- EN-Revision: deb6ee36001e5d315c92780db3a6cf64fe4f70bf Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="ocilob.import" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>OCILob::import</refname>
<refpurpose>Importa datos de un fichero a un LOB</refpurpose>
<refpurpose>Importa un fichero en LOB Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis role="oop">
<methodsynopsis role="OCILob">
<modifier>public</modifier> <type>bool</type><methodname>OCILob::import</methodname>
<methodparam><type>string</type><parameter>filename</parameter></methodparam>
</methodsynopsis>
<para>
Escribe datos desde el fichero dado por <parameter>filename</parameter> a la posición
actual del objeto grande.
Escribe los datos del fichero <parameter>filename</parameter>
en el LOB, a partir de la posición actual.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -29,14 +27,14 @@
<term><parameter>filename</parameter></term>
<listitem>
<para>
La ruta del fichero.
Ruta de acceso al fichero.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
@@ -59,14 +57,14 @@
<entry>8.0.0, PECL OCI8 3.0.0</entry>
<entry>
La clase <classname>OCI-Lob</classname> ha sido renombrada a
<classname>OCILob</classname> para ajustarse a los estándares de nomenclatura de PHP.
<classname>OCILob</classname> para alinearse con los estándares de nomenclatura de PHP.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -76,7 +74,7 @@
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:

View File

@@ -1,37 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: b9e6268918813e27972c644897970b0cdbc6f86e Maintainer: seros Status: ready -->
<!-- Reviewed: yes -->
<!-- EN-Revision: deb6ee36001e5d315c92780db3a6cf64fe4f70bf Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="ocilob.load" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>OCILob::load</refname>
<refpurpose>Devuelve el contenido de un objeto grande</refpurpose>
<refpurpose>Devuelve el contenido de un LOB</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis role="oop">
<methodsynopsis role="OCILob">
<modifier>public</modifier> <type class="union"><type>string</type><type>false</type></type><methodname>OCILob::load</methodname>
<void/>
</methodsynopsis>
<para>
Devuelve el contenido de un objeto grande. Ya que la ejecución de un script finaliza
cuando se alcanza el valor de <link linkend="ini.memory-limit">memory_limit</link>,
asegúrese de que el LOB no execede dicho límite. En la mayoría de los casos
se recomienda usar en su lugar <xref linkend="ocilob.read"/>.
Lee el contenido de un LOB Oracle. El script puede ser interrumpido debido a
<link linkend="ini.memory-limit">memory_limit</link>, si este
último excede el límite. En la mayoría de los casos, se
recomienda utilizar la función
<xref linkend="ocilob.read"/> en su lugar. En caso de error, <function>OCI-Lob->load</function> devuelve &false;.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
&no.function.parameters;
</refsect1>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve el contenido del objeto, o &false; en caso de error.
Devuelve el contenido del objeto, o &false; si ocurre un error.
</para>
</refsect1>
@@ -50,14 +49,14 @@
<entry>8.0.0, PECL OCI8 3.0.0</entry>
<entry>
La clase <classname>OCI-Lob</classname> ha sido renombrada a
<classname>OCILob</classname> para ajustarse a los estándares de nomenclatura de PHP.
<classname>OCILob</classname> para alinearse con los estándares de nomenclatura de PHP.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -66,7 +65,7 @@
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
@@ -88,4 +87,3 @@ vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@@ -1,31 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: b9e6268918813e27972c644897970b0cdbc6f86e Maintainer: seros Status: ready -->
<!-- Reviewed: yes -->
<!-- EN-Revision: 665c1d6da54067f8dcd5eb1a292aa03f5bc0e2d4 Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="ocilob.read" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>OCILob::read</refname>
<refpurpose>Lee parte del objeto grande</refpurpose>
<refpurpose>Lee una parte de un LOB Oracle</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis role="oop">
<methodsynopsis role="OCILob">
<modifier>public</modifier> <type class="union"><type>string</type><type>false</type></type><methodname>OCILob::read</methodname>
<methodparam><type>int</type><parameter>length</parameter></methodparam>
</methodsynopsis>
<para>
Lee <parameter>length</parameter> bytes desde la posición actual del
puntero interno del LOB.
</para>
<para>
La lectura se detiene cuando se han leído <parameter>length</parameter> bytes o
se alcance el final del objeto grande. El puntero interno del objeto grande
será desplazado a la cantidad de bytes leídos.
Lee <parameter>length</parameter> bytes (BLOB) o caracteres (CLOB)
a partir de la posición actual del LOB.
</para>
<para>
La lectura se detiene cuando <parameter>length</parameter> bytes han sido leídos para un BLOB,
cuando <parameter>length</parameter> caracteres han sido leídos para un CLOB,
o cuando se alcanza el final del LOB. El puntero del LOB será desplazado por esta lectura
del número de bytes/caracteres leídos.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
@@ -34,18 +33,19 @@
<term><parameter>length</parameter></term>
<listitem>
<para>
La longitud de los datos a leer, en bytes. Los valores grandes serán redondeados a 1 MB.
El tamaño de los datos a leer, en bytes para un BLOB, en caracteres para un CLOB.
Los valores grandes serán redondeados al MB inferior.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve el contenido como un string, &return.falseforfailure;.
Devuelve el contenido, en forma de un &string; &return.falseforfailure;.
</para>
</refsect1>
@@ -64,14 +64,14 @@
<entry>8.0.0, PECL OCI8 3.0.0</entry>
<entry>
La clase <classname>OCI-Lob</classname> ha sido renombrada a
<classname>OCILob</classname> para ajustarse a los estándares de nomenclatura de PHP.
<classname>OCILob</classname> para alinearse con los estándares de nomenclatura de PHP.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
@@ -81,9 +81,8 @@
</simplelist>
</para>
</refsect1>
</refentry>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
@@ -104,4 +103,3 @@ vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

Some files were not shown because too many files have changed in this diff Show More