更新: -どうやら少し調べた後(私はOracleと仕事をしていないので) ADODBはadVariant
をサポートしていません (12
です ) adVarChar
を使用する必要があります (200
です ) 代わりに。
A:OraOleadbドライバーを使用してOracleストアドプロシージャを呼び出す従来のASP を参照してください。
この問題が修正された後もおそらく関連性があるため、以下の回答の残りを残します。
原因は、通常、ADODBが接続によって定義されたプロバイダーと通信した後のデータ型の不一致が特定のエラーであるためです。
ADODB.Command
と比較したOracleのプロシージャ定義を見るだけです。 オブジェクトp_return
パラメータが正しくないようです。これについては、前の回答
で説明しています。 同様の質問
へ 。
データ型マッピング
によると (ADOでのデータ型マッピングの優れたリソース) adInteger
(これは3
) Int
にマップします OracleではNumber
ではありません 。代わりに、adNumeric
を使用する必要があります (131
です ) これでその特定のエラーが修正されるはずです。
この行を変更してみてください
strcmd2.Parameters.Append strCmd2.CreateParameter("p_return", 3, 2)
に
strcmd2.Parameters.Append strCmd2.CreateParameter("p_return", 131, 2)
便利なリンク
- A:従来のASPでのストアドプロシージャの使用..実行して結果を取得する
- A:ADODB.Parametersエラー「800a0e7c」パラメータオブジェクトが正しく定義されていません。一貫性のないまたは不完全な情報が提供されました
(
METADATA
の使用方法を学ぶためにこれをお勧めしますglobal.asa
内 ADO名前付き定数をASPWebアプリケーションで常に使用できるようにするため)