Jump to content

Has anyone experienced issues with table naming when moving ...


Justin Thomas 2

Recommended Posts

Has anyone experienced issues with table naming when moving from 8206 to 8207 using an iSeries Reporting Server Many of our fex procedures are set up with the following syntax:

ON TABLE HOLD AS APPPATH/SYNONYM_NAME FORMAT DB2 TABLENAME SCHEMA.TABLE_NAME DROP

After upgrading to 8207, with our naming set to Dot(.), we have to use:

ON TABLE HOLD AS APPPATH/SYNONYM_NAME FORMAT DB2 TABLENAME SCHEMA/TABLE_NAME DROP

in order to get the table written to a schema other than the default. We attempted using:

ENGINE DB2 SET NAMING SQL

but something with this is causing an error reading from a DB2 in the TABLE FILE statement.

Link to comment
Share on other sites

Hi Justin

I havent tried that out but wondered what error message you get

Also this blurb from that Adapter admin manual might be useful:

Adapter Administration Release 8207 November 2021 DN4501040.1121

Page 505

 

Reference: Creating and Updating Db2 Files on IBM i

The following information applies to HOLD FORMAT DB2 and procedures that update a Db2

object in a non-journaled collection.

While Db2 on IBM i supports CREATE TABLE operations to a non-journaled collection (a library

with no journal receivers), Db2 normally considers this a commitment control error and issues

an error message. When a HOLD FORMAT DB2 command is issued, the same error condition

triggers an error message to the adapter. In response, the adapter creates the table, but does

not perform the load step. However, if the server is configured with Db2 as a CLI-based

adapter, you can use the ISOLATION setting of NC (No Commit) to prevent Db2 from triggering

the error message, thereby enabling the table to load.

You can set ISOLATION to NC on a request-by-request basis before issuing HOLD FORMAT

DB2:

SQL DB2 SET ISOLATION NC

Alternatively, you can set the NC option server wide from the Adapter for Db2s Change

Settings pane. (To access this pane, click Adapters on the menu bar, right-click the name of

the configured adapter, and choose Change Settings from the menu.)

After completing this task, revert to the original ISOLATION setting, if appropriate.

 

Maybe your specific error message will give a clue as to where the problem is.

Link to comment
Share on other sites

Hi Toby,

We implemented the ENGINE DB2 SET ISOLATION NC solution while in 8206, and this continues to work in 8207. What happened is that the TABLENAME syntax is no longer working the same. We have everything set up to use Dot(.) naming, but in 8207 this puts a table with the name SCHEMA.TABLE_NAME into our default schema instead of where we want it to go. This worked fine in 8206. In 8207, even though we have the same settings/configuration as 8206, we can only direct the table to a specific schema using SCHEMA/TABLE_NAME. Its strange. Then, when we added ENGINE DB2 SET NAMING SQL we were able write using the Dot(.) naming convention, but were not longer able to read a DB2 table in our TABLE FILE statement (we get a SQLCODE -5106 error and a message saying (FOC 1500) : [42833] Qualified object name TABLE_NAME not valid.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
  • Create New...