Announcement

Collapse
No announcement yet.

PL/SQL Prozeduren und Trigger im SQL DEVELOPER

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • PL/SQL Prozeduren und Trigger im SQL DEVELOPER

    Guten Tag alle zusammen,

    ich bin was Prozeduren angeht noch ein anfänger allg. beim programmieren.
    Habe es jedoch geschafft eine Prozedur zu schreiben die auch von der Syntax her
    richtig ist und das macht was ich wollte.

    Wichtige Punkte:
    "x" verschiedene Schemas ( 1 Schema mit einer View und einige Schemas zu den Ländern)
    Schema "trans" liegt die View, aus der kommen die Daten / Informationen die meine Prozedur dann
    auf den anderen Schemas jeweils in 2 Tabellen zu löschen hat.

    In den "Länder Schemas" ist in einer von den 2 Tabellen ein Trigger enthalten, er wird durch
    SELECT / DELETE Befehle ausgelöst.

    Alles schön und gut, hat mich viel energie gekostet aber es läuft, nur nicht ganz perfekt.

    Wollte die Prozedur heute testen und ist alle Schemas durchlaufen bis auf zwei. Die 2 Länder
    wurden von meiner Prozedur ignoriert, auf allen anderen ist sie aber durch gegangen, trotz das
    dort auch auf der einen Tabelle immer der Trigger da ist.

    Habe dann für Schema y und z auf denen die Prozedur nicht durchlaufen ist, die Trigger jeweils
    deaktiviert und siehe da es lief durch.
    Hab natürlich auch schon die Trigger angeguckt aber sind alle identisch eingestellt.
    Bin so langsam ratlos hoffe ihr könnt mir helfen.

    Eine weitere Frage wäre wie kann ich in meinem DELETE Statement in der Prozedur einen Counter einbauen

    bsp.: DELETE from schema. 'COUNTRY' ."table_1"
    where userid in (select userid
    from "table_2"
    where stammnr in (
    select pernr from "schema.trans.table_3";
    commit work;

    ziel ist es alle gelöschten datensätze zu zählen und diese in einer Log dann zu dokumentieren.
    Mit dem jeweiligen Land aber des habe ich durch einen Paramter "COUNTRY" gelöst


    Viele Grüße und ein großes Danke im voraus




  • #2
    Ohne weitere Infos wird man zu den 2 fehlenden Länder wohl nichts sagen können.
    Du kannst im SQL-Developer deine Procedur debuggen. Ev. siehst du dann den Fehler

    Eine weitere Frage wäre wie kann ich in meinem DELETE Statement in der Prozedur einen Counter einbauen
    In dem du das Delete-Statement vorher als Select-Statement mit count(*) absetzt und den Wert ausgibst
    oder
    sql%rowcount ausgibst
    Christian

    Comment


    • ak_hacker_666
      ak_hacker_666 commented
      Editing a comment
      danke dir !

      welche genauen Infos meinst du ?
      An der Prozedur liegt es nicht, Prozedur ist auf Schema "xy".trans und die jeweiligen Länder sind
      dann die 7 weiteren schemas "xy".USA / "xy".BR / etc. ...die Prozedur läuft ja, habe Testdaten
      in die Tabellen eingepflegt und wurden sauber gelöscht, aber auf 2 Schemas sprich also für Land USA und BR
      ist nichts geschehen.. Als die Prozedur durchlaufen war, stand auch im Compiler, dass für alle Länder das Delete
      Statement abgeschlossen wurde aber für die 2 stand nichts mit dabei auch keine Fehler und wenn Ichs Debugge
      zeigt es mir auch nichts an...habe die Schemas über ein Parameter laufen lassen.

      Habe 2 Prozeduren in der einen die 2 Delete Statements und in der anderen ruf ich die ab für meine Schemas ("Länder")

      Der Trigger ist ja auf allen Schemas auf der einen bestimmten Tabelle eingespielt. Nur als ich dann bei USA und BR den Trigger
      ausgestellt hab lief die Prozedur auch auf den 2 Schemas.

      Gibt es da irgendein Zusammenhang bzw wichtige punkte die man beim einstellen von Prozeduren und Tigger beachten muss?

      Hab dann auch auf den anderen Schemas geprüft und dort wird auch der Trigger erfolgreich ausgeführt.
Working...
X