Hallo Robi,

erstelle dir doch mit folgenden kleinen Programm eine View.
PHP-Code:
h dftactgrp(*no)                                        
                                                        
d MakeView        pr                  ExtPGM('MAKEVIEW')
d  View_Lib                     10                      
d  View_Name                    10                      
d  File_Lib                     10                      
d  File_Name                    20                      
d MakeView        pi                                    
d  View_Lib                     10                      
d  View_Name                    10                      
d  File_Lib                     10                      
d  File_Name                    20                      
d                                                       
d True            c                   
*On               
d False           c                   
*Off              
d                                                       
d String_SQL      s          32766    Inz
( *Blanks )    
d String_SQL1     s          32766    Inz( *Blanks )    
d                                                       
d DS_Satz         ds                  Qualified                            
d FeldName                      10                                         
d Type                           8                                         
d Laenge                         5s 0                                      
d Scale                          5s 0                                      
                                                                           
 
/free                                                                     
   
*InLr true;                                                           
   
Exec SQL set option commit=*none;                                       
                                                                           
   
String_SQL  'Create view ' + %TrimView_Lib ) + '/' +                
                 %
TrimView_Name ) +  ' as (Select ';                     
                                                                           
   
String_SQL1 'Select sys_cname, Cast(ColType as Char(8)), ' +          
                 
'Cast(length as dec(5, 0)), '                  +          
      
'case when scale is NULL then 0 else Cast(scale as dec(5, 0))  end' +
      
' from syscolumns where sys_tname=''' + %TrimFile_Name ) +         
      
''' and sys_dname=''' + %TrimFile_Lib ) + '''';                    
                                                                           
  
Exec SQL Declare CursorXX Cursor For String_SQL1;   
  
Exec SQL Prepare String_SQL1 From :String_SQL1;     
  
Exec SQL Open CursorXX;                             
                                                      
  
DoW sqlcod >= and sqlcod <= 100;                  
                                                      
    
Exec SQL  Fetch Next From CursorXX into :DS_Satz
                                                      
    If 
sqlcod <> 0;                                   
      
Leave;                                          
    EndIf;                                            
       
ExSr SR_Work;                                  
  
EndDo;                                              
                                                      
  
Exec SQL  Close   CursorXX;                         
                                                      
  
String_SQL = %SubSt( %TrimString_SQL ) : :      
                      %
Len( %TrimString_SQL ) ) -1);
                                                      
  
String_SQL = %TrimSTring_SQL ) +                                 
               
' from ' + %TrimFile_Lib ) + '/' +                  
               %
TrimFile_Name) + ')';                              
                                                                     
  
Exec SQL Execute Immediate :String_SQL;                            
                                                                     
  
BegSr SR_Work;                                                     
                                                                     
  
Select;                                                            
  
When ds_satz.type 'DECIMAL' or                                   
       
ds_satz.type 'NUMERIC';                                     
       
String_SQL = %TrimString_SQL ) +                            
                    
' Cast( ' + %Trim(ds_satz.feldname) +            
                    
' as Dec(' +%Trim(%Char(ds_satz.Laenge)) + ', ' +
                    %
Trim(%Char(ds_satz.Scale)) + ')) as ' +         
                    %
Trim(ds_satz.feldname) + ', ';                  
  
When ds_satz.type 'CHAR';                                        
       
String_SQL = %TrimString_SQL ) +                            
                    
' Cast( ' + %Trim(ds_satz.feldname) +            
                    
' as Char(' +%Trim(%Char(ds_satz.Laenge)) + ')) ' 
                    
' as ' + %Trim(ds_satz.feldname) + ', ';            
  
EndSl;                                                                
  
EndSr;                                                                
                                                                        
 /
end-free 
Eventuell musst du dir in der SR_Work noch weitere Feldtype bearbeiten.
Auch sollte keine View mit dem Namen in der Lib schon existieren.

Aufruf mit
Call Makeview (ViewLib ViewName Mylib MyFile)

Gruß
Ronald