1

I get this error when trying to run this Oracle SQL script. Any help please?

Error messages

((29,21) expected token:; [ ) * + , - / = > DROP WHERE HAVING AND OR NOT ON JOIN FROM GROUP 
((34,21) expected token:; [ ) * + , - / = > DROP WHERE HAVING AND OR NOT ON JOIN FROM GROUP 
((39,21) expected token:; [ ) * + , - / = > DROP WHERE HAVING AND OR NOT ON JOIN FROM GROUP 
((71,26) expected token:; [ ) * + , - / = > DROP WHERE HAVING AND OR NOT ON JOIN FROM GROUP 
Cargo(90,1) expected token:; ) , DROP NOT ON UNIQUE CONSTRAINT NULL 
Location(97,1) expected token:; ) , DROP NOT ON UNIQUE CONSTRAINT NULL 
pretty print error(pp check error:(1,7)CREATE)

SQL Script

create table PerTipoEmpleado(
ID_TipoEmpleado int primary key,
Descripcion nvarchar2(200)
);

create table PerArea(
ID_Area int primary key,
Nombre nvarchar2(200),
ID_AreaPadre int references PerArea(ID_Area)
);

create table PerEstadoCivil(
ID_EstadoCivil int primary key,
Descripcion nvarchar2(40)
);

create table PerTipoContrato(
ID_TipoContrato int primary key,
Descripcion nvarchar2(500)
);

create table PerSexo(
ID_Sexo int primary key,
Descripcion nvarchar2(40)
);

create table PerCargo(
ID_Cargo int primary key,
Descripcion nvarchar(200)
);

create table PerTurno(
ID_Turno int primary key,
Descripcion nvarchar(200)
);

create table PerAFP(
ID_AFP int primary key,
Descripcion nvarchar(200),
Descuento float
);


create table PerTipoSangre(
ID_TipoSangre int primary key,
Descripcion nvarchar2(20)
);

create table PerTipoSeguro(
ID_TipoSeguro int primary key,
Descripcion nvarchar2(300)
);

create table PerEmpleado(
ID_Empleado int primary key,
ID_TipoEmpleado int references PerTipoEmpleado(ID_TipoEmpleado),
ID_Area int references PerArea(ID_Area),
ID_Cargo int references PerCargo(ID_Cargo),
ID_EmpleadoPadre int references PerEmplado(ID_Empleado),
ID_EstadoCivil int references PerEstadoCivil(ID_EstadoCivil),
ID_Sexo int references PerSexo(ID_Sexo),
ID_TipoContrato int references PerTipoContrato(ID_TipoContrato),
ID_FormaPago int references PerFormaPago(ID_FormaPago),
NumeroDeCuenta int,
BancoPago nvarchar2(2000),
ID_TipoSangre int references PerTipoSangre(ID_TipoSangre),
NotificarAccidenteNombre nvarchar2(500),
NotificarAccidenteTelefono nvarchar2(100),
FechaIngreso date,
FechaBaja date,
GradoInstruccion nvarchar(200),
ID_TipoSeguro int references PerTipoSeguro(ID_TipoSeguro),
Nombre nvarchar2(200),
Apellido nvarchar2(200),
Foto nvarchar2(2000),
ID_Turno int references PerTurno(ID_Turno),
ID_AFP int references PerAFP(ID_AFP),
FechaDeNacimiento nvarchar(200),
LugarDeNacimiento nvarchar(500),
Carnet int,
Direccion nvarchar2(200),
Telefono nvarchar2(30),
Celular nvarchar2(30)
);


create table PerHistorialLaboral(
ID_HistorialLaboral int primary key,
ID_Empleado int references PerEmpleado(ID_Empleado)
Cargo nvarchar2(400),
Detalle nvarchar2(400)
);

create table PerCurriculum(
ID_Curriculum int primary key,
ID_Empleado int references PerEmpleado(ID_Empleado)
Location nvarchar2(2000),
TituloProfesional nvarchar2(500),
Habilidades nvarchar2(400),
);

create table PerTipoObservacion(
ID_TipoObservacion int primary key,
Descripcion nvarchar2(200)
);

create table PerObservaciones(
ID_Observaciones int primary key,
ID_Empleado int references PerEmpleado(ID_Empleado),
Detalle nvarchar2(2000)
);
1
  • I wrote it up there, did you read my code? Commented Jun 29, 2010 at 18:56

2 Answers 2

2

With a decent text editor it is easy to look at your script with line numbers. This shows that lines 29,34,39 and 71 have something in common:

Descripcion nvarchar(200)

Try Descripcion nvarchar2(200) instead (or whatever precision you need).

It is even easier to diagnose the other two errors: missing comma at the end of the preceding line: try

create table PerHistorialLaboral(
ID_HistorialLaboral int primary key,
ID_Empleado int references PerEmpleado(ID_Empleado),
Cargo nvarchar2(400),
Detalle nvarchar2(400)
);

create table PerCurriculum(
ID_Curriculum int primary key,
ID_Empleado int references PerEmpleado(ID_Empleado),
Location nvarchar2(2000),
TituloProfesional nvarchar2(500),
Habilidades nvarchar2(400),
);
Sign up to request clarification or add additional context in comments.

Comments

1

Probably:

create table PerCargo(
ID_Cargo int primary key,
Descripcion nvarchar(200)
);

The other tables have NVARCHAR2(xx). This agrees with the 3 errors grouped at lines 29, 34, 29; line 79 is in the middle of a bigger table and it has an NVARCHAR() instead of NVARCHAR2(). I didn't know that Oracle doesn't support NVARCHAR, but I know it uses VARCHAR2() instead of plain VARCHAR() because there was, historically, some alternative version of VARCHAR() that it has long since deprecated.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.