電子書籍の厳選無料作品が豊富!

テーブルの定義
-----------------------------------------
TableName ColmunName 型    Length
-----------------------------------------
T1     C1     VERCHAR2 20
      C2     NUMBER  16(0)
-----------------------------------------

プログラム
<stdio.h>
<string.h>
<sqlca.h>

void main(void){
  char statement[1024 + 1];

  /* ホスト変数定義 */
  EXEC SQL BEGIN DECLARE SECTION;
    VERCHAR hC1;
    <?????> hC2;             ← ココです(^^;

  /* INSERT文の定義 */
  strcpy(statement, "INSERT INTO T1 (C1,C2) VALUES (?,?)");
  EXEC SQL PREPARE S1 FROM :statement; 

  /* メイン(ループ) */
  while(1)
    hC1 (ファイルから読込んだ値を代入)
    hC2 (ファイルから読込んだ値を代入)
    EXEC SQL EXECUTE S1 USING :hC1, :hC2;
  }

}

<質問>
上記のテーブルに、あるファイルから読込んだデータを、
ホスト変数hC1、hC2に代入して、
INSERTしたいのですが、
カラムC2の型がNUMBERの16桁のため、
ホスト変数hC2の型を何で定義したら良いのか
わかりません。
(ちなみに、ファイルはテキストで読込みます)

何か良い方法があるのでしょうか?

A 回答 (1件)

こんにちわ。



Insert 後にホスト言語側で、取得したデータの演算を行う必要が無いので
あれば、char 型変数でOk です。
心配であれば、Insert する時にValues 節の中で、TO_NUMBER されては
いかがでしょうか?

この回答への補足

おんなじコトをいま考えてました ^^;
あと、ValuesのところでTO_NUMBER()するのであれば、
きっとVERCHAR型でも平気ですね^^

早速試してみます ^^

補足日時:2002/12/17 13:37
    • good
    • 0
この回答へのお礼

教えていただいた通りにできました。
ありがとうございます。^^

お礼日時:2002/12/17 19:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!