ORA-01400: cannot insert null into md_projects table (MySQL a Oracle)


Este error aparece cuando tratas de exportar una base de datos MySQL a Oracle ,damos por entendido que ya has creado el esquema en la base de datos destino y que ya has realizado la conexión y que tienes acceso.


Procedemos a ejecutar el asistente de migración que tiene SQL Developer y seguimos los pasos que nos indica.








Una vez que se realizan los pasos al final de la misma aparece un error como  este ... 


"ORA-01400: cannot insert null into md_projects table"


SOLUCIÓN : 

Lo único que se tiene que hacer es verificar que el usuario en la base de datos destino (ORACLE) tenga los siguientes permisos (CONNECT , RESOURCE y CREATE VIEW) 







Los permisos los otorga el dba o dueño de la base de datos , una vez otorgado los permisos al usuario ORACLE , se procede a realizar la importación y todo deberá terminar OK. 



Espero les sea de ayuda. 



Contacto:
twitter :  @atmorphius
facebook :  www.facebook.com/AtmorphiusOddity


Como ejecutar un WebService .Net desde el iPad ?

Aqui nuestro escenario:

Tenemos un servicio web creado en .net que  inserta 2 datos en una tabla de Oracle, la idea es que este servicio web pueda ser  ejecutado con un simple botón desde el iPad.


Aqui tenemos nuestro webservice  creado en .net y montado en  un Windows2003 Server se llama ipadtestservice.
















Accedemos a nuestra base de datos de prueba en Oracle , el nombre de la tabla  es TEST_DATOS la cual contiene 3 registros, verificamos que exista.


Ejecutamos una simple sentencia para verificar los datos Select * from TEST_DATOS.














Procedemos a probar nuestro servicio web y verificar que este funcionando correctamente, los parametros que le enviaremos serán "111" y "222" para después verificar que efectivamente los datos estén en la tabla creada.













El servico  se ejecutó  con éxito y vémos que muestra un mensaje que dice "ready"














Verificamos que nuestra tabla se haya actualizado, y efectivamente los datos enviados se encuentran en nuestra tabla.














El siguiente paso ahora es crear nuestro  un proyecto iPad llamado CallWebService con XCode (View-based Application), Agregaremos un Round Rect Button a nuestra vista y posterior a ello crearemos un evento llamado CallWService , el cual será llamado cuando le demos un click a nuestro botón.



















En nuestra clase  CallWebServiceViewController.h  creamos nuestra funcion

 - (IBAction)CallWService;


y en CallWebServiceViewController.m  escribimos el siguiente codigo , que es la funcion que ejecutará nuestro servicio web.

nuestros datos de prueba serán   "888" y "999" respectivamente.


- (IBAction)CallWService
{
NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL    URLWithString:@"http://server:port/ipadtestservice/service.asmx/insertavalor?intClave=888&intvalor=999"]
cachePolicy:NSURLRequestUseProtocolCachePolicy 
timeoutInterval:60.0];
NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self];

    if (theConnection) {
         NSMutableData *receivedData = [[NSMutableData data] retain];
         // AQUI SE RECIBEN LOS DATOS
      } 
    else {
         // AQUI EN CASO DE QUE LA CONEXION FÁLLE
         }
}




Aqui ligamos la función ya creada a nuestro botón obviamente utilizando el Interface Builder.



El evento que debemos escoger para que funcione es Touch Up Inside















Y listo guardamos todo y procedemos a ejecutar nuestro proyecto y verificar que los datos se hayan insertado de forma correcta.



Mandamos llamar nuestra funcion.


Aqui se esta comunicando con el servicio web


Verificamos nuestros datos.















Listo , espero sea de gran ayuda, ya lo que los webservices hagan solo será parte de nuestra necesidad o de nuestra imaginación.

Jdeveloper 11g & BPM 11G (Primeras Impresiones)

Recientemente he instalado la ultima version de JDeveloper (11.1.1.3.0) ,el objetivo crear un  proyecto BPM desde Jdev y poder publicarlo en mi soasuite.

Las primeras impresiones son realmente buenas , instalé la herramienta y no tuve ningun problema, despues tuve que descargar las extensiones para el Oracle BPM 11g y Oracle SOA Composite Editor respectivamente.

Creas un BPM Application  no configuramos nada en especial, el objetivo es verificar que no exista ningun problema al momento de deployar el proyecto al soasuite.

Ya una vez creado, das de alta tu Application Server y listo solo le di un deploy y por default ya me crea todo la herramienta , no tengo que crear alguna otra cosa, y que creen , "No marco ningún error".  ja ! raro no ?? je jeje seguro más adelante habrá cosas o alguna barreras.

