質問

Informixでは、 char(8)型を money 型にキャストして、別の money 入力しますか

" tblAid.amt :: moneyをaid_amtとして使用"動作しませんでした。 " (tblAid.amt * 1)AS aid_amt "の使用動作しませんでした。

役に立ちましたか?

解決

これを試してください->

select (disb_amt::NUMERIC) disb_amt from tmp_kygrants;

金額を数値として比較できる場合があります。

他のヒント

最初の質問-いったいなぜ数値列に数値を格納しないのですか?これは、あなたの質問の残りの部分を無意味にします。また、システムのパフォーマンスが向上することも意味します。データ値を保存する必要がある場合は、明らかなタイプを使用します。データが文字列でない限り、文字列型を使用しないでください。

既に述べたように、非標準のInformixキャスト表記を使用できます。

SELECT some_column::MONEY FROM WhereEver;

また、キャストの種類についてより注意することもできます。たとえば、MONEY(8,2)を使用します。標準表記を使用することもできます。

SELECT CAST(some_column AS MONEY(8,2)) FROM WhereEver;

これは、IDS 9.x以降を使用していることを前提としています。古い製品はキャストをまったくサポートしていません。ただし、一般に、Informixは自動的に変換を実行すること(たとえば、数値を文字列に変換すること)について非常に優れています。ただし、文字列は数値ではなく辞書式に比較されるため、このコンテキストではおそらくCASTの方が賢明です。

'informixをいじってからしばらく経ちましたが、現時点では実行中のインスタンスはありません。ただし、ここで問題を引き起こす可能性のある2つのことがあります:

1)char(8)であるため、「クリーンアップ」ビットなしでは数値にキャストできない値を含むことができます。例えば。 " abc"。または「1,234,567.00」。
2)末尾のスペース。 (varcharではなくchar)。

明示的なキャスト(:: money)でどのinformixエラーが発生しますか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top