ユーザーによるエラーを修正するために、MS Sql Server(2005または2008は関係ありません)によってホストされているデータベースの小数点以下の桁を数える必要があります。Oracleデータベースでも同じ問題が発生しますが、それほど複雑ではありません。結論は、Oracleの選択は次のとおりです。
select length( substr(to_char(MY_FIELD), instr(to_char(MY_FILED),'.',1,1)+1, length(to_char(MY_FILED)))) as digits_length
from MY_TABLE
ここで、filed My_filedはfloat(38)です。
Ms Sqlサーバーで使用しようとしています:
select LEN(SUBSTRING(CAST(MY_FIELD AS VARCHAR), CHARINDEX('.',CAST(MY_FILED AS VARCHAR),1)+1, LEN(CAST(MY_FIELD AS VARCHAR)))) as digits_length
from MY_TABLE
問題は、MS Sql Serverで、MY_FIELDをvarcharとしてキャストすると、浮動小数点数が小数点以下2桁だけ切り捨てられ、桁数が間違っていることです。誰かが私に何かヒントを与えることができますか?
よろしくお願いします。