Page 1 of 1

to overcome -407 error in Db2

Posted: Wed Apr 04, 2007 9:44 am
by harimca
Hi
I need to comment a feild in a Insert query,which is declared as notnull,when it is trying to insert the query its throwing the -407error.

can any one advice me on this...plz

Posted: Wed Apr 04, 2007 11:02 am
by Veera
harimca

SQLCODE -407, Error: AN UPDATE, INSERT, OR SET VALUE IS NULL, BUT THE OBJECT COLUMN CANNOT CONTAIN NULL VALUES.

Why are u commenting it is there any specific reason for it....why dont you
have the field still and initialise appropriately spaces/zero based on the
field.

Since the field can not contain NULL values you are getting that problem,
if we are not inserting some value into the field either that particular
field should be defaulted in DML when the TABLE is defined. You can
check this with ur DBA, or usign the DB2 tools/adv options we can
verify if the filed is defaulted or not.

Thanks,
Veera.

Posted: Wed Apr 04, 2007 6:43 pm
by harimca
They wanted to remove this field from 1 of the frontend screens ,so i have to go with commenting or else as u said talk to DBA and get it done Initialised to Default if it not Defaulted

Can please gimme some more inputs on this\\


thanks veeraa

Posted: Wed Apr 04, 2007 9:11 pm
by DavidatK
I guess I don?t understand where the problem is.

The frontend screen had this column on it and the clients could enter the value and you would insert a row, including the column in question with the value the client entered.

Now you want to remove the column from the frontend screen so the client can no longer update the value.

You need to remove the column from the screen, but you still need to present a value (non-null) when you insert into the DB2 row. Pick a constant to update the column with and use that in place of what the client would have entered.

As Veera suggested, if the column is a ?DECIMAL? you could use zero (0) and if CHAR use space ? ?, etc.

Let us know what you deside.


Dave

Posted: Wed Apr 04, 2007 11:22 pm
by Veera
harimca,

I understand what you are saying that you will no longer get a value from the online screen so you wanted to comment that field.

Few things needs to be decided as which approach we are gonna take
to prevent the abend/SQL error.

1.But still the column in DB2 table is going to be there right , are you
planning to delete the cloumn too from the Table.

2. I do not think you are planning to delete the table , so best possible
thing to address the situation is have the field in your insert query
with deault value of spaces/zero initaised into that field, it should
prenvent the SQL ERROR.

What i was saying earlier is that if the column of table is defined
such that it should be NOT-NULL then there is no way that you
can have the column without any value.

So while defining the TABLE they also can DEFAULT a value
for NOT-NULL columns in the declaration itself i mean the DDL.

By DEFAULT i mean if no value is inserted thru the QUERY then
the column by default will get the DEFAULT value as declared
while creating the TABLE , so reg this i said you can check with
DBA if there is possibilty to re-visit the DDL and default the value
of the column and if that is done then you can comment the field
in your query.

But the best possible thing is i would suggest you to have the field
as part of query with SPACES/ZEROS as value for it.

I blive Dave is also suggesting the same.

I wish this clears you query. And sorry for a big description :)

P.S : And please i would request to post back your replies as what you
have decided and finally how it worked , this wil will help other
users if they come across same problem.


Thanks,
Veera.

Posted: Tue Apr 10, 2007 11:18 pm
by harimca
Hi Veera

Thanks a ton for helpign in this issue,I got in touch with the users and they are ok
to pass soem default value say 'Y' for the timebeing ,I need to confirm with DBA on this issue for removing the column / changing to default value at DDL

Will sure let you know for any Updates.