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:
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.
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)
Erleuchtung ja, weil ich verstanden habe, dass ich in der pg_settings nachschauen muss:
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.
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
Ich werde jetzt so vorgehen, dass ich meine function zum Debuggen mit Putty über die Kommandozeile aufrufe.
Noch irgendwelche Tips zum Einlesen?
Eremit