Funciones

Las funciones de manejo de caracteres alfanuméricos aceptan argumentos de tipo carácter y retornan caracteres o valores numéricos.
Las siguientes son algunas de las funciones que ofrece Oracle para trabajar con cadenas de caracteres:
chr(x): retorna un carácter equivalente al código enviado como argumento "x".
 Ejemplo:
select chr(65) from dual;-- retorna 'A'.
select chr(100) from dual;-- retorna 'd'.
concat(cadena1,cadena2): concatena dos cadenas de caracteres; es equivalente al operador
 Ejemplo:
select concat('Buenas',' tardes') from dual;--retorna 'Buenas tardes'.
initcap(cadena): retorna la cadena enviada como argumento con la primera letra (letra capital) de cada palabra en mayúscula.
 Ejemplo:
select initcap('buenas tardes alumno') from dual;--retorna 'Buenas Tardes Alumno'.
lower(cadena): retorna la cadena enviada como argumento en minúsculas. "lower" significa reducir en inglés.
 Ejemplo:
select lower('Buenas tardes ALUMNO') from dual;--retorna "buenas tardes alumno".
upper(cadena): retorna la cadena con todos los caracteres en mayúsculas.
 Ejemplo:
select upper('www.oracle.com') from dual;-- 'WWW.ORACLE.COM'
lpad(cadena,longitud,cadenarelleno): Retorna la cantidad de caracteres especificados por el argumento "longitud", de la cadena enviada como primer argumento (comenzando desde el primer caracter); si "longitud" es mayor que el tamaño de la cadena enviada, rellena los espacios restantes con la cadena enviada como tercer argumento (en caso de omitir el tercer argumento rellena con espacios); el relleno comienza desde la izquierda.
 Ejemplos:
select lpad('alumno',10,'xyz') from dual;-- retorna 'xyzxalumno'
select lpad('alumno',4,'xyz') from dual;-- retorna 'alum'
rpad(cadena,longitud,cadenarelleno): retorna la cantidad de caracteres especificados por el argumento "longitud", de la cadena enviada como primer argumento (comenzando desde el primer caracter); si "longitud" es mayor que el tamaño de la cadena enviada, rellena los espacios restantes con la cadena enviada como tercer argumento (en caso de omitir el tercer argumento rellena con espacios); el relleno comienza desde la derecha (último caracter).
 Ejemplos:
select rpad('alumno',10,'xyz') from dual;-- retorna 'alumnoxyzx'
select rpad('alumno',4,'xyz') from dual;-- retorna 'alum'
ltrim(cadena1,cadena2): borra todas las ocurrencias de "cadena2" en "cadena1", si se encuentran al comienzo; si se omite el segundo argumento, se eliminan los espacios.
 Ejemplo:
select ltrim('la casa de la cuadra','la') from dual;-- ' casa de la cuadra'
select ltrim(' es la casa de la cuadra’,’ la') from dual;-- no elimina ningún carácter
select ltrim(' la casa') from dual;-- 'la casa'
rtrim(cadena1,cadena2): borra todas las ocurrencias de "cadena2" en "cadena1", si se encuentran por la derecha (al final de la cadena); si se omite el segundo argumento, se borran los espacios.
 Ejemplo:
select rtrim('la casa lila','la') from dual;-- 'la casa li'
select rtrim('la casa lila ','la') from dual;-- no borra ningún carácter
select rtrim('la casa lila ') from dual; --'la casa lila'
trim(cadena): retorna la cadena con los espacios de la izquierda y derecha eliminados. "Trim" significa recortar.
 Ejemplo:
select trim(' Oracle ') from dual;--'oracle'
replace (cadena, subcade1,subcade2): retorna la cadena con todas las ocurrencias de la subcadena de reemplazo (subcade2) por la subcadena a reemplazar (subcae1).
Ejemplo:
select replace('xxx.oracle.com','x','w') from dual;
retorna "www.oracle.com'.
substr(cadena,inicio,longitud): devuelve una parte de la cadena especificada como primer argumento, empezando desde la posición especificada por el segundo argumento y de tantos caracteres de longitud como indica el tercer argumento.
 Ejemplo:
select substr('www.oracle.com',1,10) from dual;-- 'www.oracle'
select substr('www.oracle.com',5,6) from dual;-- 'oracle'
length(cadena): retorna la longitud de la cadena enviada como argumento. "lenght" significa longitud en inglés.
 Ejemplo:
select length('www.oracle.com') from dual;-- devuelve 14.
instr (cadena,subcadena): devuelve la posición de comienzo (de la primera ocurrencia) de la subcadena especificada en la cadena enviada como primer argumento. Si no la encuentra retorna 0.
 Ejemplos:
