Re: error codes
От | Craig Ringer |
---|---|
Тема | Re: error codes |
Дата | |
Msg-id | 480729C4.7040802@postnewspapers.com.au обсуждение исходный текст |
Ответ на | error codes ("Marcin Krawczyk" <jankes.mk@gmail.com>) |
Ответы |
Re: error codes
|
Список | 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 по дате отправления: