Oracle SQL скрипт дает ошибки! - PullRequest
1 голос
/ 29 июня 2010

Я получаю эту ошибку при попытке запуска сценария Oracle SQL Любая помощь, пожалуйста?

Сообщения об ошибках

((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)
);

Ответы [ 2 ]

2 голосов
/ 30 июня 2010

С приличным текстовым редактором легко посмотреть на ваш скрипт с номерами строк.Это показывает, что строки 29,34,39 и 71 имеют что-то общее:

Descripcion nvarchar(200)

Попробуйте Descripcion nvarchar2(200) вместо (или с любой точностью, которая вам нужна).

Еще прощедиагностируйте две другие ошибки: пропущенная запятая в конце предыдущей строки: 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),
);
1 голос
/ 29 июня 2010

Возможно:

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

В других таблицах есть NVARCHAR2 (xx).Это согласуется с 3 ошибками, сгруппированными в строках 29, 34, 29;строка 79 находится в середине большей таблицы, и в ней есть NVARCHAR () вместо NVARCHAR2 ().Я не знал, что Oracle не поддерживает NVARCHAR, но я знаю, что он использует VARCHAR2 () вместо простого VARCHAR (), потому что исторически существовала какая-то альтернативная версия VARCHAR (), которая давно устарела.

...