select instr('Jorge Luis Borges','or') from dual;-- 2
select instr('Jorge Luis Borges','ar') from dual;-- 0, no se encuentra
translate(): reemplaza cada ocurrencia de una serie de caracteres con otra serie de caracteres. La diferencia con "replace" es que aquella trabaja con cadenas de caracteres y reemplaza una cadena completa por otra, en cambio "translate" trabaja con caracteres simples y reemplaza varios. En el siguiente ejemplo se especifica que se reemplacen todos los caracteres "O" por el carácter "0", todos los caracteres "S" por el carácter "5" y todos los caracteres "G" por "6":
 Ejemplo:
select translate ('JORGE LUIS BORGES','OSG','056') from dual;--'J0R6E LUI5 B0R6E5'
Se pueden emplear estas funciones enviando como argumento el nombre de un campo de tipo carácter.
DECODE.- Traduce una expresión a un valor de retorno. Si expr es igual a value1, la función devuelve Return1. Si expr es igual a value2, la función devuelve Return2. Y asi sucesivamente. Si expr no es igual a ningun valor la funcion devuelve el valor por defecto.
DECODE(expr, value1 [, return1, value2, return2....,] default )
 Ejemplo:
Si ejecutamos: SELECT DECODE(ESTADO,0,'bien',1,'regular','mal') FROM T_PEDIDOS;
Devuelve: bien, regular o mal
MANEJO DE CONEXIONES
La extensión oci8 le ofrece 3 funciones diferentes para conectarse con Oracle. Depende de usted usar la función más apropiada para su aplicación, y la información en esta sección tiene la intención de ayudarle a realizar una selección informada.
Conectarse a un servidor Oracle es una operación razonablemente costosa, en términos del tiempo que toma en ser completada. La función oci_pconnect() usa un caché persistente de conexiones que puede ser re-usado a través de peticiones de diferentes scripts. Esto quiere decir que usualmente sólo se incurrirá en el costo de conexión una vez por proceso php (o hijo de apache).
Si su aplicación se conecta a Oracle usando un conjunto de credenciales diferente para cada usuario web, el caché persistente usado por oci_pconnect () será menos útil a medida que el número de usuarios concurrentes se incrementa, al punto en que puede empezar a afectar adversamente el rendimiento general de su servidor Oracle debido al mantenimiento de demasiadas conexiones en reposo. Si su aplicación está estructurada de este modo, es recomendable que configure su aplicación usando los parmámetros oci8.max_persistent y oci8.persistent_timeout (estos le darán control sobre el tamaño y tiempo de vida del caché de conexiones persistentes) o use oci_connect () en su lugar.
Tanto oci_connect () como oci_pconnect () emplean un caché de conexiones; si realiza múltiples llamadas a oci_connect () en un script dado, usando los mismo parámetros, la segunda llamada y demás después de ésta devolverán el gestor de conexión existente. El caché usado por oci_connect () es limpiado al final de la ejecución del script, o cuando se cierra el gestor de conexión explícitamente. oci_pconnect () tiene un comportamiento similar, aunque su caché es mantenido por separado y sobrevive entre múltiples peticiones.
Es importante recordar esta característica del uso de cachés, ya que da la apariencia de que dos gestores no están aislados transaccionalmente (en realidad son el mismo gestor de conexión, así que no hay separación de ningún tipo). Si su aplicación necesita dos conexiones separadas, aisladas transaccionalmente, debería usar oci_new_connect ().
oci_new_connect () siempre crea una nueva conexión al servidor Oracle, independientemente de cualquier otra conexión que pueda existir. Las aplicaciones con alto tráfico web deberían tratar de evitar el uso de oci_new_connect (), especialmente en las secciones más ocupadas de la aplicación.
 Tipos de datos soportados por el controlador
El controlador soporta los siguientes tipos cuando enlaza parámetros con la función oci_bind_by_name():
SQLT_NTY Asigna un tipo nativo de colección desde un objeto colección PHP, tal como aquellos creados por oci_new_collection().
SQLT_BFILEE Asigna un descriptor nativo, tal como aquellos creados por oci_new_descriptor().
SQLT_CFILEE Asigna un descriptor nativo, tal como aquellos creados por oci_new_descriptor().
SQLT_CLOB Asigna un descriptor nativo, tal como aquellos creados por oci_new_descriptor().
SQLT_BLOB Asigna un descriptor nativo, tal como aquellos creados por oci_new_descriptor().
SQLT_RDD Asigna un descriptor nativo, tal como aquellos creados por oci_new_descriptor().
SQLT_NUM Convierte el parámetro PHP a un tipo largo 'C', y lo enlaza a ese valor.
SQLT_RSET Asigna un gestor de sentencia nativo, tal como aquellos creados por oci_parse() o aquellos recuperados desde otras consultas OCI. SQLT_CHR y cualquier otro tipo Convierte el parámetro PHP a un tipo cadena y lo enlaza como una cadena.
 Los siguientes tipos son soportados cuando se recuperan columnas desde un conjunto de resultados:
