El 9 de abril de 2009 10:50, Alvaro Herrera <[email protected]>escribió:
> Virginia escribió: > > > Creo que lo mas sano será entonces hacer un script que separe la cadena y > > agregar otro campo a la base de datos porque al tratar de hacer una vista > > como esta: > > Que script ni nada ... un simple > > ALTER TABLE vm009_tope_sobre1 ADD COLUMN nueva_col TEXT; > UPDATE vm009_tope_sobre1 SET nuevacol = substring(cod_concepto, 2, 4); > > Sin embargo creo que tu problema se puede ver aquí: > > > substring(f.cod_concepto::text, 2, 4) = '0001'::text; > > ¿De qué tipo es cod_concepto? Quizás, si es de tipo numérico, los 0 > iniciales los está eliminando y por eso el substring no funciona. > > -- > Alvaro Herrera > http://www.amazon.com/gp/registry/3BP7BYG9PUGI8 > "Porque Kim no hacia nada, pero, eso sí, > con extraordinario éxito" ("Kim", Kipling) > La tabla es esta: CREATE TABLE autoservicios.toi005_concepto ( co_concepto integer NOT NULL DEFAULT nextval('autoservicios.soi005_co_concepto'::regclass), cod_concepto character varying(6) NOT NULL, -- Código del concepto según tx_tipo character varying(1) NOT NULL DEFAULT 'A'::character varying, -- A si es asignación D si es deducción tx_concepto character varying(50) NOT NULL, -- Descripción del concepto CONSTRAINT toi005pk_concepto PRIMARY KEY (co_concepto) ) y el script es para migrar los 500000 registros que tiene esta tabla y partir los 6 caracteres que tiene cod_concepto para que cod_concepto sea de 4 agregar una nueva columna y poner los 2 primeros en esta -- ----------------------------------------------------------- ------------------------ Virginia ------------------------ -----------------------------------------------------------
