[英]Oracle11g SQL - Error missing right parenthesis while creating table
我已經閱讀了許多有關我的問題的主題,但是我仍然找不到我的請求有什么問題。
這是我的腳本:
-- drop table MISES cascade constraints;
-- drop table STATUT_MISE_USAGER cascade constraints;
-- drop table ITEMS cascade constraints;
drop table USAGERS cascade constraints;
-- drop table INFO_ENCAN_OBNL cascade constraints;
create table USAGERS (
NOM_USAGER_CLI varchar2(40) not null,
NOM_CLI varchar2(40) not null,
PRENOM_CLI varchar2(40) not null,
NO_TELEPHONE_CLI varchar2(13) not null,
ADRESSE_COURRIEL_CLI varchar2(50) not null,
MOT_DE_PASSE_CLI varchar2(40) not null,
constraint PK_USAGERS
primary key (NOM_USAGER_CLI),
constraint AK_USAGERS_1
unique (NO_TELEPHONE_CLI),
constraint AK_USAGERS_2
unique (ADRESSE_COURRIEL_CLI),
constraint CT_NO_TELEPHONE_CLI
check (regexp_like(NO_TELEPHONE_CLI, '^\([0-9]{3}\)[0-9]{3}-[0-9]{4}$')),
constraint CT_MOT_DE_PASSE_CLI
check (length(MOT_DE_PASSE_CLI) >= 8)); -- À corriger
create table INFO_ENCAN_OBNL (
NOM_ECN varchar2(40) not null,
TYPE_ECN varchar2(40) not null,
DATE_DEBUT_ECN date not null,
HEURE_DEBUT_ECN varchar2(5) not null,
DATE_FIN_ECN date,
HEURE_FIN_ECN varchar2(5),
TYPE_AFF varchar2(40),
RESOLUTION_AFF varchar2(20),
NB_ITEMS_L_AFF number(2),
NB_ITEMS_C_AFF number(2),
BOOL_COMPTEUR_AFF char(1) not null default 0,
BOOL_LOGO_AFF char(1) not null default 0,
NOM_OBN varchar2(40) not null,
-- LOGO_OBN image not null,
COULEUR_1_OBN varchar2(20),
COULEUR_2_OBN varchar2(20),
COULEUR_3_OBN varchar2(20),
constraint PK_INFO_ENCAN_OBNL
primary key (NOM_ECN),
constraint CT_TYPE_AFF
check (TYPE_AFF in ('Écrans géants','Moniteurs sur tables','IPads'))); -- À corriger
create table ITEMS (
NOM_ECN varchar2(40) not null,
NO_ITEM number(4) not null,
TITRE_ITM varchar2(40) not null,
-- PHOTO_ITM image not null,
DESCRIPTION_ITM varchar2(50) not null,
DONATEUR_ITM varchar2(40) not null,
MNT_VALEUR_REELLE_ITM number(10,2) not null,
MNT_DEPART_ITM number(10,2) not null,
MNT_INCREMENT_MIN_ITM number(10,2) not null,
MNT_ACHAT_IMMEDIAT_ITM number(10,2) not null,
NOM_USAGER_MENEUR_ITM varchar2(40),
MNT_ACTUEL_MISE_ITM number(10,2) not null default 0,
BOOL_MISE_ACTIVEE_ITM char(1) not null default 1,
BOOL_PAYE_ITM char(1) not null default 0,
constraint PK_ITEMS
primary key (NOM_ECN, NO_ITEM),
constraint FK_INFO_ENCAN_OBNL
foreign key (NOM_ECN)
references INFO_ENCAN_OBNL (NOM_ECN)
on delete cascade,
constraint CT_BOOL_MISE_ACTIVEE_ITM
check (case when MNT_ACTUEL_MISE_ITM = MNT_ACHAT_IMMEDIAT
then BOOL_MISE_ACTIVEE_ITM = 0)); -- À corriger
create table STATUT_MISE_USAGER (
NOM_ECN varchar2(40) not null,
NO_ITEM number(4) not null,
NOM_USAGER_CLI varchar2(20) not null,
BOOL_MENEUR_ITM char(1) not null default 0,
BOOL_DEJA_MISE_ITM char(1) not null default 0, -- 0 = true, 1 = false
BOOL_FAVORI_ITM char(1) not null default 0,
constraint PK_STATUT_MISE_USAGER
primary key (NOM_ECN, NO_ITEM, NOM_USAGER_CLI),
constraint FK_ITEMS
foreign key (NOM_ECN, NO_ITEM)
references ITEMS (NOM_ECN, NO_ITEM)
on delete cascade,
constraint FK_USAGERS
foreign key (NOM_USAGER_CLI)
references USAGERS (NOM_USAGER_CLI)
on delete cascade,
constraint FK_INFO_ENCAN_OBNL
foreign key (NOM_ECN)
references INFO_ENCAN_OBNL (NOM_ECN)
on delete cascade,
constraint CT_BOOL_MENEUR_ITM
check (case when BOOL_DEJA_MISE_ITM = 0
then BOOL_MENEUR_ITM = 0)); -- À corriger
create table MISES (
NOM_ECN varchar2(40) not null,
NO_ITEM number(4) not null,
NOM_USAGER_CLI varchar2(20) not null,
MNT_MIS number(10,2) not null,
DATE_MIS date not null,
HEURE_MIS varchar2(5) not null,
constraint PK_MISES
primary key (NOM_ECN, NO_ITEM, NOM_USAGER_CLI, MNT_MIS),
constraint AK_MISES
unique (NOM_ECN, NO_ITEM, NOM_USAGER_CLI, DATE_MIS, HEURE_MIS),
constraint FK_STATUT_MISE_USAGER
foreign key (NOM_ECN, NO_ITEM, NOM_USAGER_CLI)
references STATUT_MISE_USAGER (NOM_ECN, NO_ITEM, NOM_USAGER_CLI)
on delete cascade,
constraint FK_ITEMS
foreign key (NOM_ECN, NO_ITEM)
references ITEMS (NOM_ECN, NO_ITEM)
on delete cascade,
constraint FK_USAGERS
foreign key (NOM_USAGER_CLI)
references USAGERS (NOM_USAGER_CLI)
on delete cascade,
constraint FK_INFO_ENCAN_OBNL
foreign key (NOM_ECN)
references INFO_ENCAN_OBNL (NOM_ECN)
on delete cascade); -- À corriger
alter table USAGERS
add constraint CT_NOM_CLI
check (regexp_like(NOM_CLI,'^[[:alpha:]''-]+$'));
alter table USAGERS
add constraint CT_PRENOM_CLI
check (regexp_like(PRENOM_CLI,'^[[:alpha:]''-]+$'));
這些是我獲得的錯誤:
table USAGERS supprimé(e).
table USAGERS créé(e).
Erreur commençant à la ligne 30 de la commande :
create table INFO_ENCAN_OBNL (
NOM_ECN varchar2(40) not null,
TYPE_ECN varchar2(40) not null,
DATE_DEBUT_ECN date not null,
HEURE_DEBUT_ECN varchar2(5) not null,
DATE_FIN_ECN date,
HEURE_FIN_ECN varchar2(5),
TYPE_AFF varchar2(40),
RESOLUTION_AFF varchar2(20),
NB_ITEMS_L_AFF number(2),
NB_ITEMS_C_AFF number(2),
BOOL_COMPTEUR_AFF char(1) not null default 0,
BOOL_LOGO_AFF char(1) not null default 0,
NOM_OBN varchar2(40) not null,
-- LOGO_OBN image not null,
COULEUR_1_OBN varchar2(20),
COULEUR_2_OBN varchar2(20),
COULEUR_3_OBN varchar2(20),
constraint PK_INFO_ENCAN_OBNL
primary key (NOM_ECN),
constraint CT_TYPE_AFF
check (TYPE_AFF in ('Écrans géants','Moniteurs sur tables','IPads')))
Erreur à la ligne de commande : 41, colonne : 38
Rapport d'erreur :
Erreur SQL : ORA-00907: parenthèse de droite absente
00907. 00000 - "missing right parenthesis"
*Cause:
*Action:
Erreur commençant à la ligne 53 de la commande :
create table ITEMS (
NOM_ECN varchar2(40) not null,
NO_ITEM number(4) not null,
TITRE_ITM varchar2(40) not null,
-- PHOTO_ITM image not null,
DESCRIPTION_ITM varchar2(50) not null,
DONATEUR_ITM varchar2(40) not null,
MNT_VALEUR_REELLE_ITM number(10,2) not null,
MNT_DEPART_ITM number(10,2) not null,
MNT_INCREMENT_MIN_ITM number(10,2) not null,
MNT_ACHAT_IMMEDIAT_ITM number(10,2) not null,
NOM_USAGER_MENEUR_ITM varchar2(40),
MNT_ACTUEL_MISE_ITM number(10,2) not null default 0,
BOOL_MISE_ACTIVEE_ITM char(1) not null default 1,
BOOL_PAYE_ITM char(1) not null default 0,
constraint PK_ITEMS
primary key (NOM_ECN, NO_ITEM),
constraint FK_INFO_ENCAN_OBNL
foreign key (NOM_ECN)
references INFO_ENCAN_OBNL (NOM_ECN)
on delete cascade,
constraint CT_BOOL_MISE_ACTIVEE_ITM
check (case when MNT_ACTUEL_MISE_ITM = MNT_ACHAT_IMMEDIAT
then BOOL_MISE_ACTIVEE_ITM = 0))
Erreur à la ligne de commande : 65, colonne : 45
Rapport d'erreur :
Erreur SQL : ORA-00907: parenthèse de droite absente
00907. 00000 - "missing right parenthesis"
*Cause:
*Action:
Erreur commençant à la ligne 78 de la commande :
create table STATUT_MISE_USAGER (
NOM_ECN varchar2(40) not null,
NO_ITEM number(4) not null,
NOM_USAGER_CLI varchar2(20) not null,
BOOL_MENEUR_ITM char(1) not null default 0,
BOOL_DEJA_MISE_ITM char(1) not null default 0, -- 0 = true, 1 = false
BOOL_FAVORI_ITM char(1) not null default 0,
constraint PK_STATUT_MISE_USAGER
primary key (NOM_ECN, NO_ITEM, NOM_USAGER_CLI),
constraint FK_ITEMS
foreign key (NOM_ECN, NO_ITEM)
references ITEMS (NOM_ECN, NO_ITEM)
on delete cascade,
constraint FK_USAGERS
foreign key (NOM_USAGER_CLI)
references USAGERS (NOM_USAGER_CLI)
on delete cascade,
constraint FK_INFO_ENCAN_OBNL
foreign key (NOM_ECN)
references INFO_ENCAN_OBNL (NOM_ECN)
on delete cascade,
constraint CT_BOOL_MENEUR_ITM
check (case when BOOL_DEJA_MISE_ITM = 0
then BOOL_MENEUR_ITM = 0))
Erreur à la ligne de commande : 82, colonne : 36
Rapport d'erreur :
Erreur SQL : ORA-00907: parenthèse de droite absente
00907. 00000 - "missing right parenthesis"
*Cause:
*Action:
Erreur commençant à la ligne 103 de la commande :
create table MISES (
NOM_ECN varchar2(40) not null,
NO_ITEM number(4) not null,
NOM_USAGER_CLI varchar2(20) not null,
MNT_MIS number(10,2) not null,
DATE_MIS date not null,
HEURE_MIS varchar2(5) not null,
constraint PK_MISES
primary key (NOM_ECN, NO_ITEM, NOM_USAGER_CLI, MNT_MIS),
constraint AK_MISES
unique (NOM_ECN, NO_ITEM, NOM_USAGER_CLI, DATE_MIS, HEURE_MIS),
constraint FK_STATUT_MISE_USAGER
foreign key (NOM_ECN, NO_ITEM, NOM_USAGER_CLI)
references STATUT_MISE_USAGER (NOM_ECN, NO_ITEM, NOM_USAGER_CLI)
on delete cascade,
constraint FK_ITEMS
foreign key (NOM_ECN, NO_ITEM)
references ITEMS (NOM_ECN, NO_ITEM)
on delete cascade,
constraint FK_USAGERS
foreign key (NOM_USAGER_CLI)
references USAGERS (NOM_USAGER_CLI)
on delete cascade,
constraint FK_INFO_ENCAN_OBNL
foreign key (NOM_ECN)
references INFO_ENCAN_OBNL (NOM_ECN)
on delete cascade)
Erreur à la ligne de commande : 116, colonne : 15
Rapport d'erreur :
Erreur SQL : ORA-00942: Table ou vue inexistante
00942. 00000 - "table or view does not exist"
*Cause:
*Action:
table USAGERS modifié(e).
table USAGERS modifié(e).
自許多小時以來,我一直堅持使用這種運動進行上學,所以我要感謝大家花一點時間解決我的問題。 (我真的需要您的幫助!:0)
錯誤在以下幾行中:
BOOL_COMPTEUR_AFF char(1) not null default 0,
BOOL_LOGO_AFF char(1) not null default 0,
0
是數字,而不是字符文字。 字符文字需要用單引號'0'
括起來。 手冊中的更多詳細信息
BOOL_COMPTEUR_AFF CHAR(1) DEFAULT '0' NOT NULL,
BOOL_LOGO_AFF CHAR(1) DEFAULT '0' NOT NULL,
STATUT_MISE_USAGER
表中STATUT_MISE_USAGER
相同的問題
我更喜歡使用number(1)
列而不是char(1)
列來偽造Oracle中的布爾數據類型-但這是個人喜好。 您可能還希望對這些列進行檢查約束,以確保只能存儲'0'
和'1'
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.