選択された値をホスト変数に格納するように指定する SELECT 節です。
Synopsis
INTO :var1 [,:var2]...
引数
:var1 ホスト言語で宣言されたホスト変数です。INTO 節内で指定すると、変数名の前にコロン (:) が付きます。複数の変数は、コンマ区切りのリストとして指定できます。添え字付き変数が使用できます。
概要
SELECT 文の INTO 節は、SELECT によって取得された (あるいは計算された) フィールド値を使用して一連の対応するホスト変数を設定します。このオプションの INTO 節は、select-item リストの後、FROM 節の前に表示されます。
Note:
INTO 節とホスト変数は、埋め込み SQL内でのみ使用されます。ホスト変数は、ダイナミック SQL では使用されません。ダイナミック SQL では、出力変数と同様の機能が %Library.ResultSet によって用意されています。
ホスト変数と INTO 節を使用するときには、以下の規則が適用されます。
INTO 節を指定する場合、SQL は選択したフィールド値を表示しません。
包含するプログラムのホスト変数値の使用に関する重要な制限事項の詳細は、"ホスト変数" を参照してください。
以下の例は、Caché ObjectScript プログラム内で埋め込み SQL を使用します。SQL は、テーブルの最初のレコードから 3 フィールドを選択し (埋め込み SQL は常に 1 つのレコードを取得します)、INTO を使用して 3 つの対応するホスト変数を設定します。これらの変数は Caché ObjectScript WRITE コマンドによって使用されます。SQLCODE 変数を埋め込み SQL から返されるときに直ちにテストできるので、プログラミングをする上で便利です。
   NEW SQLCODE
   WRITE !,"Going to get the first record"
   &sql(SELECT Home_State, Name, Age 
        INTO :state, :name, :age   
        FROM Sample.Person)
   IF SQLCODE=0 {
     WRITE !,"  Name=",name
     WRITE !,"  Age=",age
     WRITE !,"  Home State=",state }
   ELSE {
     WRITE !,"SQL error ",SQLCODE  }
以下の埋め込み SQL の例は、ホスト変数 (today) を SELECT 文に渡します。計算結果は INTO 節変数値 (:tomorrow) になります。このホスト変数値は、包含するプログラムに渡されます。
   SET today=$HOROLOG
   &sql(SELECT :today+1
        INTO :tomorrow   
        FROM Sample.Person)
   IF SQLCODE=0 {
        WRITE !,"Tomorrow is: ",$ZDATE(tomorrow) }
   ELSE {
        WRITE !,"SQL error ",SQLCODE  }
入力および出力ホスト変数値の使用に関する制限事項の詳細は、"ホスト変数" を参照してください。
以下の例は、Caché ObjectScript プログラム内で埋め込み SQL を使用して 2 つのテーブルのレコードをカウントします。SQL は COUNT 集約関数を使用してレコードをカウントし、INTO 節を指定して各カウントに添え字付き変数を設定します。これらの変数は Caché ObjectScript WRITE コマンドによって使用されます。
   WRITE !,"Counting the records"
   &sql(SELECT COUNT(*)
        INTO :total(1)
        FROM Sample.Person)
   &sql(SELECT COUNT(*)
        INTO :total(2)
        FROM Sample.Employee)
   IF SQLCODE=0 {
        WRITE !,"Total Person records=",total(1)
        WRITE !,"Total Employee records=",total(2) }
   ELSE {
        WRITE !,"SQL error ",SQLCODE  }   
関連項目