- PR -

オラクルのバインド変数のエラー

1
投稿者投稿内容
リリー
会議室デビュー日: 2003/06/27
投稿数: 12
お住まい・勤務地: 兵庫県
投稿日時: 2003-12-03 19:24
お世話になります。
現在windows2000(SP4),VB.NET2003,oracle8.1.7.0.0で開発を行っております。その他の動きには全く問題がないのですが、値がLONG値の時に(この場合val)
Call DB.Parameters.Add("aa", val, Oracle.paramMode.ORAPARM_INPUT, Oracle.serverType.ORATYPE_NUMBER)と変数をバインドしようとするとパラメータが間違っていますというエラーが、オラクルではなくvisualbasicをソースとして発生します。
ただしvalがinteger型の時はエラーにはなりません。同じような他の環境のマシンではエラーが出ないのですが、何が間違っているのでしょうか?どなたかご存知でしたらご教授願います。
_________________
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-12-04 09:17
> Call DB.Parameters.Add("aa", val, Oracle.paramMode.ORAPARM_INPUT
> , Oracle.serverType.ORATYPE_NUMBER)

 DBの定義は何ですか?IDbCommandインタフェースを実装した型ですか?それならば、もう一度よく、ParameterCollectionクラスのAddメソッドの説明を見直してください。
#その位置にはintegerな「列挙体」が入るはず
リリー
会議室デビュー日: 2003/06/27
投稿数: 12
お住まい・勤務地: 兵庫県
投稿日時: 2003-12-04 09:57
回答ありがとうございます。
IDbCommandインタフェースを実装しているのではなく(確かにその場合INT型みたいですね)、

Imports OracleInProcServer

COraSess = New OraSessionClass
COraDb = COraSess.OpenDatabase(CStr_Service, CStr_Connect, dbOption.ORADB_DEFAULT)

sql = "SELECT * FROM TBL WHERE KEY = :KEY"

Call DB.Parameters.Add("KEY", val, Oracle.paramMode.ORAPARM_INPUT, Oracle.serverType.ORATYPE_NUMBER)

というような感じです。特に私のマシンだけでエラーが発生するのがよくわからないのですが。
_________________
リリー
会議室デビュー日: 2003/06/27
投稿数: 12
お住まい・勤務地: 兵庫県
投稿日時: 2003-12-10 15:28
自己レスですが、OSをXPにあげたところ解決いたしました。OSの問題っていうのが不思議ですが結論からいうとそういうことになるかなと思います。ありがとうございました。
_________________
1

スキルアップ/キャリアアップ(JOB@IT)