No se ha podido generar correctamente la sentencia Update

Ver el tema anterior Ver el tema siguiente Ir abajo

No se ha podido generar correctamente la sentencia Update

Mensaje  Emilio el Mar 02 Feb 2010, 21:20

Hola buenas,

estoy creando un Data Warehouse para Ventas y, al intentar Generar el código de una correspondencia entre una tabla externa y un cubo.

Primero me da este warning:

Todos los atributos con correspondencia asignada se utilizan en los criterios de coincidencia en VENTAS (VENTAS es mi cubo).
Si todos los atributos con correspondencia asignada se utilizan para la coincidencia, ésta sería una acción de actualización sin importancia. La sentencia Update seleccionará las filas que cumplen la condición de coincidencia y las actualizará con los mismos valores. Especifique al menos un atributo con correspondencia asignada en VENTAS que se actualizará en la actualización mediante la definición de Actualizar.


Y después me da el error: "No se ha podido generar correctamente la sentencia Update"

Diciendo: Se debe definir uno de los atributos con correspondencia asignada para Cargar Columna al Actualizar fila en SÍ.

No sé por qué ocurre esto, si alguien me puede ayudar se lo agradecería...

Saludos.

Emilio

Cantidad de envíos : 15
Localización : madrid
Fecha de inscripción : 27/01/2010

Ver perfil de usuario

Volver arriba Ir abajo

Re: No se ha podido generar correctamente la sentencia Update

Mensaje  Julio.T el Jue 04 Feb 2010, 13:34

Hola Emilio,

En la tabla tienes que definir un atributo a través del cuál realizar el update (como si fuera una primary key), este atributo (o atributos) cuando se haga el update no se actualizará, el resto si quieres sí. Para ello, en la correspondencia te pones en la tabla en el atributo que vaya a ser tu "primary key".
En el atributo Cargar columna al Actualizar Fila selecciona sí, y en Cargar columna al Actualizar Fila selecciona No. De esta forma sabrá que ese campo será la clave para la actualización (el resto de campos que no sean tu "primary key" márcalos al contrario).



Espero haberte sido de ayuda
Un saludo

Julio.T

Cantidad de envíos : 106
Localización : Zaragoza
Fecha de inscripción : 26/02/2009

Ver perfil de usuario

Volver arriba Ir abajo

Re: No se ha podido generar correctamente la sentencia Update

Mensaje  Emilio el Jue 04 Feb 2010, 14:54

En primer lugar, muchas gracias por contestar Julio, porque esto me está desesperando...

Yo el caso es que al seleccionar como dices el que quiero que sea mi
"Primary Key", no me aparecen a la izquierda las opciones que muestras,
sino esto:

http://img32.imageshack.us/i/corrp.jpg/

No sé si podrás ver bien la imagen desde ahí, pero vamos, en el menú de la izquierda, me aparece en la pestaña de "Propiedades de Carga" solamente "Rol de atributo" y sin opción de modificación aparece: "Medida del Cubo".

Igual he hecho algo mal antes, así repasando he hecho estas cosas:

- Para el cubo, únicamente tengo como "Medidas" un atributo Unidades, el resto son las claves ajenas a las dimensiones (Dependiente, Producto, Lugar, Fecha).

- Una cosa que no entendí tampoco es, a la hora de hacer la correspondencia entre una tabla externa y una dimensión, que me dejase unir todos los campos menos el del Identificador (atributo sustituto), no sé si tendrá algo que ver... Pero en todas las dimensiones sí que me dejó generar el código de las correspondencias.

- No tenía pensado poner más de un nivel en cada dimensión, así que para no tener problemas a la hora de hacer el cubo, hice un único nivel en cada una de ellas repitiendo todos los atributos que le dí a esta, es decir, que tenía por un lado los atributos de dimensión (Dni, Nombre...) y en la definición del nivel otra vez los atributos (Dni, nombre...). Tampoco sé si esto está mal o no.


Por último, comentar que he estado intentando depurar la correspondencia entre la tabla externa y el cubo y me dice que "No se han encontrado los Datos de Prueba para los operadores de origen y destino". Y que tenía que editar estos operadores pero, al intentarlo, vi que estaba puesto como localización de donde coger estos datos de prueba la localización destino, en lugar de la de origen, la cambié, y me dijo: "DBG1034: No se puede ejecutar la consulta PL/SQL: Null", como si no encontrase la tabla o algo así...

Muchas gracias.

Emilio

Cantidad de envíos : 15
Localización : madrid
Fecha de inscripción : 27/01/2010

Ver perfil de usuario

Volver arriba Ir abajo

Re: No se ha podido generar correctamente la sentencia Update

Mensaje  Julio.T el Jue 04 Feb 2010, 15:17

Hola de nuevo,

