Ergebnis 1 bis 8 von 8

Thema: raise notice geht nicht, Literaturtip für plpgsql

  1. #1
    eremit ist offline Benutzer
    Registriert seit
    19.02.2007
    Ort
    Braunschweig
    Beiträge
    49

    Standard raise notice geht nicht, Literaturtip für plpgsql

    Ich steige gerade in die Programmierung mit plpgsql ein, und scheitere schon bei dem Versuch ein simples raise notice hinzukriegen (für später zum Debuggen). Mein Rumpfprogramm (es heißt internal_calculation) lautet:
    Code:
    DECLARE
      errornumber int4;
    BEGIN
      -- Initialize
      raise notice 'RRR';
      errornumber := 0;
      return errornumber;
    END;
    Mit
    Code:
    select internal_calculation();
    wird nur das Ergebnis von errornumber zurückgeliefert. Kein Raise notice, nichts. Doppelhäkchen " " und Doppelquotes '' '' bringen auch nichts. Was mache ich denn da falsch?

    Ferner wäre ich dankbar für Tips zum Lesen, um erstmal in die Sprache reinzukommen. Ich weiß natürlich, dass es eine Unmenge an Internet-Seiten gibt. Ich würde aber doch gerne erstmal in einem richtigen Buch lesen. Das Buch von ads (ein sehr schönes Buch!) ist mir hier nicht ausführlich genug.

    Eremit

  2. #2
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von eremit Beitrag anzeigen
    Ich steige gerade in die Programmierung mit plpgsql ein, und scheitere schon bei dem Versuch ein simples raise notice hinzukriegen (für später zum Debuggen). Mein Rumpfprogramm (es heißt internal_calculation) lautet:
    Code:
    DECLARE
      errornumber int4;
    BEGIN
      -- Initialize
      raise notice 'RRR';
      errornumber := 0;
      return errornumber;
    END;
    Mit
    Code:
    select internal_calculation();
    wird nur das Ergebnis von errornumber zurückgeliefert. Kein Raise notice, nichts. Doppelhäkchen " " und Doppelquotes '' '' bringen auch nichts. Was mache ich denn da falsch?

    Ferner wäre ich dankbar für Tips zum Lesen, um erstmal in die Sprache reinzukommen. Ich weiß natürlich, dass es eine Unmenge an Internet-Seiten gibt. Ich würde aber doch gerne erstmal in einem richtigen Buch lesen. Das Buch von ads (ein sehr schönes Buch!) ist mir hier nicht ausführlich genug.

    Eremit
    Code:
    test=*# set client_min_messages='notice';
    SET
    test=*# create function raise_function () returns int as $$begin raise notice 'bin hier'; return 0; end; $$language plpgsql;
    CREATE FUNCTION
    test=*# select * from raise_function();
    NOTICE:  bin hier
     raise_function
    ----------------
                  0
    (1 row)
    
    test=*# set client_min_messages='error';
    SET
    test=*# select * from raise_function();
     raise_function
    ----------------
                  0
    (1 row)
    Reicht das als Erleuchtung?

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  3. #3
    eremit ist offline Benutzer
    Registriert seit
    19.02.2007
    Ort
    Braunschweig
    Beiträge
    49

    Standard

    Erleuchtung ja, weil ich verstanden habe, dass ich in der pg_settings nachschauen muss:
    Code:
    name,"setting","unit","category","short_desc","extra_desc","context","vartype","source","min_val","max_val"
    client_min_messages,"notice","\N","Reporting and Logging / When to Log","Sets the message levels that are sent to the client.","Valid values are DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, LOG, NOTICE, WARNING, and ERROR. Each level includes all the levels that follow it. The later the level, the fewer messages are sent.","user","string","default","\N","\N"
    Ich habe Deinen set-Befehl ausgeführt, und wie man sieht, ist setting = "notice". Das Ergebnis ist aber immer noch das Gleiche: weit und breit keine Notice zu sehen.

    Eremit

  4. #4
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von eremit Beitrag anzeigen
    Erleuchtung ja, weil ich verstanden habe, dass ich in der pg_settings nachschauen muss:
    Code:
    name,"setting","unit","category","short_desc","extra_desc","context","vartype","source","min_val","max_val"
    client_min_messages,"notice","\N","Reporting and Logging / When to Log","Sets the message levels that are sent to the client.","Valid values are DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, LOG, NOTICE, WARNING, and ERROR. Each level includes all the levels that follow it. The later the level, the fewer messages are sent.","user","string","default","\N","\N"
    Ich habe Deinen set-Befehl ausgeführt, und wie man sieht, ist setting = "notice". Das Ergebnis ist aber immer noch das Gleiche: weit und breit keine Notice zu sehen.

    Eremit
    Kann es nicht nachvollziehen, dieses hier funktioniert wie erwartet:

    Code:
    test=# create function eremit() returns int as $$ DECLARE
    test$#   errornumber int4;
    test$# BEGIN
    test$#   -- Initialize
    test$#   raise notice 'RRR';
    test$#   errornumber := 0;
    test$#   return errornumber;
    test$# END;
    test$#
    test$# $$ language plpgsql;
    CREATE FUNCTION
    test=*# select * from eremit();
     eremit
    --------
          0
    (1 row)
    
    test=*# set client_min_messages='notice';
    SET
    test=*# select * from eremit();
    NOTICE:  RRR
     eremit
    --------
          0
    (1 row)
    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  5. #5
    eremit ist offline Benutzer
    Registriert seit
    19.02.2007
    Ort
    Braunschweig
    Beiträge
    49

    Standard

    Es ist meine Schuld... die Notice prallt an phpPgAdmin ab - und das habe ich natürlich oben nicht erwähnt, weil ich es für unwichtig hielt.
    Auf der Kommandozeile kommt die Notice, phpPgAdmin verschluckt sie. Ich bleibe am Ball.
    Eremit

  6. #6
    eremit ist offline Benutzer
    Registriert seit
    19.02.2007
    Ort
    Braunschweig
    Beiträge
    49

    Standard

    Ich werde jetzt so vorgehen, dass ich meine function zum Debuggen mit Putty über die Kommandozeile aufrufe.
    Noch irgendwelche Tips zum Einlesen?
    Eremit

  7. #7
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von eremit Beitrag anzeigen
    Ich werde jetzt so vorgehen, dass ich meine function zum Debuggen mit Putty über die Kommandozeile aufrufe.
    Noch irgendwelche Tips zum Einlesen?
    Eremit
    Zum Einlesen: ich hab auf del.icio.us einiges an Links, findest Du bestimmt was brauchbares.

    Allgemeiner Tipp: wird phppgadmin in die Tonne.


    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  8. #8
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.056

    Standard

    Zitat Zitat von eremit Beitrag anzeigen
    die Notice prallt an phpPgAdmin ab
    *uargs*

    Im Logfile hättest du die Notiz auch gesehen, nur mal als Hinweis.
    Grafische Tools sind irgendwie unbrauchbar für die Entwicklung.
    Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören

    Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

    PostgreSQL Service & Support

Ähnliche Themen

  1. Problem Warum geht das nicht?
    Von Kaptain Iglo im Forum SQL
    Antworten: 3
    Letzter Beitrag: 12.03.2011, 01:06
  2. Problem Perl execute liefert kein Ergebnis bei raise notice
    Von mkuis im Forum Programmierung
    Antworten: 2
    Letzter Beitrag: 10.09.2010, 10:38
  3. USE DATABASE geht nicht?
    Von b00n im Forum Kompilierung PostgreSQL
    Antworten: 2
    Letzter Beitrag: 16.11.2007, 13:53
  4. restore geht nicht
    Von gnoerz im Forum Allgemeines
    Antworten: 2
    Letzter Beitrag: 23.02.2007, 15:39
  5. VB6 ' geht nicht nur " !?
    Von BPlagens im Forum Programmierung
    Antworten: 0
    Letzter Beitrag: 06.07.2006, 17:00

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum