- - PR -
オラクルのバインド変数のエラー
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 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型の時はエラーにはなりません。同じような他の環境のマシンではエラーが出ないのですが、何が間違っているのでしょうか?どなたかご存知でしたらご教授願います。 _________________ |
|
投稿日時: 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-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-12-10 15:28
自己レスですが、OSをXPにあげたところ解決いたしました。OSの問題っていうのが不思議ですが結論からいうとそういうことになるかなと思います。ありがとうございました。
_________________ |
1