ホスト構造とは、使用している埋め込みSQLアプリケーションのホスト言語のSQLの外部で宣言された、ホスト変数の配列です。
例: 従業員の民族性デモグラフィックに関するレポートの作成
以下の、埋め込みSQL SELECT文がCOBOLアプリケーション用に作成されている場合を考慮してみましょう。この文の目的は、会社によって雇用されている最初の100人の従業員の人種統計のレポートを作成することです。
EXEC SQL SELECT EmpNo, LastName, Ethnicity, BirthDate, SSN, DeptNo INTO :EmpNo, :LastName, :Ethnicity, :BirthDate, :SSN, :DeptNo FROM Employee WHERE EmpNo < ‘100’ END-EXEC
6 ホスト変数の名前を入力するのではなく配列内の個々 の要素として :EmpNo、:LastName、:Ethnicity、:BirthDate、:SSN、および:DeptNo が含まれている名前付き構造を作成でき、個々 のホスト変数のクエリでその名に置換されます。
同じの COBOL の例は、次のようにして書き換えることができます、ホスト変数 :EmpNo、:LastName、:Ethnicity、:BirthDate、:SSN、および:DeptNoを含む :FounderEmployeeInfo がホスト構造体の名前。
EXEC SQL SELECT EmpNo, LastName, Ethnicity, BirthDate, SSN, DeptNo INTO :FounderEmployeeInfo FROM Employee WHERE EmpNo < ‘100’ END-EXEC
ホスト構造はANSIセッション モードではサポートされない
ANSIセッション モードでは配列をサポートしません。したがって、ホスト構造も、修飾されたホスト変数もサポートされません。
ホスト構造はTeradataセッション モードではサポートされる
Teradataセッション モードは、IBM形式のホスト構造を最大2レベルまでサポートします。
Teradataセッション モードは、ホスト構造内のフィールドを参照する、修飾されたホスト変数もサポートします。
埋め込みSQL文内の完全修飾されたホスト変数参照は、完全修飾されたSQL列参照と同じ方法で表現されます。つまり、FULLSTOP文字によって異なるレベルの修飾が区切られます。
この構文は、サポートされるすべてのホスト言語で有効です。
この例では、要点を説明するためにCOBOLを使用して、:SHIPMENT-RECORD.WEIGHTを完全修飾ホスト変数として使用しています。
ADD 5 TO WEIGHT OF SHIPMENT-RECORD. EXEC SQL DELETE FROM SHIPMENT_TABLE WHERE WEIGHT > :SHIPMENT-RECORD.WEIGHT END-EXEC.