Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Alguien le puede ver el error? en oracle

Estas en el tema de Alguien le puede ver el error? en oracle en el foro de Oracle en Foros del Web. Hola a todos.. de nuevo soy yo.. jeje.. pero quisiera que alguien chequeara este codigo a ver si algo anda mal, porque oracle me arroja ...
  #1 (permalink)  
Antiguo 19/01/2008, 07:37
 
Fecha de Ingreso: enero-2008
Mensajes: 3
Antigüedad: 16 años, 11 meses
Puntos: 0
Alguien le puede ver el error? en oracle

Hola a todos.. de nuevo soy yo.. jeje.. pero quisiera que alguien chequeara este codigo a ver si algo anda mal, porque oracle me arroja el mensaje de error cuando no se cumplen las condiciones.. fino!.. pero cuando si se cumplen. igual me lo arroja!.. aqui les mando una tabla y el codigo a ver si me pueden ayudar a encontrar el error.. y gracias!

CREATE TABLE LUGAR_TABLE (
LUG_PK_LUGAR NUMBER (10) NOT NULL,
LUG_NM_LUGAR VARCHAR2 (100) NOT NULL,
LUG_TP_LUGAR VARCHAR2 (10) NOT NULL,
LUG_FK_LUGAR NUMBER (10) NULL,
CONSTRAINT LUGAR_PK PRIMARY KEY (LUG_PK_LUGAR),
CONSTRAINT LUG_TP_LUGAR_CH CHECK (LUG_TP_LUGAR IN('Continente','Reino','Pais','Estado','Ciudad')) );


CREATE OR REPLACE TRIGGER LEGO.VALIDA_TIPO_LUGAR
BEFORE INSERT OR UPDATE
ON LEGO.LUGAR_TABLE
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE
BEGIN
IF(:NEW.LUG_TP_LUGAR_CH<>'Continente' OR :NEW.LUG_TP_LUGAR<>'Reino' OR :NEW.LUG_TP_LUGAR<>'Pais' OR :NEW.LUG_TP_LUGAR<>'Estado') THEN
RAISE_APPLICATION_ERROR(-20053,'EL TIPO DE LUGAR NO ES VALIDO, DEBE SER CONTINENTE, REINO,PAIS,EDO O CIUDAD');
END IF;
END VALIDA_TIPO_LUGAR;
  #2 (permalink)  
Antiguo 19/01/2008, 09:40
Avatar de RobiBaggio
Colaborador
 
Fecha de Ingreso: enero-2005
Ubicación: Mind
Mensajes: 13.554
Antigüedad: 19 años, 11 meses
Puntos: 150
Re: Alguien le puede ver el error? en oracle

Movido a Oracle desde Ayuda General...
  #3 (permalink)  
Antiguo 21/01/2008, 09:36
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 17 años, 1 mes
Puntos: 85
Re: Alguien le puede ver el error? en oracle

Hola,

1. Habria que cambiar esto
Código:
IF(:NEW.LUG_TP_LUGAR_CH<>'Continente'...
por esto
Código:
IF(:NEW.LUG_TP_LUGAR<>'Continente'...
LUG_TP_LUGAR_CH es el nombre de la constraint, no del campo.

2. Tambien hay que cambiar
Código:
IF(:NEW.LUG_TP_LUGAR_CH<>'Continente' OR 
    :NEW.LUG_TP_LUGAR<>'Reino' OR 
    :NEW.LUG_TP_LUGAR<>'Pais' OR 
    :NEW.LUG_TP_LUGAR<>'Estado') THEN
por
Código:
IF(:NEW.LUG_TP_LUGAR<>'Continente' AND 
    :NEW.LUG_TP_LUGAR<>'Reino' AND 
    :NEW.LUG_TP_LUGAR<>'Pais' AND 
    :NEW.LUG_TP_LUGAR<>'Estado') THEN
3. ¿Por que una doble validacion?, tienes la constraint y el trigger que hacen lo mismo.

4. Tambien tienes la opcion de generar un procedimiento o package que de de alta el registro con previa validacion de datos
Código:
procedure Insertar_Lugar(Nombre, Tipo)
Asi, si los datos son invalidos, no te hace falta llegar al INSERT, ya que puedes generar una excepcion dentro del procedimiento.

Saludos
  #4 (permalink)  
Antiguo 25/01/2008, 12:19
 
Fecha de Ingreso: enero-2008
Mensajes: 3
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Alguien le puede ver el error? en oracle

Disculpen para ver si saben porque sucede esto:

Tengo en mi maquina instalado Oracle 10g, me funciona correctamente,

pero instalé wampserver y no me reconoce el localhost: que quiero decir con esto, no muestra ningun error, pero no me muestra nada......

Gracias de ante mano por su respuesta...
  #5 (permalink)  
Antiguo 25/01/2008, 12:41
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 17 años, 1 mes
Puntos: 85
Re: Alguien le puede ver el error? en oracle

Hola,

No me queda claro si el problema lo tienes con WampServer o con Oracle.

Si por localhost te refieres al Apache, el problema puede ser que tengas dos Apaches intentando utilizar el mismo puerto TCP, te recuerdo que Oracle, dependiendo del tipo de instalacion, utiliza Apache para sus consolas de administracion Web.

Pd, este post no tiene mucha relacion con el que comenzo Carmax, talvez en estos casos hay que abrir un thread nuevo.

Saludos.
  #6 (permalink)  
Antiguo 25/01/2008, 12:58
 
Fecha de Ingreso: enero-2008
Mensajes: 3
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Alguien le puede ver el error? en oracle

Gracias: No el problema es con apache;

si coloco http://127.0.0.1:8080/apex, me abre server de oracle.

si coloco http://127.0.0.1 o http://localhost tambien me sale el server de oracle, pero deberia salir el de apache para poder correr mis programas .php y no lo hace..

De antemano le doy las gracias....
  #7 (permalink)  
Antiguo 25/01/2008, 13:19
 
Fecha de Ingreso: enero-2008
Mensajes: 3
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Alguien le puede ver el error? en oracle

Bueno ya encontre el error,

el error era que tenia una aplicacion que estaba usando el puerto 80..

De antemano le doy las gracias....
  #8 (permalink)  
Antiguo 25/01/2008, 13:25
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 17 años, 1 mes
Puntos: 85
Re: Alguien le puede ver el error? en oracle

Hola,

Puede ser que el servidor Web de Oracle sea el unico que se esta ejecutando,

Si en http://localhost aparece algo de Oracle, eso significa que el puerto 80 ya esta ocupado y talvez sea el mismo puerto que el Apache de WampServer quiera utilizar. Para esto tienes dos opciones:

1. Detener el servidor Web de Oracle, esto solo si no lo utilizas.
2. Cambiar el puerto en que se ejecuta el Apache de WampServer.

Para ver los puertos ocupados por algun servicio tienes el comando

Código:
netstat -an

EDITADO

Perdon, no me di cuenta que ya habias posteado, me tarde un rato en escirbir :)

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:49.