create table salary_details
(
emp_id number(2) ,
travel_allowance long(10000),
housing_allowance long (100000),
PF long(100000),
account_no long(10000),
Total_sal long(100000)
);
因为一个小时的帮助,我一直在敲打这个问题
答案 0 :(得分:3)
有关您的代码的一些评论。
number
类型处理数字。您可以使用其他类型,但您可以坚持使用number
。number
提供比例和精度。对于大多数货币金额,类似(12,4)就足够了。number(2)
表示0-99之间的数字。这似乎不是一个非常大的范围。所以,我可能会建议:
create table salary_details (
emp_id number ,
travel_allowance number(12, 4),
housing_allowance number(12, 4),
PF number(12, 4), -- if this is a monetary amount
account_no number,
Total_sal number(12, 4)
);
答案 1 :(得分:1)
我认为有两个问题 -
答案 2 :(得分:1)
long
不是数字Oracle数据类型。它是一种类似于varchar
的(过时)类型。
也许您可以使用以下方法之一:
答案 3 :(得分:1)
数据类型LONG,最大大小:2 GB - 1.每个表只允许一个LONG列。 所以你每个表只能使用一个LONG列...... Refer this
答案 4 :(得分:1)
您的数据类型毫无意义。 Number(2)
不适用于员工ID - 它的最大值不会丢失整数精度为99.而LONG
是Oracle中基于字符的数据类型,不适用于数值。我还会为PF
列选择一个更好的名称,因为该列所代表的内容并不明显。
以下是一个包含更合适数据类型的提案:
create table salary_details
(
emp_id INTEGER ,
travel_allowance DECIMAL(10,2),
housing_allowance long DECIMAL(10,2),
PF DECIMAL(10,2),
account_no INTEGER,
Total_sal DECIMAL(10,2)
);