Database 约束Oracle实例

Database 约束Oracle实例,database,oracle,constraints,oracle-apex,check-constraints,Database,Oracle,Constraints,Oracle Apex,Check Constraints,我们正在学习数据库,就我们的案例而言,数据库是Oracle,在课堂上,我们被要求根据表上另一个字段的信息创建一个约束,该约束应该在内部构建一个案例,尽管有大量的google搜索,但对我来说没有任何效果(我们在apex Oracle在线平台上工作),下面是我们被要求做的: 根据acumuladoCompra字段和Clasification字段执行以下操作: 如果分类为A,则acumuladocompra必须少于20000美元;如果分类为E,则acumuladocompra应在$20001和$400

我们正在学习数据库,就我们的案例而言,数据库是Oracle,在课堂上,我们被要求根据表上另一个字段的信息创建一个约束,该约束应该在内部构建一个案例,尽管有大量的google搜索,但对我来说没有任何效果(我们在apex Oracle在线平台上工作),下面是我们被要求做的:

根据
acumuladoCompra
字段和
Clasification
字段执行以下操作:

如果分类为A,则
acumuladocompra
必须少于20000美元;如果分类为E,则
acumuladocompra
应在$20001和$40000之间;如果分类为I,则
acumuladocompra
必须大于40001美元但小于60000美元;如果分类为O,则
acumuladocompra
必须低于$80000但高于$60001;否则应该高达10万美元

那么,这是如何建立的呢

编辑:我尝试了以下代码:

alter table "CLIENTES_152" add constraint "RESTRICCIONCLASIFICA" check ( CASE when CLASIFICACION_152 = A THEN ACUMULADOCOMPRA_152 <20000; 
when CLASIFICACION_152 = E THEN ACUMULADOCOMPRA_152 BETWEEN 20001 AND 40000;
when CLASIFICACION_152 = I THEN ACUMULADOCOMPRA_152 >40001 AND <60000;
when CLASIFICACION_152 = O THEN ACUMULADOCOMPRA_152 >60001 AND <80000;
when CLASIFICACION_152 = U THEN ACUMULADOCOMPRA_152 >100000; END) 
alter table“CLIENTES_152”添加约束“RESTRICCIONCLASIFICA”检查(CLASIFICACION_152=A时的情况,然后是ACUMULADOCOMPRA_152 40001和60001以及100000;结束)
但是得到

ORA-00905:缺少关键字


出什么事了?

感谢那些试图帮助我的人

现在,这个约束的最终解决方案是:

alter table "CLIENTES_152" add constraint "RESTRICCIONCLASIFICA" 
CHECK ( 
(CASE when CLASIFICACION_152 = 'A' AND ACUMULADOCOMPRA_152 <20000 THEN 1
when CLASIFICACION_152 = 'E' AND ACUMULADOCOMPRA_152 BETWEEN 20001 AND 40000 THEN 1
when CLASIFICACION_152 = 'I' AND ACUMULADOCOMPRA_152 BETWEEN 40001 AND 60000 THEN 1
when CLASIFICACION_152 = 'O' AND ACUMULADOCOMPRA_152 BETWEEN 60001 AND 80000 THEN 1
when CLASIFICACION_152 = 'U' AND ACUMULADOCOMPRA_152 >100000 THEN 1
ELSE 0 
END)=1
); 
alter table“CLIENTES_152”添加约束“restriccionlasifica”
支票(
(当CLASIFICACION_152='A'和ACUMULADOCOMPRA_152 100000时,则为1
其他0
结束)=1
); 
正如你所看到的,我所做的是改变了我写这个案例的方式,所以这就是我写这个案例的方式,最后它运行得非常好

谢谢你的提示和建议


注意:我自己还没有找到解决方案,是有人告诉我必须以正确的方式构建查询

听起来很像你要我们做你的家庭作业,利奥。我在谷歌上搜索了“甲骨文案例约束”,第二个目标是甲骨文的官方文档。试着读一读,自己动手解决问题,如果你有具体的问题就回来。先读,祝你的课程好运。您好,谢谢您的回答,但不幸的是,我之前已经了解了这些信息,这对在约束中构建案例没有帮助。为了明确起见,我的作业已经完成了,因为我们有两个选项,用例或use AND or子句,但实现起来要容易得多,但当我在尝试这个案例时感到沮丧,我想知道怎么做,因为找到的信息没有帮助。@EngineerDollery我已经尝试了以下代码:alter table“CLIENTES_152”add constraint“RestricCionClassifica”检查(当CLASIFICACION_152=A,然后是ACUMULADOCOMPRA_152 40001和60001和100000;结束)但得到ORA-00905:缺少关键字有什么问题?您应该将其添加到问题中查看示例