Reemplazar valor de columna en tabla

Bego
03 de Enero del 2006
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

Jor-El
03 de Enero del 2006
Bueeeeeeeno seremos buenos.

UPDATE MI_TABLA
SET MI_CAMPO = substr(MI_CAMPO,1,length(MI_CAMPO)-3)
WHERE PATATIN PATATAN.............


Bego
03 de Enero del 2006
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