Oracle SQLデータベースを使用しており、行の一部として金銭的価値(給与)を挿入する必要があります。いくつかの奇妙な理由で、moneyコマンドが機能していませんが、これで機能する代替手段はありますか?
データ入力フォーマット:£00,000.000
CREATE TABLE staff
(staffno CHAR(6) NOT NULL
, staffsurname VARCHAR(8) NOT NULL
, staffforename VARCHAR(7) NOT NULL
, salary MONEY NOT NULL
, PRIMARY KEY (staffno)
);
この行を見てください
_salary MONEY NOT NULL
_
既存のmoneyデータ型はありません。
_SQL-Server
_小額タイプに似たものを探している場合は、Number(10,4)
を使用して、数値をフォーマットします。
_to_char
_関数を使用して数値をフォーマットできます
_select to_char(yourColumn, '$99,999.99') from yourTable where someCondition
_
「奇妙な」理由は単純です: MONEYデータ型はありません 。
金額に最も適したデータ型は NUMBER
(適切なscaleを使用)です。これはdecimal浮動小数点型であるため、binary浮動小数点型よりも金額に適していますBINARY_FLOAT
およびBINARY_DOUBLE
。
ただし、フロントエンドで入力文字列£00,000.000
を解析し、数値として送信する必要があることに注意してくださいバックエンドへ。