Truncar campo de Tabla con Datos cargados???
Hola a todos, ando necesitando ayuda en lo siguiente: Estoy trabajando en Delphi 7 con una base de datos en InterBase, mi problema es que tengo que truncar un campo de una tabla que es de 255 caracteres y pasar dicho campo a 64 pero no le encuentro la vuelta a como hacerlo porque ya probe con la siguiente sentencia y me tira error lo mismo. Cabe destacar que ya contiene registros cargados que sobrepasan los 64 caracteres.
Update Clientes Set Email SUBSTR(Email,1,64) Agradeceria muchisimo a quien pueda ayudarme. Gracias |
Un Saludo. |
Cita:
|
Cita:
|
Un Saludo. |
Cita:
Aclaro algo que me olvide y lo mejor es por eso que no me funciona lo que me dicen, el campo que quiero modificar tiene datos cargados y pertenece a un dominio xxxx de 255 caracteres, basicamente lo que quiero hacer es truncar los datos del campo Email a 64 caracteres para eso tengo un dominio tambien creado de 64 caracteres, lo que hacia antes era : ALTER TABLE "CLIENTES" ALTER COLUMN "EMAIL" TYPE XXX; pero lo mismo me tira este mensaje: Unsuccessful metadata update New size specified for column EMAIL must be at least 255 characters Statement: ALTER TABLE "CLIENTES" ALTER COLUMN "EMAIL" TYPE XXX despues de probar eso que escribi recien decidi acudir al foro, pero todavia no le puedo econtrar la vuelta. Saludos y espero que puedan ayudarme si necesitan mas datos para poder darme una mano avisen. |
Creo que el sql que ha puesto marcoszorrilla no debe darte ningún error.
|
Cita:
pero sigue sin funcionarme :(. |
Cita:
|
Cita:
Para poder usar esta declaración, antes tienes que copiar esa librería ib_udf.dll a la carpeta \udf de tu Servidor Interbase. Saludos. |
Entonce es cuestión de mirar la documentación para ver cómo se llama esa función en interbase.
|
Cita:
Y desde ya muchisimas gracias por todo el trabajo que brindas al Foro... |
No uso interbase desde 1999, cuando salió firebird.
Si estás obligado a usar interbase, no sé, busca por palabras parecidas, no creo que sea muy diferente. |
Cita:
Revisá si en este [artículo] encontrás lo que estás buscando. Un saludo. Edito: Aunque al parecer, confirma que efectivamente, el nombre sería substr. |
tiene que tener en cuenta que SUBSTR viene en una UDF y está limitada por muy pocos caracteres (creo recordar que solo acepta 180), así pues cuando el varchar tiene más de ese número sale error, para solucionar eso en firebird se creo la función substring que es interna y no viene en UDF, y acepta strings muy largos (no se exactamente el valor pero he probado con caracteres superiores a 2000 caracteres)... según leo por ahí en Interbase no existe dicha función, solo se puede usar la de la Udf y esa era la que se usaba en firebird antes y creo que también tendrá el limite del tamaño de caracteres a 180 (180 es lo que se me vienen a la mente, puede ser un poco más, pero no mayor a 250 caracteres)
|
Pues nada, un programita en delphi que lea el campo, lo recorte y lo guarde. Eso son 5 minutos.
|
Cita:
|
La franja horaria es GMT +2. Ahora son las 05:56:42. |
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