Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-07-2016
ciudad54 ciudad54 is offline
Miembro
 
Registrado: oct 2008
Posts: 27
Poder: 0
ciudad54 Va por buen camino
Question Remplazar un caracter en Firebird 1.5

Tengo una base de datos Firebird 1.5, con 100mil registros.
Por alguna razón se me planteo que debo cambiar dichos registros en un campo llamado EXP de la Tabla GES, el cual contiene una especie de ID con la siguiente característica: H01-###### (números secuenciales). Se me solicitó cambiar la H por 0, para que sea 001-.
Busque las funciones Replace, Overlay en Firebird pero la versión en la que se utiliza la DB no soporta dichas funciones.

Alguna alternativa para hacer un reemplazo de dicho caracter?

Gracias de antemano.
Responder Con Cita
  #2  
Antiguo 21-07-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Código SQL [-]
update tbClientes a
set a.nombre='0'|| (select SUBSTRING(b.nombre from 2 for char_length(a.nombre)) from tbClientes b where a.id=b.ID)

Imágenes Adjuntas
Tipo de Archivo: png ejem.png (7,1 KB, 3 visitas)

Última edición por Casimiro Notevi fecha: 21-07-2016 a las 17:12:01.
Responder Con Cita
  #3  
Antiguo 21-07-2016
ciudad54 ciudad54 is offline
Miembro
 
Registrado: oct 2008
Posts: 27
Poder: 0
ciudad54 Va por buen camino
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 2, char 67.
char_length.
Responder Con Cita
  #4  
Antiguo 21-07-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Quizás la versión 1.5 todavía no tenía esa función, pero puede que tengas length(loquesea), no lo recuerdo de memoria, echa un vistazo al manual
Responder Con Cita
  #5  
Antiguo 21-07-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Así es, en la versión 1.5 aún no existe esa función. Pero podes arreglarte de este modo:
Código SQL [-]
SET TERM ^ ;

CREATE OR ALTER PROCEDURE LEN_STR (
    PARAMSTR VARCHAR(255))
RETURNS (
    RESULT INTEGER)
AS
DECLARE VARIABLE AUX VARCHAR(255);
BEGIN
  AUX = '';
  RESULT = 0;
  WHILE (NOT PARAMSTR LIKE AUX) DO
  BEGIN
    AUX = AUX || '_';
    RESULT = RESULT + 1;
  END
  SUSPEND;
END^

SET TERM ; ^
Y luego podes usar la sentencia que te indicó Casimiro con un pequeño cambio:
Código SQL [-]
UPDATE TABLA T
  SET T.CAMPO = '0' || SUBSTRING( CAMPO FROM 2 FOR (SELECT RESULT FROM LEN_STR(CAMPO))-1 )

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Remplazar caracter comilla simple DenisDiaz SQL 3 13-08-2012 18:52:28
remplazar mas de un caracter en string gonza_619 Varios 8 09-11-2010 20:22:33
Remplazar un caracter dentro de una cadena Coco_jac Varios 5 01-12-2005 17:36:27
caracter Ñ,ñ en firebird rqc Firebird e Interbase 1 09-12-2004 13:24:49
Remplazar un caracter por otro(s) en un string ctronx Varios 2 29-09-2004 00:32:00


La franja horaria es GMT +2. Ahora son las 15:24:27.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi