Insertar/actualizar un CLOB/BLOB en Oracle con PHP

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);
Publicado en Base de Datos, Desarrollo, Oracle, PHP

Split en PHP

La funcion explode es la forma actual que se tiene para hacer un split en php, este devuelve un arreglo con la cantidad de elementos que resultan de encontrar el caracter separador. En mi caso tuve que encontrar la @ para poder separar el nombre de usuario del servidor. Basado en esto:

$email_separado = explode('@',$email_a_separar);
$nombreUsuario= $email_separado[0]; 
$servidor =  $email_separado[1];
Publicado en Desarrollo, PHP

Validar email con PHP

Buscando las forma más seguras de validar email dentro de php, paseandome por un monton de expresiones regulares encontre una linea que me ha funcionado perfectamente (valida para php 5.x)

if(filter_var($email_a_validar, FILTER_VALIDATE_EMAIL)){
  //exito
}
Publicado en Desarrollo, PHP

Split en Oracle a través de una expresion regular

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).

Publicado en Base de Datos, Desarrollo, Oracle

Configurando SQLDeveloper hacia Oracle RAC

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.

Publicado en Base de Datos, Desarrollo, Java, Oracle

¿Porqué SOA?

Yo creo que SOA más que una evolución natural de las TI fue una necesidad. Muchos alumnos me preguntan más de una vez porque las empresas tienen distintos sistemas para lo mismo, bases de datos de clientes no consolidadas, cosas en donde la teoría nos indica que esta mal pensado o mal construido.

La verdad es que los negocios se mueven por si solos, y obligan a que la tecnología se adapte. O sea, muchas veces cuando una multinacional llega a un pais elige a una o mas empresas para comprar, cada una de las cuales tiene lineamientos TI distintos, lo que implica que luego de la compra hay que proveer recursos para fusionar bases de datos, eliminar productos por el licenciamiento, etc.

SOA aqui llega como ayuda para que todas estas integraciones puedan provocarse, para TI el argumento debe ir por

Reuso. O sea, crear nuevos procesos de forma rápida.
Composición. La capacidad de alterar un proceso de negocio de forma rapida y rentable.
La capacidad de cambiar un sistema incrementalmente. Cambiar de proveedores, extender servicios, modificar proveedores y consumidores de servicios.
La capacidad de construir un sistema incrementalmente. Esta es una de las bondades de SOA.

Pero quiero ir más alla, creo que convencer a TI no es lo díficil, sino que en un plano gerencial, responder a la pregunta ¿porque SOA? no tiene los mismos argumentos, pero si la misma raíz.

Reducción de costos en el desarrollo de sistemas. Si la empresa se orienta a los servicios una de las primeras cosas que debe definir son los datos empresariales, obligando a la empresa a conocerse a si misma. Lo que provoca un estudio de los procesos de negocio. Teniendo esto como base, la inserción de un nuevo sistema será con un menor costo, ya que los procesos serán conocidos y las estructuras también

Reducción del ‘Time to market’. El reuso de servicios empresariales, además de la reutilización de las entidades empresariales (o datos de empresa) reducen el tiempo de desarrollo de un nuevo sistema, debido a que este se adhiere a las normativas creadas, pero además reutiliza servicios se negocio o procesos de negocio, logrando una sinergía de sistemas.

Procesos de negocio adaptable a cambios. Uno de los aplicativos muy ligados a SOA son los BPM (Bussiness Process Modeler), para quienes hemos trabajado con estas herramientas, la posibilidad de tener un repositorio de servicios granular posibilita la construcción de procesos de negocio de forma rápida es más cercana cuando existe una implantación de SOA bien manejada. Además de una creación rápida, las modificaciones son tanto más rapidas que permite una mejor adaptación a los negocios.

Mejora en la experiencia del Cliente. El tener mejores procesos, poder tener la capacidad de ofrecer servicios multicanal, debido a la reutilización tecnológica, cae a través del tiempo en una mejor percepción de los clientes a los cuales está focalizado el servicio.

Ahora bien, para implantar SOA debes seguir ciertos pasos. No esperes pasar de un día para otro a SOA si no existen definiciones de negocio claras, creo que el primer paso de una empresa es conocerse a sí misma (en cuanto a datos y procesos) antes de querer hacer algo.

Publicado en Arquitectura de Software, Capacitacion, SOA