to overcome -407 error in Db2

Ask question on - DataBase Concepts, IBM Mainframe DB2, DB2/UDB, DB2 Tools, SQL , DB2 programming with languages like COBOL, PL1.

Moderators: Kalicharan, Moderator Group

Post Reply
harimca
Member
Posts: 4
Joined: Fri Mar 23, 2007 2:01 am

to overcome -407 error in Db2

Post by harimca » Wed Apr 04, 2007 9:44 am

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

Veera
Moderator
Posts: 111
Joined: Wed Feb 22, 2006 2:59 pm

Post by Veera » Wed Apr 04, 2007 11:02 am

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.

harimca
Member
Posts: 4
Joined: Fri Mar 23, 2007 2:01 am

Post by harimca » Wed Apr 04, 2007 6:43 pm

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

User avatar
DavidatK
Active Member
Posts: 65
Joined: Tue Mar 27, 2007 8:41 am
Location: Troy, MI USA

Post by DavidatK » Wed Apr 04, 2007 9:11 pm

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

Veera
Moderator
Posts: 111
Joined: Wed Feb 22, 2006 2:59 pm

Post by Veera » Wed Apr 04, 2007 11:22 pm

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.

harimca
Member
Posts: 4
Joined: Fri Mar 23, 2007 2:01 am

Post by harimca » Tue Apr 10, 2007 11:18 pm

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.

Post Reply

FREE TUTORIALS

Tutorials
Free tutorials from mainframegurukul
  • JCL Tutorial
    Covers all important JCL concepts.
  • Cobol Tutorial
    This tutorials covers all Cobol Topics from STRING to COMP-3.
  • DB2 Tutorial
    DB2 Tutorial focuses on DB2 COBOL Programming.
  • SORT Tutorial
    This Tutorial covers all important aspects of DFSORT with examples
  • CICS Tutorial
    This CICS tutorial covers CICS concepts and CICS Basics, CICS COBOL Programming.
Interview
Mainframe Interview questions



Other References
Mainframe Tools and others