佣金分类列应该能够存储最大值为99的整数,并命名为uniqueString(subscription().subscriptionId)
。如果在添加行时未提供任何值,则Comm_id
列的值应自动设置为10。优势代码列还应包含最大值为99的整数值,并命名为Comm_id
。
Ben_id
我不知道这是否正确
答案 0 :(得分:2)
alter table ACCTMANAGER add(Comm_id number(2)default 10,Ben_id number(2));
基本上对于数字数据类型,您具有精度和比例。如果未指定scale,则scale为0,表示数字后没有小数位。 number(2)表示此处最多只能存储两位数字,如果未指定column,则default关键字会自动设置该值。
BTW尝试使用oracle文档来完成这个家庭作业类型的东西。这是一个很好的例子。
https://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm#i16209
EDITED 的 alter table ACCTMANAGER add(Comm_id number(2)default 10 constraint lowchk1 check(comm_id> = 0),ben_id number(2)constraint lowchk2 check(ben_id> = 0));
很抱歉,我无法检查语法,因为我没有在家安装Oracle。我只在办公室工作。
答案 1 :(得分:0)
@MSStp提供了一个很好的答案,但您仍然需要约束来确保您不会在表格中获得错误的数据(例如负数)。如果约束是佣金和利益列必须包含0到99之间的整数,并且您希望确保Oracle不接受2.2的输入(它将在MS的解决方案中接受,它将只是截断它在数据库中为2并存储2),你需要添加约束,正如Abdul Rehman Sayed在你的问题评论中所建议的那样。
alter table acctmanager
add ( comm_id number(2) default 10
constraint check_comm ( comm_id >= 0 and comm_id = trunc(comm_id) ),
ben_id number(2)
constraint check_ben ( ben_id >= 0 and ben_id = trunc(ben_id) )
)
;
然而:只是一个想法.....什么是comm_id
和ben_id
?如果它们是特定佣金和利益描述/等级/等等的某种代码,您真的需要检查约束吗?您是否有不同的表格解释这些代码,其中comm_id
和ben_id
是(或应该是)主键?在这种情况下,您需要外键约束,而不是检查约束?
答案 2 :(得分:0)
Function getTitle(ByVal abbrev As String) As String
'Purpose: return full name/caption of security abbreviation
Select Case UCase(abbrev)
Case vbNullString
getTitle = "Fixed Deposits and Bonds"
Case "GB": getTitle = "Government Bonds"
Case "CFD": getTitle = "Corporate Fixed Deposits"
Case "TSB": getTitle = "Tax Saving Bonds"
Case Else: getTitle = "All Other"
End Select
End Function
此后,您可以看到表已更改。
要查看输出,请输入以下内容:
ALTER TABLE ACCTMANGER ADD(Comm_id NUMBER(2) DEFAULT 10 NOT NULL, Ben_id NUMBER(2));
您将看到整个表以及更新的列。