Tienes varias formas de como resolver esto, lo que no entiendo es porque tienes un valor numerico (que aparentemente siempre será numerico) en un campo de tipo caracter. Si lo que deseas es complentar con CEROS, lo puedes hacer via tu lenguaje de programación o con PostgreSQL usando *lpad()*. Al parecer tienes un problema de diseño.
Para lo que deseas puedes hacer: Select Max(campochar)::integer + 1 as proximo .... Ya para los inserts completas con ceros como sabes. Si puedes modificar esa tabla, trata mejor de agregarle un campo de tipo numerico, pasar los valores convertidos a numericos y elimina el campo caracter. Asi te ahorrarias ese tipo de inconvenientes. Suerte! :: HDS Consultores TI Servidores | Redes | Programacion | GNU/Linux | PostgreSQL Web: http://hdsconsultores.net Blog: http://codigohds.com El 12 de marzo de 2010 09:07, maria teresa tarquino chavez < venec...@hotmail.com> escribió: > > > Hola lista buen día necesito ayuda, tengo una tabla que almacena tbl_sedes > : codigo character(4) y descripcion character(4), etc.., lo que necesito es > crear una función o procedimiento almacenado para que cada vez que se > ingrese una nueva sede se incremete el codigo: ejemplo: > > codigo descripcion > 0001 lara > 0002 valencia > 0003 .... asi sucesivamente > > tengo la idea de hacer lo siguiente: un insert donde primero seleccione el > max luego lo convierto en entero le sumo 1 y luego lo regreso a character > agregandole los 0 que falta... ya se como sacar el max valor, pero no se con > que funcion cambiar ese caracter a entero para luego sumarle el 1 que lo > incremete.. agradeceria su ayuda.. > > > ------------------------------ >