les dejo algunas de las imagenes




































Aqui ya vemos nuestro proyecto que efectivamente esta ya deployado en el soasuite 11g


























Y bueno pues seguiremos probando la herramienta . . . 

Instalar Jdeveloper 11g on Mac OS X Snow Leopard

Por si se preguntaban como instalar el Jdeveloper 11G sobre Mac Os X SnowLeopard -- lo mejor de todo es que corre a 64 bits !!!





Espero sea de ayuda !

Conectar NOKIA N73 RM(132) via bluetooth con Macbook


Hace un par de dias compré un Nokia N73 rm-132 y tuve el gran problema de no poder utilizar la conexion bluetooh con mi Macbook. asi que me di a la tarea de investigar y bueno lo único que hay que hacer es, actualizar el firmware del telefono.

Datos de fabrica:

rm-132 nokia n73(A6.01)
firmware v 4.0738.3.1.1 18-09-2007


Datos actuales

Firmware : v 4.0839.42.1.1
RM-132 Nokia N73 (19)

Primero necesitamos descargar 2 aplicaciones necesarias

NEMESIS SERVICES SUITE
(v. 1.0.38.15)


NOKIA SOFTWARE UPDATER
(v 1.7.3 en)

Necesitamos instalar ambas aplicaciones (solo hay que dar "next") , reiniciamos la PC y continuamos.

Primero debemos cambiar el codigo del N73 , aqui hay un video de como hacerlo utilizando el NSS

CAMBIAR CODIGO


Product code : 0529835 (Funciona - yo lo utilizé)

Cerramos la aplicacion NSS y una vez hecho eso procedemos a correr el software de actualizacion.


















Deja terminar todo el proceso de actualización y finalmente lo unico que hacemos es dar de alta la conexion y ahora si , ya con la versión actualizada procedemos a disfrutar de los beneficios.





































Espero sea de ayuda.

Visualizar StoreProcedure de SQL Server como WebService utilizando Jdeveloper (Windows)

El objetivo principal es visualizar o publicar un StoreProcedure de SQLServer como WebService ,utilizando Jdeveloper para el encapsulamiento.

Uno de principales problemas que hay con Jdeveloper es que no puedes visualizar dichos objetos de forma natural, asi que debemos generar los archivos necesarios con la ayuda del Command Line, una vez generados debemos crear un Partner Link que haga referencia a nuestros objetos creados.

1.-Generación de Archivos (Command Line - Jdeveloper)

Accesamos a la consola de comandos

C:\[jdevstudio]\jdk\bin>

Necesitamos correr un script que incluye las librerias necesarias para crear nuestros objetos (WSDL y XSD ) , y necesitamos crear un archivo.properties donde especificaremos los parametros de conexion.


/* CreateSPFiles.properties */
ProductName=Microsoft SQL Server
DriverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
ConnectionString=jdbc:sqlserver://[HOST]\\[INSTANCIA]:[PORT];databaseName=[DATABASE]

Username=[usuarioDB]

Password=[password]

ProcedureName=[nombre_storeprocedure]

ServiceName=[wsSPTest]

DatabaseConnection=[
SqlConexion]
Destination=D:\\Atmorphius\\FilesSPTemp


/* Librerias */

[jdevhome]\integration\lib\DBAdapter.jar;
[jdevhome]\integration\lib\bpm-infra.jar;

[jdevhome]\integration\lib\orabpel.jar;
[jdevhome]\lib\xmlparserv2.jar;
[jdevhome]\lib\xschema.jar;
[jdevhome]\toplink\jlib\toplink.jar;
[jdevhome]\integration\lib\connector15.jar;
[jdevhome]\j2ee\home\applib\sqljdbc.jar


/* Script */
java -cp [Librerias] oracle.tip.adapter.db.sp.artifacts.GenerateArtifacts
[Path] / [Archivo.properties]


Al final de la ejecucion deberemos de obtener 3 Archivos

-DBAdapterOutboundHeader.wsdl
-[
ProcedureName].xsd
-[
ServiceName].wsdl










2.-Creando WebService

Una vez que ya tenemos los archivos, procedemos a generar nuestro proyecto BPEL, el primer paso es copiar los archivos al directorio de nuestra aplicación e importar nuestro nuevo XSD,una vez terminado este proceso,lo siguiente es generar nuestro Partner Link y un objeto Invoke para que nuestro WSDL nos regrese la informacion que muestra el StoreProcedure.

















Copiamos los archivos a nuestro directorio de proyecto dentro de la carpeta bpel, damos un refresh a la pantalla para verificar que los archivos se hayan copiado correctamente,posteriormente creamos nuestro PartnerLink , el objeto Invoke y por ultimo los objetos de Asignacion de entrada y salida de información.




















