Re: error codes - Mailing list pgsql-sql

From Craig Ringer
Subject Re: error codes
Date
Msg-id 480729C4.7040802@postnewspapers.com.au
Whole thread Raw
In response to error codes  ("Marcin Krawczyk" <jankes.mk@gmail.com>)
Responses Re: error codes  (Craig Ringer <craig@postnewspapers.com.au>)
List pgsql-sql
Marcin Krawczyk wrote:
> Hi guys. Does anyone know the error code for '/currval of sequence * is
> not yet defined in this session/' error ? Is there one at all?

A quick JDBC test program shows:

ERROR: currval of sequence "customer_id_seq" is not yet defined in this
session (SQLState: 55000)

which, looking up the error code in the docs:

http://www.postgresql.org/docs/current/static/errcodes-appendix.html

turns out to be:

55000    OBJECT NOT IN PREREQUISITE STATE

... which makes sense, but I wouldn't call blindingly and immediately
obvious.



Here's a trivial little utility for running a statement, catching an
error, and reporting the error along with the Pg error code. Sorry for
the horrible formatting (short lines for email).

--- Put in file `JdbcTest.java' ---

import java.sql.SQLException;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;

class JdbcTest  {
   public static void main(String[] args)     throws ClassNotFoundException, InterruptedException, SQLException   {
 Class.forName("org.postgresql.Driver");       Connection c =
DriverManager.getConnection("jdbc://YOUR_PARAMS_HERE");      try {           CallableStatement st =
c.prepareCall("SELECTcurrval('customer_id_seq')");           st.execute();       } catch (SQLException ex) {
System.out.println(              "DB error string: " + ex.getMessage()                + " (SQLState: " +
ex.getSQLState()+ ")");       }   }
 
}

---- end ----

You'll need the PostgreSQL JDBC driver.

To compile (assuming you don't use a Java IDE of some sort, but have the
JDK installed) run:
  javac -d /out/dir JdbcTest.java

and to run (all on one line):

java -classpath /path/to/postgresql-8.3-603.jdbc4.jar:/out/dir JdbcTest

where /out/dir is wherever you want the generated .class file to be put.

--
Craig Ringer


pgsql-sql by date:

Previous
From: Richard Huxton
Date:
Subject: Re: Desc Commnad in pgsql?
Next
From: Craig Ringer
Date:
Subject: Re: error codes