2012-02-07 24 views
0

私はOracleにあるDelphiアプリケーションデータベースを持っています。 ストアドプロシージャがあり、INというPARAM1というデータ型のデータがNUMBERというデータ型があります。ORACLE-数値パラメータの精度とスケール

パラメータの精度と位取りを指定することはできません。しかし、Delphi側でこのようにパラメータは浮動小数点として表示されます。 実際には整数として必要です。

私はそのために何をする必要がありますか?

+1

ストアドプロシージャを修正できますか?もしそうなら、 'PARAM1'を' INTEGER'データ型として受け入れるようにパラメータを修正してください。 – Ollie

+0

'Trunc(aFloat)'関数が返す値は正しいですか? –

+0

どのバージョンのDelphiとどのアクセスコンポーネントを使用していますか? –

答えて

3
  1. 通常、%TYPEを使用して、パラメータに「制限付き」データ型を指定できます。パラメータが整数データ型の場合は、パラメータデータ型としてBINARY_INTEGERまたはPLS_INTEGERを指定します。
  2. クライアント側のデータ型(TParam.DataType)は、データアクセスコンポーネント、Oracle、およびDelphiのバージョンによって異なります。この情報を提供することをお勧めします。
  3. ftFloat精度が低下する可能性があります。それが問題であれば、手でDataTypeを設定することができます。また、AsXxxxパラメータプロパティを使用すると、パラメータ値をより快適に割り当てることができます。
+0

'%type'として定義されたパラメータは、ソース列の長さと精度を強制しません。 – Allan

関連する問題