pessoal estou tentando criar um projeot da facu, mas sempre dar esse erro, porfavor me ajuda
CREATE TABLE Aluno
(
AlunoID int NOT NULL AUTO_INCREMENT,
Nome varchar2(40) NOT NULL,
Pai varchar2(40) NOT NULL,
Mae varchar2(40) NOT NULL,
datanascimento DATE
Sexo CHAR(1)
);
erros que ta dando:
Erro a partir da linha : 1 no comando -
CREATE TABLE Aluno
(
AlunoID int NOT NULL AUTO_INCREMENT,
Nome varchar2(40) NOT NULL,
Pai varchar2(40) NOT NULL,
Mae varchar2(40) NOT NULL,
datanascimento DATE
Sexo CHAR(1)
)
Relatório de erros -
ORA-00907: parêntese direito não encontrado
00907. 00000 - "missing right parenthesis"
*Cause:
*Action:
Erro a partir da linha : 19 no comando -
CREATE TABLE Classe
(
Cd_Classe int(8) not null,
Nr_AnoLetivo int(4) not null,
Nr_Serie int(2) not null,
Sg_Turma varchar(2) not null,
Cd_Escola int(6) not null,
Cd_Grau int(2) not null,
Cd_Periodo int(2) not null,
PRIMARY KEY(Cd_Classe),
)
Relatório de erros -
ORA-00907: parêntese direito não encontrado
00907. 00000 - “missing right parenthesis”
*Cause:
*Action:
Erro a partir da linha : 19 no comando -
CREATE TABLE Classe
(
Cd_Classe int(8) not null,
Nr_AnoLetivo int(4) not null,
Nr_Serie int(2) not null,
Sg_Turma varchar(2) not null,
Cd_Escola int(6) not null,
Cd_Grau int(2) not null,
Cd_Periodo int(2) not null,
PRIMARY KEY(Cd_Classe)
);
Relatório de erros -
ORA-00907: parêntese direito não encontrado
00907. 00000 - "missing right parenthesis"
*Cause:
*Action:
O problema é o int(4), int(2), etc. Em Oracle o tipo para números inteiros é simplesmente integer ou int (sem nada depois). Assim funciona:
CREATE TABLE Classe
(
Cd_Classe integer not null,
Nr_AnoLetivo integer not null,
Nr_Serie integer not null,
Sg_Turma varchar(2) not null,
Cd_Escola integer not null,
Cd_Grau integer not null,
Cd_Periodo integer not null,
PRIMARY KEY(Cd_Classe)
);
Como já dito, você também pode usar int (sem nada depois), como por exemplo Cd_Classe int not null, que funciona da mesma forma (como aliás foi feito no link indicado em uma das respostas acima).
Mas se quiser definir a precisão de cada número, aí você tem que usar o tipo number:
CREATE TABLE Classe
(
Cd_Classe number(8) not null,
Nr_AnoLetivo number(4) not null,
Nr_Serie number(2) not null,
Sg_Turma varchar(2) not null,
Cd_Escola number(6) not null,
Cd_Grau number(2) not null,
Cd_Periodo number(2) not null,
PRIMARY KEY(Cd_Classe)
);
Resumindo: int/integer não tem a precisão (o número entre parênteses), number tem (embora seja opcional).
Aliás, como dica geral - que garanto que vai te ajudar muito no médio e longo prazo - sempre consulte a documentação antes de sair “tentando coisas aleatoriamente” (que não sei se foi o caso, mas lendo o tópico, passou a impressão de que foi mais ou menos isso)