Creamos el Partner Link con el WSDL creado.




























Ahora tenemos que modificar el esquema de entrada y salida de información para eso tenemos que verificar cuales son los datos de entrada y de salida de nuestro StoreProcedure, asi que procedemos a ejecutarlo y modificamos el esquema.

































































3.-Creando Conexion

Ahora necesitamos crear la conexion que vamos a usar para poder deployar nuestro servicio.

Crear Conexion MSSqlServer en Oracle SOA Suite


*** NOTA IMPORTANTE ***

todos los pasos para generar la conexion son correctos , la unica diferencia es el parametro de la Conexion Factory.

platformClassName = oracle.toplink.platform.database.SQLServerPlatform

Otra cosa tambien no menos importante es verificar el nombre con la cual vamos a crear la conexion , para este ejemplo usamos SqlConexion.











3.-Deploy del WebService sobre Oracle SOA Suite.





























Para el caso de Mac Os X tuve problemas al querer generar los archivos , seguiré intentando , pero si ya tienes los archivos lo de menos es pasarlos a tu Mac y hacer el proceso de encapsulamiento.

Migrar MySQL 5.1 a Oracle 10g con SQLDeveloper (Mac o Windows)

Migrar una base de datos MySQL 5.1 a una base de datos Oracle 10g.


Lo indispensable para poder hacerlo es :


1.- Primer paso es descargar la herramienta de Oracle que nos facilitara este proceso
Oracle SQLDeveloper.

2.- Descargar el JDBC Driver para MySQL
JDBC Driver MySQL

Hay documentación referente a la migración la cual pueden consultar en la siguiente liga
MySQL to Oracle
.



Crear Conexiones
















Conexion base de datos origen (MySQL)

Tenemos que agregar el JDBC de MySQL que descargamos asi que nos vamos al menu Tools - Preferences - Database - Third Party JDBC Drivers y agregamos el driver que descargamos mysql-connector-java-5.1.7-bin.jar.

Configuramos JDBC driver









































Creamos la conexion a MySQL





















































Conexion base de datos destino (ORACLE)

Configuramos nuestra conexion destino destino , en mi caso ya tengo un esquema disponible (XXTVSPOT) en una base de datos de desarrollo Oracle 10g (TVDESA), si no lo tienes hay que crearlo primero, el usuario que se vaya a crear en este esquema debe tener privilegios de RESOURCE, CREATE SESSION Y CREATE VIEW.


























Crear Repositorio

Es necesario para poder realizar la migracion,
Migration - Repositorio Management - Create Repository, esta operación creará objetos en la base de datos destino.





































Capturar Esquema

Seleccionamos el esquema que deseamos migrar ,presionamos boton derecho y generamos el esquema.


















Convertir a modelo Oracle

Seleccionamos el modelo capturado , boton derecho y convertimos a modelo Oracle , aceptamos los valores por defecto , aunque si queremos podemos realizar algunos cambios si lo deseamos, es recomendable se haga todo en automático.
















































Generando SQL de Oracle

Una vez que tenemos el Modelo Oracle, procedemos a generar el script SQL


















Aqui hay varios detalles para comentar:

La aplicación muestra un mensaje de error al momento de crear un
Foreing Key Constraint "Exception on Generation of Foreing Key Constraint" , yo omiti este mensaje dado que el error que lo causa es por falta de informacion en una tabla, y no afecta el proceso de migracion.

Dado que yo ya tengo un usuario que accesa a mi esquema de base de datos Oracle no necesito generar uno nuevo por lo que comenté estas lineas ya que no son necesarias .

/*
SET SCAN OFF;
PROMPT Creating User tvspot ...
CREATE USER tvspot IDENTIFIED BY tvspot DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP;
GRANT CREATE SESSION, RESOURCE, CREATE VIEW TO tvspot;
connect tvspot/tvspot;
*/

/*connect tvspot/tvspot; */





Una vez comentadas las lineas procedemos a ejecutar el script en la base de datos destino (ORACLE)













Movimiento de Datos

Una vez que se haya ejecutado el script de oracle en la base de datos Oracle, procedemos a importar la información seleccionamos Migration - Migration Data.

















Y terminamos la migracion de la base MySQL a Oracle.
Yo seguí los pasos que se indican en la docuementacion de Oracle , pero la herramienta trae una opcion que se llama Quick Migrate , la cual al parecer hace lo mismo solo que con un asistente, si alguien lo ha checado pues que envie sus comentarios y si tuvo problemas pues tambien que lo haga saber.