Announcement

Collapse
No announcement yet.

utl_file in PostgresSQL (gibt's oder selber schreiben?)

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

  • utl_file in PostgresSQL (gibt's oder selber schreiben?)

    Hallo,

    ich habe gerade nach sowas wie UTL_FILE von Oracle in Postgres gesucht. Was ich nun an Links finde, klingt so, als gäbe es eine identische Funktion in Postgres.
    Ich finde aber keine.
    Prozeduren, die es nutzen sollen, lassen sich nicht kompilieren.
    Grants auf UTL_FILE werden ebenfalls abgelehnt.

    Code:
    FEHLER: Schema »utl_file« existiert nicht
    SQL Status:3F000
    Postgres 9.3 Doku (PgPlus_AS_93_Release_Notes_20140117.pdf) nennt z.B.:
    "4.2.9
    Support for Oracle compatible exceptions in UTL_FILE package
    Additional Oracle compatible exceptions have been added to the
    UTL_FILE package, thus reducing the manual recoding effort when migrating from Oracle."

    Kennt jemand diese Funktion?

    Vielen Dank!
    Gruß, defo

  • #2
    Originally posted by defo View Post
    Hallo,

    ich habe gerade nach sowas wie UTL_FILE von Oracle in Postgres gesucht. Was ich nun an Links finde, klingt so, als gäbe es eine identische Funktion in Postgres.
    Ich finde aber keine.
    Prozeduren, die es nutzen sollen, lassen sich nicht kompilieren.
    Grants auf UTL_FILE werden ebenfalls abgelehnt.

    Code:
    FEHLER: Schema »utl_file« existiert nicht
    SQL Status:3F000
    Postgres 9.3 Doku (PgPlus_AS_93_Release_Notes_20140117.pdf) nennt z.B.:
    "4.2.9
    Support for Oracle compatible exceptions in UTL_FILE package
    Additional Oracle compatible exceptions have been added to the
    UTL_FILE package, thus reducing the manual recoding effort when migrating from Oracle."

    Kennt jemand diese Funktion?

    Vielen Dank!

    Was macht das?

    Es gibt eine, wie soll ich sagen, Weiterentwicklung von PostgreSQL, nennt sich EnterpriseDB, http://www.enterprisedb.com/. Die legen um PG noch eine Kompatibilitätsschicht zu Oraggle.

    Vielleicht suchst Du das, ansonsten sage mir, was Du genau suchst.

    Ich bin nur sporadisch hier, es gibt für PG speziellere Foren, das nur als Hinweis.



    Aus der Doku:
    With the UTL_FILE package, PL/SQL programs can read and write operating system text files. UTL_FILE provides a restricted version of operating system stream file I/O.

    Wenn Du also nur im Filesystem rumpfuschen willst so brauchst dazu eine untrusted language, z.B. pl/perlU. Mit 'normalem' SQL und der 'normalen' Sprache pl/pgsql geht das nicht.
    Falls Du z.B. auf CSV-Files zugreifen willst gibt es elegantere Wege, Stichwort FDW.
    Zuletzt editiert von Christian Marquardt; 08.02.2014, 13:39. Reason: Beiträge zusammengefasst

    Comment


    • #3
      Originally posted by akretschmer View Post
      Was macht das?
      Es kann ins oder vom Dateisystem schreiben bzw. in ein Oracle Directory, ich benötige es für Logging.
      Lesen brauch ich derzeit nicht.

      Originally posted by akretschmer View Post
      Es gibt eine, wie soll ich sagen, Weiterentwicklung von PostgreSQL, nennt sich EnterpriseDB,
      [/QUOTE]
      Das habe ich wahrscheinlich verwechselt bzw. gedacht, neuer toller Name..
      Gruß, defo

      Comment


      • #4
        Originally posted by defo View Post
        Das habe ich wahrscheinlich verwechselt bzw. gedacht, neuer toller Name..
        Macht nix ;-)

        Es gibt noch einige andere, Greenplum z.B. für massiv paralles arbeiten.

        Nun, vielleicht kannst ja einfach eine Funktion in z.B. pl/perlU schreiben, die Du dazu nutzt. Oder loggst halt in eine Tabelle. Oder schreibst einen kleinen Daemon, der via Listen/Nofify das annimmt und loggt.

        Comment


        • #5
          Originally posted by akretschmer View Post
          Nun, vielleicht kannst ja einfach eine Funktion in z.B. pl/perlU schreiben, die Du dazu nutzt. Oder loggst halt in eine Tabelle. Oder schreibst einen kleinen Daemon, der via Listen/Nofify das annimmt und loggt.
          Mmh, da muss ich mich endlich mal mit Perl beschäftigen!
          Tabellen Logging halt ich ja sehr wenig von.
          Ich habe irgendwo was gelesen, dass diverse Log Mechnismen verfügbar sind, von SMPT bis weiß nicht was.
          Da muss ich wohl mal anfangen.
          Gruß, defo

          Comment


          • #6
            Originally posted by defo View Post
            Ich habe irgendwo was gelesen, dass diverse Log Mechnismen verfügbar sind, von SMPT bis weiß nicht was.
            Da muss ich wohl mal anfangen.
            SMTP?

            Du kannst in CSV-Dateien loggen, das geht out-of-the-box :

            Code:
            log_destination = 'csvlog'    # Valid values are combinations of
                                                    # stderr, csvlog, syslog, and eventlog,
                                                    # depending on platform.  csvlog
                                                    # requires logging_collector to be on.

            Comment

            Working...
            X