"MIDRANGE-L" <midrange-l-bounces@xxxxxxxxxxxx> wrote on 01/26/2018 
11:18:54 AM:
1 - Is there a copy of IM02T in your library list which would cause it 
to 
use that instead of whatever is in CURRENT SCHEMA?  Some SQL naming 
thing?
2 - Some weird thing where it doesn't close IM02T and uses an old open 
path?  Something a hack may resolve like adding FOR FETCH ONLY, or WITH 
NC 
or some such thing?
3 - If you run it line by line are there any indications in the Messages 
that something didn't quite work right?  Like it never changed current 
schema?
I can't think of any way to change
    from IM02T
to
    from current_schema.IM02T
I got it to work by creating an alias using dynamic SQL -- as follows.  My 
only question is...  Is there a shorter way to do this error checking for 
each SQL statement?  Thanks.
        If CompanyStatus IN ('Active','Inactive')
        And CompanyLibrary > ' ' Then
                Set Str1 = 'Create Alias QTEMP/IM02TA for 
'||Trim(CompanyLibrary)||'/IM02T';
                Execute Immediate Str1;
                Get Current Diagnostics Condition 1 CurState = 
Returned_SqlState;
                If Substr(CurState,1,2) <> '00' Then
                        If Substr(CurState,1,2) = '01' Then
                                Drop Alias QTEMP/IM02TA;
                                Iterate Company_Loop;
                        End If;
                        Set Str1 = 'Create alias for 
'||Trim(CompanyLibrary)||' failed.'
                                || ' (' || CURSTATE || ')';
                        Signal SqlState '88W00' Set Message_Text = Str1;
                End If;
                Select Count(*) into RowCount from QTEMP/IM02TA;
                Get Current Diagnostics Condition 1 CurState = 
Returned_SqlState;
                If Substr(CurState,1,2) <> '00' Then
                        Drop Alias QTEMP/IM02TA;
                        Set Str1 = 'Select count from 
'||Trim(CompanyLibrary)||' failed.'
                                || ' (' || CURSTATE || ')';
                        Signal SqlState '88W00' Set Message_Text = Str1;
                End If;
                Insert into QTEMP/DLC_TEMP_TABLE
                        Values(CompanyNumber, 'IM02T', RowCount);
                Get Current Diagnostics Condition 1 CurState = 
Returned_SqlState;
                If Substr(CurState,1,2) <> '00' Then
                        Drop Alias QTEMP/IM02TA;
                        Set Str1 = 'Insert count for 
'||Trim(CompanyLibrary)||' failed.'
                                || ' (' || CURSTATE || ')';
                        Signal SqlState '88W00' Set Message_Text = Str1;
                End If;
                Drop Alias QTEMP/IM02TA;
                Get Current Diagnostics Condition 1 CurState = 
Returned_SqlState;
                If Substr(CurState,1,2) <> '00' Then
                        Set Str1 = 'Drop alias for 
'||Trim(CompanyLibrary)||' failed.'
                                || ' (' || CURSTATE || ')';
                        Signal SqlState '88W00' Set Message_Text = Str1;
                End If;
        End If;
Sincerely,
Dave Clark
As an Amazon Associate we earn from qualifying purchases.