oracle CHAR型データにデータが入らない件

仕事でどつぼにはまったのでメモ。

oracleからストアドプロシージャー経由でデータを出力するもので、
CHAR型 なおかつ OUTPUT である場合に、データが帰ってこない、尻切れになって帰ってくる、後ろが無い場合、
oracleのパラメータ指定時にこうしないとだめ。

ObjOraDatabase..Parameters.Add space(10), ORATYPE_CHAR, ORAPARM_OUTPUT

space(10)のところがポイント。
ここを null とか "" と指定しちゃうとCHAR型で1バイト分しか確保されない。
なのでストアドプロシージャ内部で返している列を参照し、その分のバイト数分は確保しないとだめ。

Oracle8.0.6+VB6 ではまって3時間悩みました。

ヽ(*`Д´)ノウワーン

Posted by namahage