Announcement

Collapse
No announcement yet.

Package/Funktionsblock erstellen

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

  • Package/Funktionsblock erstellen

    Hallo,

    ich möchte ein Package(Funktionsblock) in der DB erstellen.
    Da wollte ich einige Funktionen, Variablen, Konstanten zusammenfassen.
    In Oracle geht das sehr einfach --> CREATE OR REPLACE PACKAGE package_name u.s.w.
    Da ich kaum Erfahrung in MSSQL habe, weiß ich nicht ob man da dieses DB-Objekt erstellen kann.
    Beim Googeln leider nichts dazu gefunden.
    Wenn nicht, dann welche Alternative es gibt.

    Ich freue mich falls jemand mir helfen könnte...
    Danke.

    Study

  • #2
    Da ich kaum Erfahrung in MSSQL habe, weiß ich nicht ob man da dieses DB-Objekt erstellen kann.
    Beim Googeln leider nichts dazu gefunden.
    Wenn nicht, dann welche Alternative es gibt.
    Das Zeug auf Schematas verteilen und für die einzelnen Objekte sich eine sinnvolles Namensschema ausdenken?

    Aber die Frage läßt sich erst richtig beantworten wenn du uns erklärst was das Ziel ist das du mit der Verwendung eines Packages erreichen willst.

    Comment


    • #3
      Wenn ich die Frage richig verstehe, sieht das so aus:

      während Du in Oracle eine Sammlung von Procs und Funktions zu einem Package gruppieren kannst, geht das in MS SQL (T SQL) nicht (zumindest früher mal ging es nicht)
      Du baust einfach einzelne Funktionen oder Prozeduren.
      Mit Schemata hat das nicht unbedingt was zu tun, außer Du nutzt die als Krücke, um die MS SQL Operationen nach Sinn / Verwendung separat bereitzustellen und zu berechtigen...
      Gruß, defo

      Comment


      • #4
        Hi Ralf,

        ich fasse in meinem Package einige Seta/Geta-Funktionen, Prozeduren, Konstanten und Variablen zusammen.
        Einer Variable (für alle Funktionen des Blocks zugreifbar) wird z.B. beim Anmelden der Username zugewiesen.
        Weiter sollen manche Trigger die Daten beim Löschen an bestimmten Tabellen verfollständigen.
        Sie rufen die Geta-Funktion aus dem Package, die den Username zurückliefert....
        u.s.w.
        Also man hat ein Funktionsblock, in dem man alles logisch zusammenfassen kann, was man braucht.
        Das funktioniert sehr gut unter Oracle.

        Die Variable Username wird von allen Funktionen des Blocks verwendet, der Rest der Variablen und Konstanten auch.
        Aus meinem Verwaltungsprogramm kann ich auch auf die Werte zugreifen.
        Theoretisch, könnte ich alle Funktionen aus dem Block als allein stehende haben, aber das Ganze wird dann
        schnell unübersichtlich: 15 Funktionen, jede muss für sich allein Username und ... ermitteln u.s.w.

        Im Objekt-Explorer sehe ich meine Trigger und Funktionen.
        Packages erscheinen hier nicht, deswegen vermute ich, dass es so was überhaupt nicht gibt.
        Wie könnte man das dann realisieren?

        Comment


        • #5
          Packages erscheinen hier nicht, deswegen vermute ich, dass es so was überhaupt nicht gibt.
          Richtig vermutet.

          Wie könnte man das dann realisieren?
          Lass es mich so sagen. Du beschreibst ein Programmierparadigma das mir völlig fremd ist.Wenn ich dir was rate landen wir in der Ecke 'mach es ganz anders'. Das wäre vermutlich für dich wenig hilfreich. Vielleicht hat jemand anderes eine Idee.

          Comment


          • #6
            Wenn Du den Oracle Style nachahmen willst, kämen vielleicht verschachtelte Funktionen / Prozeduren in Frage.
            Du ersetzt also ein Oracle Package durch eine (standalone) MS Prozedure, die wiederum zu separaten anderen Prozedures / Functions verzweigt.
            Ich weiß allerdings nicht, wie man soetwas wie eine Package Variable in MS SQL handhaben würde, also ob es ein Pendant auf Procedureeben in MS SQL gibt.
            Gruß, defo

            Comment


            • #7
              Ich danke dir,

              ich werde alles in eine Funktion zusammenpacken.
              Sie wird über die Trigger aufgerufen und alle Aufgaben erledigen.
              Ist nicht so praktisch, wie beim Package-Geschichte, aber eigentlich auch Okay.

              Schönen Feierabend!

              Comment


              • #8
                vielleicht hilft das noch
                http://blogs.msdn.com/b/ssma/archive...variables.aspx
                Gruß, defo

                Comment


                • #9
                  Danke Defo, danke Ralf

                  Comment

                  Working...
                  X