ホスト変数で選択した値の保存を指定する SELECT 節です。
Synopsis
INTO :var1 [,:var2]...
引数
:var1 ホスト言語で宣言されたホスト変数です。INTO 節内で指定すると、変数名の前にコロン (:) が付きます。複数の変数は、コンマ区切りのリストとして指定できます。添え字付き変数が使用されます。
概要
SELECT 文の INTO 節は、SELECT によって取得された (あるいは計算された) フィールド値を使用して一連の対応するホスト変数を設定します。このオプションの INTO 節は、select-item リストの後、FROM 節の前に表示されます。以下のルールが適用されます。
INTO 節を指定する場合、SQL は選択したフィールド値を表示しません。
包含するプログラムのホスト変数値の使用に関する重要な制限事項については、"ホスト変数" を参照してください。
以下の例は、Caché ObjectScript プログラム内で埋め込み SQL を使用します。SQL は、テーブル (TOP 1) の最初のレコードから 3 フィールドを選択し、INTO を使用して 3 つの対応するホスト変数を設定します。これらの変数は Caché ObjectScript WRITE コマンドによって使用されます。SQLCODE 変数を埋め込み SQL から返されるときに直ちにテストできるので、プログラミングをする上で便利です。
   NEW SQLCODE
   WRITE !,"Going to get the first record"
   &sql(SELECT TOP 1 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  }   
関連項目