テーブルまたは一時テーブルがデータベースにない場合にコンパイル時に完全な SQL 構文チェックが可能となるように、OpenESQL には、コンパイル時に、また必要に応じて実行時にも、特定の SQL 文を実際に実行できるようにする SQL 文プレフィックスが用意されています。
 
            	 
            文プレフィックスは、EXEC SQL 文に直接コーディングされ、SQL(CHECK) を使用してコンパイルされた場合にのみ実行されます。
 
            	 
            
               構文:
 
               		 
               		EXEC SQL [statementPrefix] [errorFlag[...]] SQLStatement END-EXEC
 
               	   
            	 
            
               パラメーター:
 
               		 
               		
                
                  		   
                  			 
                  - statementPrefix
  
                  			 
                  -  
                     				
                     
 
                        				   
                        					 
                        - [ALSO CHECK]
  
                        					 
                        - コンパイル時および実行時に次の SQLStatement を実行するように SQL(CHECK) に指示する文プレフィックス。
                        
  
                        				   
                        				   
                        					 
                        - [ONLY CHECK]
  
                        					 
                        - コンパイル時にのみ次の SQLStatement を実行するように SQL(CHECK) に指示する文プレフィックス。
                        
  
                        				   
                        				   
                        					 
                        - [NOCHECK]
  
                        					 
                        - 関連する SQLStatement のみについて SQL(CHECK) 指令の影響を無効にする文プレフィックス。
                        
  
                        				   
                        				
                     
 
                     			 
                    
                  		   
                  		   
                  			 
                  - errorFlag
  
                  			 
                  -  
                     				
                     
 
                        				   
                        					 
                        - [IGNORE ERROR]
  
                        					 
                        - SQLStatement の実行時に成功またはエラーの戻りコードを提供するデフォルトの動作をオーバーライドし、コンパイル時にすべてのエラーを無視してコンパイルを続行します。
                        
  
                        				   
                        				   
                        					 
                        - [WITH WARNING]
  
                        					 
                        - SQLStatement の実行時に成功またはエラーの戻りコードを提供するデフォルトの動作をオーバーライドし、コンパイル時にすべてのエラーを警告として返してコンパイルを続行します。
                        
  
                        				   
                        				
                     
 
                     			 
                    
                  		   
                  		   
                  			 
                  - SQLStatement
  
                  			 
                  - 次に合致する SQL 文。
                     
 
                        				  
                        - CREATE TABLE などの DDL 文または INSERT、DELETE、UPDATE などの特定の DML 文
  
                        				  
                        - ホスト変数を使用していない
  
                        				  
                        - DBMS ベンダーが理解できる構文で記述されている
  
                        				
                     
 
                     			 
                    
                  		   
                  		
               
 
               	 
              
            	 
            
               例:
 
               		 
               		
                
                  		   
                  			 
                  - 例 1
  
                  			 
                  - コンパイル時にのみ SQL Server 一時テーブルを作成し、このテーブルを参照する後続の SQL がコンパイル時に OpenESQL SQL(CHECK) 指令によって完全に構文チェックされるようにします。
EXEC SQL [ONLY CHECK] 
create table #temp(col1 int,col2 char(32))
END-EXEC 
 
                     			   
                  		   
                  		   
                  			 
                  - 例 2
  
                  			 
                  -  コンパイル時および実行時に SQL Server 一時テーブルを作成し、完全なコンパイル時の構文チェックに加えて、実行時にテーブルが実際に作成されるようにします。
EXEC SQL [ALSO CHECK] 
create table #temp(col1 int,col2 char(32))
END-EXEC
 
                     			   
                  		   
                  		   
                  			 
                  - 例 3
  
                  			 
                  -  コンパイル時にテーブルが存在するかどうかにかかわらず、Oracle でのコンパイル時にテスト データを作成します。
EXEC SQL [ONLY CHECK IGNORE ERROR] 
Drop table TT
END-EXEC 
EXEC SQL [ONLY CHECK] 
create table TT (col1 int) 
END-EXEC
 
EXEC SQL [ONLY CHECK] 
Insert into table TT values (1) 
END-EXEC