我正在使用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)
);
答案 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_FLOAT
和BINARY_DOUBLE
更适合货币值。
但请注意,您仍然需要解析前端的输入字符串£00,000.000
并将其作为数值发送到后端端。