none
Firing Trigger after Inserting Records sql server to oracle for one field RRS feed

  • Frage

  • Hello,

    our package is inserting data from sql server to oracle. One field will be null and it must be filled on the oracle side. Always when package run and insert the row from sql server to oracle, this trigger must be fire and fill this field values.

    Is it right approach and can be achieve with SSIS? A commit is required after insert or how to manage commit with SSIS?

    Thanks in advance

    Dani


    • Bearbeitet danimian Montag, 27. Februar 2012 17:59
    Montag, 27. Februar 2012 14:44

Antworten

  • Hi Dani,
    this is a german forum, so I will answer in german. If this is a problem for you, please use the english forums!

    Ich würde eine abgeleitete Spalte im SSIS-Paket verwenden und damit das Feld entsprechend füllen, bevor der Insert nach Oracle geht. Ansonsten sprechen wir ja von einem Oracle-Trigger, der aber nicht gefeuert würde, wenn die Spalte NOT NULL definiert ist, da die Zeile dann erst gar nicht in der Tabelle ankäme.

    Einen schönen Tag noch,
    Christoph
    --
    Microsoft SQL Server MVP
    www.insidesql.org/blogs/cmu

    Mittwoch, 29. Februar 2012 10:02
  • Hallo Christoph,

    danke für Antwort.

    Weil da um eine Alfanumerischer Wert (12 Stellig) in der Oracle Tabelle handelt deshalb waren andere Operationen für 'maxwert +1' raus zu finden nötig, für neue Datensätze. Die Spalte ist Primäreschlüssel mit varchar(2) als Datentyp.

    Ich habe das alles in Oracle mit BEFORE INSERT Trigger (trim und to_char Funktion) und mit einer Sequenz (für maxwert +1) umgesetzt.

    Viele Grüße

    Dani

    Donnerstag, 1. März 2012 11:42

Alle Antworten

  • @Mods: Please move this thread to the SSIS forum.
    Montag, 27. Februar 2012 17:53
  • Hi Dani,
    this is a german forum, so I will answer in german. If this is a problem for you, please use the english forums!

    Ich würde eine abgeleitete Spalte im SSIS-Paket verwenden und damit das Feld entsprechend füllen, bevor der Insert nach Oracle geht. Ansonsten sprechen wir ja von einem Oracle-Trigger, der aber nicht gefeuert würde, wenn die Spalte NOT NULL definiert ist, da die Zeile dann erst gar nicht in der Tabelle ankäme.

    Einen schönen Tag noch,
    Christoph
    --
    Microsoft SQL Server MVP
    www.insidesql.org/blogs/cmu

    Mittwoch, 29. Februar 2012 10:02
  • Hallo Christoph,

    danke für Antwort.

    Weil da um eine Alfanumerischer Wert (12 Stellig) in der Oracle Tabelle handelt deshalb waren andere Operationen für 'maxwert +1' raus zu finden nötig, für neue Datensätze. Die Spalte ist Primäreschlüssel mit varchar(2) als Datentyp.

    Ich habe das alles in Oracle mit BEFORE INSERT Trigger (trim und to_char Funktion) und mit einer Sequenz (für maxwert +1) umgesetzt.

    Viele Grüße

    Dani

    Donnerstag, 1. März 2012 11:42