Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
jong-kil_park
Employee
Employee

I'm going to share with you about an error below happened when querying against a view.

It happened on the IQ 16.0 SP10 PL08 and the reproduction scenario is as below.

==============================================================

T1. Creation of table & view

create table jerry(a int, b int, c int );

insert jerry values(1,1,1);commit;

create view v1

as

select * from jerry ;

T2. Alter the schema of the referenced table.

alter table jerry rename jerry22 ;  // The view becomes invalid.

T3. Run a query against the View & recreate the referenced table.

select * from v1 ;

create table jerry(a int, b int, c int );

select * from v1 ; /* the errro keeps happening */

==============================================================

It's a behavior change in IQ 15.x and IQ 16.0.

In IQ 12.7, this error doesn't happen after recreating the referenced object.

If a view is dependent on a schema object that has been modified, and the view subsequently fails to recompile, the status of that view remains INVALID

Under the situation, if a query is run against the view before the referenced object is recreated, the "Cannot use view 'v1' because it is invalid." error happens.

You can identify the invalid views by issuing a query below.

select U.user_name ||'.'|| T.table_name

from sysobject O, systab T, sysuser U

where T.object_id = O.object_id

and U.user_id = T.creator

and O.status <>1 /* Invalid */

and O.object_type = 2 /* views */;

Also, you can solve this error by recompiling the invalid views as below.

ALTER VIEW <VIEW> RECOMPILE ;

Please refer to the manual pages below explaining this behavior.

http://dcx.sap.com/index.html#sa160/en/dbadmin/sa11c60dfe-6ca7-4344-914e-ba1b735a618f.html

http://dcx.sap.com/index.html#sa160/en/dbusage/workingwdb-s-6042429.html

Jerry