use*_*991 7 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)
);
Run Code Online (Sandbox Code Playgroud)
看看这一行
salary MONEY NOT NULL
Run Code Online (Sandbox Code Playgroud)
没有现有的money数据类型.
如果您正在寻找类似SQL-Server小钱类型的东西,您想使用a Number(10,4)然后格式化数字.
您可以使用to_char函数格式化数字
select to_char(yourColumn, '$99,999.99') from yourTable where someCondition
Run Code Online (Sandbox Code Playgroud)
“奇怪”的原因很简单:没有MONEY数据类型。
最适合货币价值的数据类型是NUMBER(使用适当的标度)。由于它是十进制浮点类型,因此比二进制浮点类型BINARY_FLOAT和更适合于货币值BINARY_DOUBLE。
但是请注意,您仍然需要在前端解析输入字符串£00,000.000,并将其作为数字值发送到后端。