I have seen several people asking about getting error numbers or similar things out of 
postgres. The way I have done this is as follows:

CREATE TABLE errors (
        errorstring TEXT PRIMARY KEY,
        message TEXT
);

INSERT INTO errors VALUES ('^FATAL 1:  Database "([^\"]+)" does not exist in the 
system catalog.$', 'FATALE 1: Le database "$1" n''existe pas dans le catalogue 
systeme');

Now in the app if we use perl and DBI we set RaiseError => 1 and catch the error via 
$dbh->errstr or something

pass it into a query like:

prepare('SELECT * FROM errors WHERE ? ~ errorstring'); 
#Isn't postgres great? reverse regular expression searches :)
my $s = execute($dbh->errstr);

then we exploit perl's ability:

$dbh->errstr =~ /$s->{'errorstring'}/"$s->{'message'}"/e;

Hopes someone else find it usefull,

Getting out numbers is offcourse even easier.

Aasmund Midttun Godal

[EMAIL PROTECTED] - http://www.godal.com/
+47 40 45 20 46

---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

http://www.postgresql.org/users-lounge/docs/faq.html

Reply via email to