Yes, there is a preferred standard, it defines char(5) strings that correspond to specific errors.
It is in SQLSTATE in ESQL/C programs and conforms to X/Open and ANSI.
It consits of numbers and upper case letters only. The first 2 digits are the Class the, last 3
are the subclass. I think only the Class is in the norm.

e.g.:	02000	No data found or End of data reached
	00000	Success.
	0A000	Feature not supported

You get additional info through:
	exec sql get diagnostics :num_rows_affected = ROW_COUNT [, :num = NUMBER, ...];


The integer SQLCODE + the sqlca structure is from an old ANSI norm: 
	0 Success
	100 end of data 
	< 0 execution not successful
	> 0 warning

Andreas
----------
Von: 	Vadim Mikheev[SMTP:vadim@krs.ru]
Gesendet: 	Dienstag, 26. Mai 1998 18:43
An: 	Zeugswetter Andreas SARZ
Cc: 	'hackers@postgresql.org'; 'mimo@interdata.com.pl'
Betreff: 	Re: [HACKERS] error messages not only English

Andreas Zeugswetter wrote:
> 
> Anyway, we are still missing the first step in this direction: enumerate ERROR messages.

BTW, are error codes in standard ?

Vadim



Tue, 26 May 1998 19:47:20 +0200
Andreas Zeugswetter <andreas.zeugswetter@telecom.at>
Re: [HACKERS] error messages not only English