插入钱时使用的SQL数据类型

时间:2015-03-12 15:48:17

标签: sql oracle oracle-sqldeveloper

我正在使用Oracle SQL数据库,我必须插入货币值(工资)作为行的一部分。由于一些奇怪的原因,钱命令无法正常工作,是否有任何替代品可以用于此?

数据输入格式:£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)
                   );

2 个答案:

答案 0 :(得分:7)

看看这一行

salary MONEY NOT NULL

没有现有的money数据类型。

如果您正在寻找类似于SQL-Server小额资金类型的内容,则需要使用Number(10,4),然后格式化该数字。

您可以使用to_char功能

格式化数字
select to_char(yourColumn, '$99,999.99') from yourTable where someCondition

答案 1 :(得分:4)

“奇怪”的原因很简单:There is no MONEY data type

最适合货币值的数据类型为NUMBER(使用适当的比例)。由于它是 decimal 浮点类型,因此它比二进制浮点类型BINARY_FLOATBINARY_DOUBLE更适合货币值。

但请注意,您仍然需要解析前端的输入字符串£00,000.000并将其作为数值发送到后端端。