Mi respuesta era pensando que el destino era una tabla en vez del propio cubo. Es que no entiendo por qué te sale ese fallo: en la carga del cubo no hay opción UPDATE. Ese fallo lo he visto cuando se utiliza como destino una tabla y se pone en el tipo de carga un UPDATE. Con carga de cubos nunca.
En cuanto a lo de la clave sustituta, si pones el operador "tabla" de la dimension sí te deja rellenarlo, pero si pones el operador "dimensión" no. Por defecto, cuando creas una dimensión crea también una secuencia para rellenar esta clave, por lo que si seleccionas el operador dimensión no te deja introducir campos en él.
Respecto a lo de los niveles de las dimensiones, tienes que crear por lo menos dos niveles en cada dimensión. Uno el nivel total y luego los que quieras añadir (por cierto, en cada nivel tiene que haber por lo menos tres campos, clave sustituta, la de negocio y otro más). Por un lado en la pestaña atributos creas los atributos y en la pestaña niveles creas los distintos niveles que va a tener la dimensión indicando que campos van a ir en cada uno.
Para cambiar lo de la localización en este mismo foro tienes un post sobre como cambiar la localización de un objeto.

Un saludo

Julio.T

Cantidad de envíos : 106
Localización : Zaragoza
Fecha de inscripción : 26/02/2009

Ver perfil de usuario

Volver arriba Ir abajo

Re: No se ha podido generar correctamente la sentencia Update

Mensaje  bvillamor el Jue 04 Feb 2010, 15:41

Hola Emilio,
el primer error de la correspondencia del cubo creo que es porque no has asignado valor a ninguna medida, sólo a las dimensiones, por lo menos en la imagen que has subido se ve eso. En un cubo se considera que el conjunto de las dimensiones forman algo similar a la clave, es decir, si llega un registro que coincide en todas sus dimensiones con un registro existente, actualiza el valor de las medidas. Si no coincide con ninguno existente, crea un nuevo registro. Pero siempre debe existir valor para los campos que son medidas para que sepa qué actualizar.

En cuanto a la duda sobre dimensiones con un único nivel, si sólo necesitas uno tienes que borrar la jerarquía que OWB crea por defecto. Si no lo haces da un error y te obliga a crear otro nivel.

Saludos,

_________________
Begoña Villamor
Oracle Fusion Middleware 11g Business Intelligence Foundation Certified Implementation Specialist

Adiante
http://www.adiante.es

bvillamor

Cantidad de envíos : 388
Localización : Madrid
Fecha de inscripción : 18/02/2009

Ver perfil de usuario http://www.adiante.es

Volver arriba Ir abajo

Re: No se ha podido generar correctamente la sentencia Update

Mensaje  Emilio el Jue 04 Feb 2010, 17:38

Gracias de nuevo a los dos,

en primer lugar, quería comentaros de que soy novato en este mundo y lo que intento es seguir un manual de ejemplo para aprender a crear y usar un DWh con OWB, ya que en breve tendré que hacer "el de verdad". Por esto os comento de que, por ejemplo, la decisión de crear las correspondencias entre las tablas externas (datos mapeados del fichero) y los operadores "dimensión" y "cubo" es únicamente porque lo pone en dicho manual:

- Creación de Dimensiones y Cubo: http://www.oracle.com/technology/obe/11gr1_owb/owb11g_update_getting_started_intro/lesson3/less3_relational.htm

- Creación de correspondencias y flujo de proceso: http://www.oracle.com/technology/obe/11gr1_owb/owb11g_update_getting_started_intro/lesson4/less4_etl_mappings.htm

Pero si me comentais que lo normal/conveniente es hacer las correspondencias entre una tabla externa y la tabla relacional correspondiente a cada dimensión y al cubo, os hago caso.


Por otro lado, efectivamente, como dice Begoña, tuve ese problema por poner dimensiones de un solo nivel, pero eliminé la jerarquía por defecto y dejó de quejarse.

Además, gracias a lo que me has dicho sobre que no doy valor a las medidas, he revisado los ficheros fuente que creé y efectivamente olvidé poner ese campo, por lo que en la tabla externa no aparece.
Lo corregiré y ya os aviso de si se solucionó este problema.

Por último, comentaros que, cuando estuve haciendo los ficheros origen, se me planteó la duda de si debía hacer uno para cada dimensión y luego uno con todos los datos (serían los de todas las dimensiones juntos, es decir, repetidos) para el cubo, o símplemente hacer un único fichero con todo para el cubo y que fuera éste el que lo redistribuyera de alguna manera a las dimensiones correspondientes (esto no sé si es posible, pero de serlo no sé cómo se haría...). Elegí la primera opción.

Y una última cosultilla, sabeis dónde podría consultar información sobre el sistema de almacenamiento de OWB?


Muchisimas gracias, me estais siendo de gran ayuda.

Saludos.
Emilio.

Emilio

Cantidad de envíos : 15
Localización : madrid
Fecha de inscripción : 27/01/2010

Ver perfil de usuario

Volver arriba Ir abajo

Re: No se ha podido generar correctamente la sentencia Update

Mensaje  Emilio el Vie 05 Feb 2010, 19:34

Efectivamente,corregí ese error en los ficheros origen volviendo a crear de nuevo las tablas externas y ya no da ese error.

Otra cosa que también cambié fue que al hacer las correspondencias, en lugar de poner los operadores "Dimensión" y "Cubo" puse sus tablas relacionales correspondientes.

Veremos a ver si no me da más problemas...

Gracias.

Emilio

Cantidad de envíos : 15
Localización : madrid
Fecha de inscripción : 27/01/2010

Ver perfil de usuario

Volver arriba Ir abajo

Re: No se ha podido generar correctamente la sentencia Update

Mensaje  Contenido patrocinado Hoy a las 14:45


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.