Reemplazar valor de columna en tabla
Hola a todos,
Estoy buscando ejemplos de c贸mo hacer una update en un tabla que haga lo siguiente:
para todos los registros de una tabla, tengo que modificar el valor de una de sus columnas, de modo que el nuevo valor sea el valor antiguo menos los 3 primeros caracteres.
C贸mo podria hacerlo? Estoy haciendo una prueba con un cursor pero no lo tengo muy claro
Me podr铆as ayudar?
Muchas gracias
Bego
Estoy buscando ejemplos de c贸mo hacer una update en un tabla que haga lo siguiente:
para todos los registros de una tabla, tengo que modificar el valor de una de sus columnas, de modo que el nuevo valor sea el valor antiguo menos los 3 primeros caracteres.
C贸mo podria hacerlo? Estoy haciendo una prueba con un cursor pero no lo tengo muy claro
Me podr铆as ayudar?
Muchas gracias
Bego
Bueeeeeeeno seremos buenos.
UPDATE MI_TABLA
SET MI_CAMPO = substr(MI_CAMPO,1,length(MI_CAMPO)-3)
WHERE PATATIN PATATAN.............
UPDATE MI_TABLA
SET MI_CAMPO = substr(MI_CAMPO,1,length(MI_CAMPO)-3)
WHERE PATATIN PATATAN.............
Hola,
Muchas gracias por tu respuesta.....
He hecho algo como lo que me indicabas, pero como tengo que modificar todos los registros de una tabla, he hecho un procedimiento almacenado.....pero va a ser que no lo he hecho bien porque no puedo cargarlo mediante la linea de comandos.
El procedimiento es 茅ste:
CREATE PROCEDURE REEMPLAZAR
AS
lineId nvarchar(128);
lineNumberLabel nvarchar(128);
lineSequenceNo nvarchar(128);
ColumnId nvarchar(128);
ColumnLabelId nvarchar(128);
ColumnSequenceNo nvarchar(128);
C1 CURSOR FOR
-- Se toman los valore de la tabla
select line_id, line_number_label, line_sequence_no
from tabla_datos;
BEGIN
OPEN C1;
LOOP
FETCH C1
INTO lineId,lineNumberLabel, lineSequenceNo;
ColumnId := \'2\' + substr(lineId,4);
ColumnLabelId := \'2\' + substr(lineNumberLabel,4);
ColumnSequenceId := \'2\' + substr(lineSequenceNo,2);
UPDATE tabla_datos
SET LINE_ID = ColumnId,
LINE_NUMBER_LABEL = ColumnLabelId,
LINE_SEQUENCE_NO = ColumnSequenceId
WHERE CURRENT OF C1;
END LOOP;
CLOSE C1;
END;
Abusando de ti, me podr铆as decir el error?(sintaxis,....)
Muchas gracias de nuevo
Muchas gracias por tu respuesta.....
He hecho algo como lo que me indicabas, pero como tengo que modificar todos los registros de una tabla, he hecho un procedimiento almacenado.....pero va a ser que no lo he hecho bien porque no puedo cargarlo mediante la linea de comandos.
El procedimiento es 茅ste:
CREATE PROCEDURE REEMPLAZAR
AS
lineId nvarchar(128);
lineNumberLabel nvarchar(128);
lineSequenceNo nvarchar(128);
ColumnId nvarchar(128);
ColumnLabelId nvarchar(128);
ColumnSequenceNo nvarchar(128);
C1 CURSOR FOR
-- Se toman los valore de la tabla
select line_id, line_number_label, line_sequence_no
from tabla_datos;
BEGIN
OPEN C1;
LOOP
FETCH C1
INTO lineId,lineNumberLabel, lineSequenceNo;
ColumnId := \'2\' + substr(lineId,4);
ColumnLabelId := \'2\' + substr(lineNumberLabel,4);
ColumnSequenceId := \'2\' + substr(lineSequenceNo,2);
UPDATE tabla_datos
SET LINE_ID = ColumnId,
LINE_NUMBER_LABEL = ColumnLabelId,
LINE_SEQUENCE_NO = ColumnSequenceId
WHERE CURRENT OF C1;
END LOOP;
CLOSE C1;
END;
Abusando de ti, me podr铆as decir el error?(sintaxis,....)
Muchas gracias de nuevo
