Hitachi Vantara Pentaho Community Forums
Results 1 to 8 of 8

Thread: Grabar en una base Oracle

  1. #1

    Default Grabar en una base Oracle

    Hola! Tengo una transformación que como ultimo paso tiene que grabar en una tabla de oracle. La columnas de la tabla son 6, mientras que mis columnas son 4 (las otras 2 son incrementales). Si intento hacer una salida a tabla me da problemas (intenta borrar las 2 y añadirme las otras 4). Yo solo quiero actualizar la base de datos de esa tabla. Alguien me puede echar una mano? Gracias

  2. #2
    Join Date
    Jul 2007
    Posts
    1,013

    Default

    El paso "Table Output" no necesita que todos los campos de la tabla estén en tu flujo de datos, a no ser que esos campos sean clave. Si son clave vas a necesitar generar los autonuméricos antes de la inserción, utilizando pasos "Add Sequence".

    ¡Saludos!

  3. #3

    Red face

    Gracias, ya lo tengo arreglado más o menos. Ahora el problema lo tengo porque tengo que autogenerar un campo (Registre). Tengo que añadir en la tabla de datos del oracle. El registre tiene que empezar tomando como referencia el numero de registro ultimo para un periodo determinado (otro campo).

  4. #4
    Join Date
    Jul 2007
    Posts
    1,013

    Default

    Para lograr eso podrías crear una transformación que lea el máximo del campo al que te referís, le sume uno, y lo guarde como una variable.

    Luego en tu transformación actual usarías un "Add sequence" y especificarías la variable creada en la transformación anterior en el campo "Start at value".

    Tené en cuenta que tienen que ser transformaciones diferentes, ya que cuando guardás una variable no podés utilizarla en la misma transformación.

    ¡Saludos!

  5. #5
    Join Date
    Sep 2007
    Posts
    834

    Default

    Para esto podes utilizar, en lugar del "Table Output", el Step "Combination Lookup/Update" de la categoria Datawarehouse. Si bien este step existe con un proposito especifico, lo podes utilizar para cualquier Insert que requiera un insertar (max+1) o utilizando una SEQuencia de la base de datos.
    saludos
    mc

    Quote Originally Posted by noemicr View Post
    Gracias, ya lo tengo arreglado más o menos. Ahora el problema lo tengo porque tengo que autogenerar un campo (Registre). Tengo que añadir en la tabla de datos del oracle. El registre tiene que empezar tomando como referencia el numero de registro ultimo para un periodo determinado (otro campo).

  6. #6

    Default Errores en Insert/Update

    Gracias a todos por vuestras respuestas. Estoy intentando utilizar ahora el Insert/Update y me da un error del tipo: RA-01400: no se puede realizar una inserción NULL en ("CAIXA"."DADES_AUXILIARS"."ID_AUXILIAR"). De los 4 campos que tengo ID_AUXILIAR y VALOR_1 los pongo como comparadores (son las claves) mientras que VALOR_2 y VALOR_3 los pongo a actualizar. ¿A alguien os ha pasado esto?

  7. #7
    Join Date
    Jul 2007
    Posts
    1,013

    Default

    Noemí en el paso Insert/Update tenés que incluir a todos los campos en la grilla de abajo (la que se llama "Update Fields"), inclusive a las que son parte de la clave. La diferencia es que a estas tenés que establecerles el campo "Update" a "N". Verificá si lo tenés de esa manera, sino esa puede ser la fuente del error.

    ¡Saludos!

  8. #8

    Default

    Gracias!!!
    Last edited by noemicr; 04-22-2009 at 03:47 AM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Privacy Policy | Legal Notices | Safe Harbor Privacy Policy

Copyright © 2005 - 2019 Hitachi Vantara Corporation. All Rights Reserved.