Archive for the ‘Oracle’ Category

Problemas con las ñ y tildes en Oracle + PHP + Moodle

miércoles, marzo 6th, 2013

Si ya configuraste el instant client de oracle para que puedas accesar con PHP a la base de datos, y tienes problemas con las ñ o tildes, fijate si en las variables de entorno puedes ubicar la variable

export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

Con esto la extracción de datos a pantalla se tiene que si aparecen las ñ y tilde

ORA-24408 Error de conexion a Oracle desde Moodle

jueves, febrero 28th, 2013

En una configuracion dond participan 7 servidores moodle apuntando a la misma base de datos Oracle 11g se produjo el siguiente error

Debug info: ORA-24408: could not generate unique server group name
Error code: dbconnectionfailed
Stack trace:

line 205 of /lib/dml/oci_native_moodle_database.php: dml_connection_exception thrown
line 344 of /lib/dmllib.php: call to oci_native_moodle_database->connect()
line 476 of /lib/setup.php: call to setup_DB()
line 31 of /config.php: call to require_once()
line 31 of /index.php: call to require_once()

Esto se debe a que el nombre del host esta mal configurado o lo resuelve mal. Por lo que si editas el achivo /etc/sysconfig/network

[root@servername mnt]# more /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=servername

Debe ser igual al configurado en /etc/hosts, aqui yo convenientemente introduzco el servername en primer lugar, para que sea lo primero en reconocer.

127.0.0.1   servername  localhost localhost.localdomain 
::1         servername  localhost localhost.localdomain 

Insertar/actualizar un CLOB/BLOB en Oracle con PHP

martes, febrero 26th, 2013

Este es el codigo que me dió finalmente resultado para la insercion de un CLOB de Oracle a través de PHP.

$valor='hola';
$conn= oci_connect($USER, $PASSWD, $CONNECTION);
$query= "Insert into tabla (ID, DATA) values (1,empty_clob()) RETURNING DATA INTO :aClob";
$stid= oci_parse($conn, $query);
$clob = oci_new_descriptor($conn, OCI_D_LOB);
oci_bind_by_name($stid, ":aClob", $clob, -1, OCI_B_CLOB); 
$r= oci_execute($stid, OCI_DEFAULT);
$clob->save($valor);
oci_commit($conn); 
$clob->free();
oci_free_statement($stid);

Split en Oracle a través de una expresion regular

jueves, enero 31st, 2013

Existe una funcion en oracle que puede ser utilizada para hacer el split, que es tan comun en lenguajes de programación, esta es regexp_substr. La diferencia con un split normal es que esta te extrae solo el principio de la cadena, a menos que establezcas otra posición de comienzo.

Enel ejemplo

select regexp_substr( 'una cadena','[^ ]+') from dual

Se extraera ‘una'(entiendase qu despues del simbolo ^ hay un espacio).

Configurando SQLDeveloper hacia Oracle RAC

viernes, enero 4th, 2013

Complementando información anteriormente dada, el string e conexion a RAC de Oracle también se define en el caso de SQL Developer, pero como una configuracion avanzada. O sea, se debe establecer de esta forma para llagar al RAC

sqldeveloper_rac

Como aqui puedes ver en la configuracion estandar no puedes cambiar el string de conexión, por lo que es necesario la avanzada.

impdp mapeando además el esquema

viernes, octubre 26th, 2012

Como complemento a algo escrito anteriormente conr especto al mapeo de tablespace, también se puede cambiar el esquema que viene por otro previamente configurado en la aplicación.

El comando (complemento del mostrado anteriormente)

 impdp user/password@sid directory=export dumpfile=backup1.dmp logfile=backup.log remap_tablespace=TS_SCHEMA_SDAT:SCHEMA_DAT,TS_SCHEMA_SIDX:SCHEMA_IND remap_schema=viejo_escquema:nuevo_esquema