Wir lernen über Datenbanken und für unseren Fall ist die Datenbank Oracle, in der Klasse werden wir gebeten, eine Einschränkung basierend auf den Informationen eines anderen Feldes in der Tabelle zu erstellen, und die Einschränkung sollte erstellt werden mit einem Fall nach innen, trotz eines groß nichts google-Suche für mich gearbeitet (wir arbeiten Spitze Online-Plattform Oracle), hier so ist, was wir zu tun gefragt wurden:Fall auf Einschränkung Oracle
Basierend auf dem acumuladoCompra
Feld und Clasification
Feld tun die folgenden:
Wenn die Klassifizierung A ist, muss die acumuladocompra
weniger als $ 20.000 sein; wenn die Klassifizierung E ist, sollte die acumuladocompra
zwischen $ 20,001 und $ 40,000 liegen; Wenn die Klassifizierung I ist, muss die acumuladocompra
größer als $ 40,001 sein, aber weniger als $ 60,000; Wenn die Klassifizierung 0 ist, muss die acumuladocompra
weniger als 80.000, aber mehr als 60.001 sein; sonst sollte es höher sein als $ 100.000
Also, wie könnte das gebaut werden?
Edit: Ich habe diesen Code versucht:
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)
aber bekam
ORA-00905: Schlüsselwort fehlt
Was ist los?
Es klingt viel wie Sie uns bitten, Ihre Hausaufgaben machen Leo. Ich googelte 'oracle case constraint' und der zweite Treffer war die offizielle Orakeldokumentation. Versuchen Sie das zu lesen und versuchen Sie es selbst, und kommen Sie zurück, wenn Sie eine bestimmte Frage haben. Lesen Sie zuerst [fragen] und viel Glück mit Ihrem Kurs. http://www.oracle.com/technetwork/issue-archive/o63asktom-082127.html –
Hallo, ich danke Ihnen für Ihre Antwort, aber leider habe ich diese Informationen schon früher erreicht und es war nicht hilfreich, den Fall hinein zu bauen eine Einschränkung. Nur um klar zu sein, sind meine Hausaufgaben erledigt, da wir zwei Möglichkeiten hatten, CASE zu verwenden oder AND OR-Klauseln zu verwenden, aber AND OR war viel einfacher zu implementieren, aber da ich frustriert war, den CASE auszuprobieren, fragte ich mich, wie es gemacht werden könnte. weil die gefundenen Informationen nicht hilfreich waren. –
@EngineerDollery Ich habe diesen Code versucht: alter table "CLIENTES_152" add Einschränkung "RESTRICCIONCLASIFICA" Kontrolle (CASE wenn CLASIFICACION_152 A THEN ACUMULADOCOMPRA_152 = <20000; wenn CLASIFICACION_152 = E DANN ACUMULADOCOMPRA_152 zwischen 20001 und 40000; wenn CLASIFICACION_152 = ich habe dann ACUMULADOCOMPRA_152> 40001 AND <60000; wenn CLASIFICACION_152 = O DANN ACUMULADOCOMPRA_152> 60001 AND <80000; wenn CLASIFICACION_152 = U DANN ACUMULADOCOMPRA_152> 100000; END) bekam aber ORA-00905: fehlendes Stichwort Was ist los? –