SQLT_RSET Crea un recurso de sentencia oci para representar el cursor.
SQLT_RDD Crea un objeto ROWID.
SQLT_BLOB Crea un objeto LOB.
SQLT_CLOB Crea un objeto LOB.
SQLT_BFILE Crea un objeto LOB.
SQLT_LNG Enlazado como SQLT_CHR, devuelto como una cadena
SQLT_LBI Enlazado como SQLT_BIN, devuelto como una cadena
Nota: Any other type Enlazado como SQLT_BIN, devuelto como una cadena. Estas funciones le permiten acceder a bases de datos Oracle 10, Oracle 9, Oracle 8 y Oracle 7 usando la Interfaz de Llamados Oracle (OCI por sus siglas en Inglés). Ellas soportan la vinculación de variables PHP a recipientes Oracle, tienen soporte completo LOB, FILE y ROWID, y le permiten usar variables de definición entregadas por el usuario.

FUNCIONES DE ORACLE 8
Las Funciones permiten Acceder una base de Datos Call_Interface Oracle8 y Oracle7_ las usan en Oracle8 (oci8). Las librerías que necesitarán clientes de Oracle8.
La extensión es This más que estándar las flexibles de Oracle_ soporta el enlace de variables locales y Globales de PHP con marcadores de posición de Oracle, tiene soporte completo el párrafo LOB, FILE y ROWID y le permiten usar las variables definidas por el usuario.
Funciones:
OCIBindByName.- Enlaza Una variable de PHP un marcador de posición de las Naciones Unidas de Oracle
ocicancel.- Cancelar la lectura desde el cursor
ocicloselob .- Cierra descriptor LOB
ocicollappend.- Anexar un objeto a la colección
ocicollassign.- Asignar una colección de otra colección existente
ocicollassignelem .- Asignar a la recogida en el índice ndx
ocicollgetelem .- Recuperar el valor al índice de NDX colección
ocicollmax Volver el valor máximo de un colección. Por un VARRAY esta es la longitud máxima de la matriz
ocicollsize .- Devuelve el tamaño de una colección
ocicolltrim.- Trim num elementos desde el final de una colección
OCIColumnIsNULL.- Comprueba Si Una Columna Una es NULL
OCIColumnName .- Devuelve El Nombre de Una columna
ocicolumnprecision .- Precisión de una columna
ocicolumnscale.- Escala de una columna
OCIColumnSize.- Devuelve El Tamaño de la Columna
OCIColumnType.- Devuelve El Tipo de Dato DE UNA columna
ocicolumntyperaw .- Tipo de datos de una columna
OCICommit.- Transacciones Confirma Pendientes
OCIDefineByName .- Usa variable uña de PHP para el define_step durante una sentencia SELECCIONAR
OCIError.- Devuelve El último error de stmt | conn | global_ Si no ocurre ningún error devuelve falso
OCIExecute .- Ejecuta una sentencia
OCIFetch.- Busca la fila siguiente en el result_buffer
OCIFetchInto .- Busca la fila siguiente dentro del result_array
OCIFetchStatement.- Busca todas la filas de resultados de las Naciones Unidas de la ONU array_ Dentro
ocifreecollection .- Elimina objeto de colección
OCIFreeCursor.- Libera todos los recursos asociados con cursor
ocifreedesc .- Borra un descriptor de objeto grande
OCIFreeStatement .- Libera todos los recursos asociados de una sentencia
OCIInternalDebug.- Habilita o deshabilita la salida del depurador interno, por defecto Este está deshabilitado
ociloadlob .- Carga un objeto grande
OCILogoff.- Termina con la conexión a Oracle
OCILogon .- Establece la conexión con Oracle
ocinewcollection.- Iniciar una nueva colección
OCINewCursor .- Devuelve nuevo cursor de las Naciones Unidas (Statement_Handle) uso esto párr Ref_cursors enlazar!
OCINewDescriptor.- Inicializa un nuevo descriptor vacío LOB / FILE (LOB Por defecto)
OCINLogon.- Conecta una base de datos Oracle con una nueva usando conexión. Devuelve una nueva sesión
OCINumCols .- Devuelve el número de columnas resultantes en una sentencia
OCIParse.- Analiza una consulta devuelve y sentencia
OCIPLogon.- Conecta una base de datos Oracle, usando una Conexión persistente. Devuelve una nueva sesión
OCIResult.- Devuelve el valor de una columna en la fila buscada
OCIRollback.- Restablece todas las transacciones
OCIRowCount.- Obtiene el número de filas afectadas
ocisavelob .- Guarda un objeto grande
ocisavelobfile .- Guarda un objeto grande archivo
OCIServerVersion .- Devuelve una cadena conteniendo información de una versión cerca del servidor
ocisetprefetch.- Pone el número de filas que se prefetched
OCIStatementType.- Devuelve el tipo de una sentencia OCI_
ociwritelobtofile.- Guarda un objeto grande archivo
ociwritetemporarylob .- Escribe burbuja temporal