[This topic is migrated from our old forums. The original author name has been removed]
I'm using DbVisualizer 5.0.0.3 (licensed) against a DB2 database using a JDBC/ODBC driver.
I'm running a create table statement which runs fine and creates the table. When a colleague runs the same query from the official DB2 query tools they are seeing a warning issued because the USER system value is a VARCHAR(128).
CREATE TABLE MYSCHEMA.MYTABLE (
some_date DATE NOT NULL,
-- audit fields
last_op_ind CHAR(1) NOT NULL WITH DEFAULT 'I'
constraint CC_RFVE_1 CHECK (LAST_OP_IND IN ('I','U','D')),
last_op_by CHAR(8) NOT NULL WITH DEFAULT USER,
last_op_date_time TIMESTAMP NOT NULL WITH DEFAULT CURRENT TIMESTAMP
);
By convention, our environment always inserts the current USER into the last_op_by field. I'm making this change so that DB2 handles that by default.
There was some confusion as DBVis didn't report the warning, or at least, I didn't see the warning. We know that errors are clearly reported but what about warnings on successful statements?
Is this just a driver issue or do I need to make some setting changes to pick these up?
Mark,
I am not really sure if you mean that the warning should be displayed at create of the table or at insert?
Just tried and I get a warning when creating the table:
19:01:47 [CREATE - 0 row(s), 0.298 secs] Command processed but no rows were affected
Code: 20114 SQL State: 01642 --- Column "LAST_OP_BY" in table "MYSCHEMA.MYTABLE" is not long enough for the defined length of the USER default value.
... 1 statement(s) executed, 0 row(s) affected, exec/fetch time: 0.298/0.000 sec [0 successful, 1 warnings, 0 errors]
But I don't get any at insert.
Please clarify.
Regards
Roger
a
anonymous
said
over 18 years ago
[This reply is migrated from our old forums. The original author name has been removed] [Attachment has been removed.]
Re: How do I capture SQL warnings issued by DB2?
When running the create statement I should see what you see but my log entry just shows me:
09:20:29 [CREATE - 0 row(s), 1.828 secs] Command processed but no rows were affected
... 1 statement(s) executed, 0 row(s) affected, exec/fetch time: 1.828/0.000 sec [0 successful, 1 warnings, 0 errors]
It doesn't include the warning itself.
I have the "retrieveMessagesFromServerOnGetMessage" flag set to "true". Is there anything else I need to set?
I'd expect it to run fine on insert, that's okay.
I've attached a screenshot showing DBVis straight after running the sql.
Roger Bjärevall
said
over 18 years ago
[This reply is migrated from our old forums.]
Re: How do I capture SQL warnings issued by DB2?
Mark,
It may be driver dependent whether the warning is handled properly or not. I tested with this config:
Product: DbVisualizer Personal 5.0.0.6
Java VM: Java HotSpot(TM) Client VM
Java Version: 1.5.0_06-64
Java Vendor: "Apple Computer, Inc."
OS Name: Mac OS X
OS Arch: i386
OS Version: 10.4.7
DB2/LINUX
SQL08020
IBM DB2 JDBC Universal Driver Architecture
2.8.46
DbVisualizer simply asks the JDBC driver for any SQL Warnings just after the execution is finished.
Having [b]retrieveMessagesFromServerOnGetMessage[/b] set or not doesn't show any difference here.
Regards
Roger
a
anonymous
said
over 18 years ago
[This reply is migrated from our old forums. The original author name has been removed]
Re: How do I capture SQL warnings issued by DB2?
> Mark,
>
> It may be driver dependent whether the warning is
> handled properly or not.
I've just set my system up to use the DB2 jdbc driver and I am getting the warning messages back, so yes, this is driver-dependent behaviour.
Thanks for your efforts.
anonymous