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

[SOLUCIONADO] necesito saber como quitar el incremento a una secuencia con oracle10g

Estas en el tema de necesito saber como quitar el incremento a una secuencia con oracle10g en el foro de Oracle en Foros del Web. hola veran tengo un problema tengo una tabla empleados la cual designe como clave primaria la columna cedula y bueno cuando la crea la estableci ...
  #1 (permalink)  
Antiguo 27/02/2013, 13:34
 
Fecha de Ingreso: noviembre-2011
Ubicación: Cartago
Mensajes: 39
Antigüedad: 7 años, 7 meses
Puntos: 0
Pregunta necesito saber como quitar el incremento a una secuencia con oracle10g

hola veran tengo un problema tengo una tabla empleados la cual designe como clave primaria la columna cedula y bueno cuando la crea la estableci como nueva secuencia me imagino que es lo normal, en fin el problema es que si inserto desde oracle la cedula que yo digito sale bien, pero cuando lo hago desde c# me lo cambia por valores que se van incrementado y me gustaria saber como puedo eliminar el incremento en esa clave primaria gracias
  #2 (permalink)  
Antiguo 27/02/2013, 13:56
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.318
Antigüedad: 11 años, 7 meses
Puntos: 2653
Respuesta: necesito saber como quitar el incremento a una secuencia con oracle10g

Las SEQUENCES, que yo sepa, son independientes del uso, es decir, no intervienen a menos que lo indiques expresamente, por lo que la única forma en que C# la use es si la tienes en el código del INSERT, o bien en un TRIGGER.
¿Cómo es que esa sequence llega a ser usada?
Muéstranos el SQL que usas en cada caso.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 27/02/2013, 14:36
 
Fecha de Ingreso: noviembre-2011
Ubicación: Cartago
Mensajes: 39
Antigüedad: 7 años, 7 meses
Puntos: 0
Respuesta: necesito saber como quitar el incremento a una secuencia con oracle10g

gracias por responder ve esta es mi tabla

Código SQL:
Ver original
  1. CREATE TABLE  "REGISTRO_PROVEEDORES"
  2.    (    "IDENTIFICACION" NUMBER NOT NULL ENABLE,
  3.     "EMPRESA" VARCHAR2(50),
  4.     "NOMBRE_AGENTE" VARCHAR2(50) NOT NULL ENABLE,
  5.     "DIRECCION" VARCHAR2(100) NOT NULL ENABLE,
  6.     "CORREO" VARCHAR2(50),
  7.     "FECHA_INGRESO" DATE NOT NULL ENABLE,
  8.     "DESCRIPCION" VARCHAR2(200),
  9.      CONSTRAINT "REGISTRO_PROVEEDORES_PK" PRIMARY KEY ("IDENTIFICACION") ENABLE
  10.    )
  11. /


Código SQL:
Ver original
  1. CREATE OR REPLACE TRIGGER  "BI_REGISTRO_PROVEEDORES"
  2.   BEFORE INSERT ON "REGISTRO_PROVEEDORES"              
  3.   FOR each ROW  
  4. BEGIN  
  5.     SELECT "REG_PROVEEDOR_SEQ".NEXTVAL INTO :NEW.IDENTIFICACION FROM dual;
  6. END;
  7.  
  8. /
Código SQL:
Ver original
  1. ALTER TRIGGER  "BI_REGISTRO_PROVEEDORES" ENABLE
  2. /
Esta es la secuencia que me ha creado
Código SQL:
Ver original
  1. CREATE SEQUENCE   "REG_PROVEEDOR_SEQ"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 41 CACHE 20 NOORDER  NOCYCLE
y por ultimo mi consulta desde c#
Código C#:
Ver original
  1. string query = "insert into REGISTRO_PROVEEDORES values (:identificacion,:empresa,:nombre,:direccion,:correo,:fecha,:descripcion)";
  2.         cmd = new OracleCommand(query, cnn);
  3.         adapt = new OracleDataAdapter(cmd);
  4.         adapt.SelectCommand.Parameters.Add(":identificacion",OracleType.Number).Value = identificacion;
  5.         adapt.SelectCommand.Parameters.Add(":nombre", OracleType.VarChar).Value = nombre;
  6.         adapt.SelectCommand.Parameters.Add(":empresa", OracleType.VarChar).Value = empresa;
  7.         adapt.SelectCommand.Parameters.Add(":correo", OracleType.VarChar).Value = correo;
  8.         adapt.SelectCommand.Parameters.Add(":direccion", OracleType.VarChar).Value = direccion;
  9.         adapt.SelectCommand.Parameters.Add(":descripcion", OracleType.VarChar).Value = descripcion;
  10.         adapt.SelectCommand.Parameters.Add("fecha", OracleType.DateTime).Value = fecha;
  11.         datos = new DataSet();
  12.         adapt.Fill(datos);
eso es lo que tengo de codigo gracias por su ayuda

Última edición por gnzsoloyo; 27/02/2013 a las 16:48 Razón: Codigos mal etiquetados
  #4 (permalink)  
Antiguo 27/02/2013, 17:49
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.318
Antigüedad: 11 años, 7 meses
Puntos: 2653
Respuesta: necesito saber como quitar el incremento a una secuencia con oracle10g

Bueno, francamente no te entiendo.
Si lo que quieres es que no use la sequence, ¿por qué no eliminas el TRIGGER?
Esa sería la forma más sencilla.
Si el valor de "identificador" lo vas a ingresar del modo que lo haces, no tiene ningún sentido que exista ese trigger, ni la secuence usada.
Ahora bien, si puede que no ingreses datos, y pretendes que se genere un incremental para cubrirlo, estás cometiendo errores fundamentales, porque un mismo atributo en una entidad, no puede tener dos dominios distintos: O es una cédula, o es un autoincremental, pero no puedes usar los dos al mismo tiempo, porque eventualmente puedes tener conflictos cuando uno se solape con el otro.
¿Se entiende el problema?

Quita el TRIGGER y envía el dato como obligatorio.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 27/02/2013, 18:24
 
Fecha de Ingreso: noviembre-2011
Ubicación: Cartago
Mensajes: 39
Antigüedad: 7 años, 7 meses
Puntos: 0
Respuesta: necesito saber como quitar el incremento a una secuencia con oracle10g

ok gracias, pero yo elimino la secuencia que se creo y cuando inserto de nuevo me dice que falta el reg_proveedor_seq y no se como arreglar eso para que la cedula que yo introduzca sea clave primaria ahi disculpas pero apenas estoy aprendiendo acerca de oracle
  #6 (permalink)  
Antiguo 27/02/2013, 18:44
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.318
Antigüedad: 11 años, 7 meses
Puntos: 2653
Respuesta: necesito saber como quitar el incremento a una secuencia con oracle10g

Quitas la secuencia, pero ¿quitas el trigger y su activación?
Básicamente, menos la tabla, debes quitar todo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 27/02/2013, 19:30
 
Fecha de Ingreso: noviembre-2011
Ubicación: Cartago
Mensajes: 39
Antigüedad: 7 años, 7 meses
Puntos: 0
Respuesta: necesito saber como quitar el incremento a una secuencia con oracle10g

Genial eso era lo que buscaba gracias por tu respuesta, ya me estaba preocupando un poco saludos a la distancia desde Costa Rica

Etiquetas: clave, incremento, llaves, oracle10g, primaria, secuencias
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 17:10.