Oracle - Error ORA-00907 al crear una tabla en Oracle

 
Vista:
Imágen de perfil de Gustavo
Val: 1
Ha aumentado su posición en 19 puestos en Oracle (en relación al último mes)
Gráfica de Oracle

Error ORA-00907 al crear una tabla en Oracle

Publicado por Gustavo (1 intervención) el 14/06/2018 02:39:03
Buenas noches amigos

Quiero crear una tabla en oracle y me sale el error ORA-00907:

1
2
3
4
5
CREATE TABLE librosDisponibles(
isbn INTEGER(16) not null PRIMARY KEY,
titulo char(50) not null,
precio_unitario integer(7) not null
);

Esa es la tabla que quiero crear.

Gracias por la ayuda de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 499
Oro
Ha mantenido su posición en Oracle (en relación al último mes)
Gráfica de Oracle

Error ORA-00907 al crear una tabla en Oracle

Publicado por Rafael (328 intervenciones) el 14/06/2018 09:45:42
Hola:

1. El error que mencionas te indica que te falta el parentesis derecho ...
2. La sentencia que indicas NO es de ORACLE....

A ver chico
1
2
3
4
5
6
7
CREATE TABLE librosDisponibles(
 
isbn INTEGER(16) not null PRIMARY KEY,
 
titulo char(50) not null,
precio_unitario integer(7) not null
);

El nombrar ASI la Primary KEY no es propio de ORACLE...

En ORACLE debe estar asociado a un CONSTRAINT, dicho lo cual tu sentencia NO es valida

Para que sea VALIDA seria algo similar a esto

1
2
3
4
5
6
CREATE TABLE librosDisponibles (
isbn INTEGER(16) not null,
titulo char(50) not null,
precio_unitario integer(7) not null
CONSTRAINT PK_ librosDisponibles PRIMARY KEY (isbn)
);[

Ahora pones titulo de 50 caracteres...
A ver piensa si el TITULO del libro es "IT" de Stephen King... los 48 caracteres restantes seran espacios en blanco, esto ocupara espacio en la BBDD y si tu buscas "IT" no lo encontraras necesitaras buscar "IT " me he explicado???

Lo sano para este tipo de informacion es usar varchar (es decir de tamaño variable con un maximo) para oracle es VARCHAR2...

Ahora mas cosas ... quizas tu maestro o donde estes aprendiendo a programar no te hayan dicho esto... y disculpa que me tome la libertad de decirtelo pero igual te viene bien...

Aprender a programar primero implica:

1. Aprender a investigar.
2. Aprender a pensar.

Y bueno dicho lo cual quieres un campo para ISBN ... si buscas (aqui lo primero fue pensar que quiero ahora investigarlo) en internet el ISBN tiene un estandar al dia de hoy de 13 digitos (segun wikipedia)... para que quieres 16???
https://es.wikipedia.org/wiki/ISBN

Ahora pones un precio en enteros,... Y si tuviese centavos?? como sea si vez la mayor parte de los sistemas que usan algun tipo de moneda estos campos son con decimales...

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 4
Ha disminuido su posición en 4 puestos en Oracle (en relación al último mes)
Gráfica de Oracle

Error ORA-00907 al crear una tabla en Oracle

Publicado por Antonio (2 intervenciones) el 05/07/2018 22:03:16
jaja, toda una clase de Oracle, muy bien profe, aunque creo que lo que le está sucediendo es que a INTEGER no se le especifical el tamaño, o sea es incorrecto poner: isbn INTEGER(16) not null, esto provoca el error ORA-00907, lo correcto sería: isbn INTEGER not null.
Y por supuesto estoy de acuerdo con todo lo otro que se explica en la respuesta.
El caso del CHAR es un tipo de datos que sólo se usa para datos de tamaño fijo, y aún así yo prefiero el varchar2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar