準備された動的 SQL 文に関する情報を提供し、開いているカーソルの結果セットを記述します。
 
            	 
            
               構文、形式 1:
 
               		 
               		>>---EXEC SQL-----DESCRIBE---.----------------------.----->
                             +---SELECT LIST FOR----+
                             +---BIND VARIABLES FOR-+
 
 >--.--prepared_stmt_name--.---INTO---:sqlda_struct---END-EXEC-->< 
               	   
            	 
            
               構文、形式 2:
 
               		 
               		>>---EXEC SQL-----DESCRIBE---CURSOR---cursor_name----->
 >---INTO---:sqlda_struct---END-EXEC--><
 
               	   
            	 
            
               パラメーター:
 
               		 
               		
                
                  		
                  
                      
                        			  
                        			  
                        			 
                         
                           				
                            
                              				  
                              | prepared_stmt_name |  
                              				  
                              準備された SQL SELECT 文または QUERY ODBC 文の名前。 |  
                              				
                           
 
                           				
                            
                              				  
                              | cursor-name |  
                              				  
                              開いているカーソルの名前。 |  
                              				
                           
 
                           				
                            
                              				  
                              | : sqlda_struct |  
                              				  
                              ポピュレートする出力 SQLDA データ構造体を指定するホスト変数。コロンを使用すると、他の埋め込み SQL 実装との互換性を確保できます。 |  
                              				
                           
 
                           			 
                         
                        		  
                     
                    
                  		
                 
               	 
              
            	 
             
            	 
            
               例:
 
               		 
               		      $set sql(behavior=optimized)
       working-storage section.
       EXEC SQL INCLUDE SQLCA END-EXEC.
       EXEC SQL INCLUDE SQLDA78 END-EXEC.
       EXEC SQL BEGIN DECLARE SECTION END-EXEC
       01 statement   pic x(80).
       01 host-var-block.
          03 host-var-1   pic 99.
          03 host-var-2   pic x(10).
          03 host-var-3   pic x(15).
       EXEC SQL END DECLARE SECTION END-EXEC
       PROCEDURE DIVISION.
       EXEC SQL CONNECT TO ORCL USER scott.tiger END-EXEC
       EXEC SQL
           DECLARE C1 CURSOR FOR stmt1
       END-EXEC
       move "select * from dept" to statement
       move 20 to sqln
      $IF P64 SET
       compute sqldabc = 16 + 56 * sqln
      $ELSE
       compute sqldabc = 16 + 44 * sqln
      $END
     
       EXEC SQL
           PREPARE stmt1 FROM :statement
       END-EXEC
       EXEC SQL 
           DESCRIBE stmt1 INTO :sqlda 
       END-EXEC
      * The data structure "sqlda" now contains a description 
      * of the dynamic SQL statement.
       EXEC SQL 
           OPEN C1 
       END-EXEC
      * Complete the SQLDA, by adding buffer addresses and lengths
      * and changeing types, as necessary and appropriate, to
      * to match host variables actually used.
      *
      * The following SQL directives can reduce the amount of effort
      * required by specifying how OpenESQL should DESCRIBE varchar
      * and date/time SQL data types:
      *    DESCRIBEVARCHARPICX
      *    DESCRIBEVARCHAR49
      *    DESCRIBEDTCHAR
      *    DESCRIBEDTREC
       move ESQL-UDISP-UNSIGN to sqltype(1)
       set sqldata(1) to address of host-var-1
       set sqldata(2) to address of host-var-2
       set sqldata(3) to address of host-var-3
       perform until exit
           EXEC SQL
               FETCH C1 USING DESCRIPTOR :sqlda
           END-EXEC
           if sqlerrd(3) not = 1
               exit perform
           end-if
           display host-var-1 ' ' host-var-2 ' ' host-var-3
       end-perform
       goback. 
               	   
            
           
         
         
説明:
この文は、指定した SQLDA データ構造に、指定した準備された文によって返されるデータ型、長さ、および列名を書き込みます。
SELECT LIST FOR または BIND VARIABLES FOR のどちらも指定しない場合は、SELECT LIST FOR がデフォルトで使用されます。BIND VARIABLES FOR を指定した場合は、結果列に関する情報ではなく、入力パラメーターに関する情報が SQLDA に返されます。
DESCRIBE 文により、列の数が SQLDA 構造体の sqld フィールドに挿入されます。非選択文が準備された場合は、sqld が 0 に設定されます。DESCRIBE を呼び出す前に SQLDA データ構造の次のフィールドをアプリケーションで初期化する必要があります。
sqln を 0 に設定した場合、列記述子項目は作成されませんが、sqld は必要な項目数に設定されます。DESCRIBE 文は、INTO 句付きの PREPARE 文と似た動作をします。
デフォルトでは、日付、時刻、タイムスタンプに対する SQL 型は、それぞれ DATE-RECORD、TIME-RECORD、TIMESTAMP-RECORD となります。SQL コンパイラ指令の BEHAVIOR=OPTIMIZED オプションを使用すると、OpenESQL はこれらのデータ型に対してメインフレーム上の DB2 の動作をシミュレートし、標準のデフォルトのレコード構造ではなく文字列 (PIC X(n) など) を返します。