Autogenerar código

Bueno el problema que tengo es el referido a como generar el código de un cliente el formato de este debe ser del siguiente modo Cli0001, Cli0002,... Cli0010, ... Cli0100, etc. Es decir cuando ingreso los demás campos del cliente y después de presionar el botom gurdar debe aparecer en el campo código "Cli0001" si este ya existe en la base de datos debe de gererarme el código "Cli0002" y así sucesivamente te agradecería mucho si puedes indicarme el script para resolver este problema

1 Respuesta

Respuesta
1
Prueba con lo siguiente.
Para buscar cual es el último código y sumarle uno antes de grabar para asignarle el código:
Oracle:
select max(to_number(substr(codigo,4))) from clientes;
Sybase - SQL Server:
select max(convert(numeric,(substr(codigo,4))))
from clientes;
La función substr sirve para traer parte de un string:
substr(cadena, inicio [, long])
siendo cadena el texto donde queremos buscar
inicio la posición del caracter donde queremos empezar
long ( opcional ) indica la longitud del texto que queremos traer, en caso de omitirlo se considera el total del texto:
substr('hola',2) = ola
substr('hola',3,2) = la
To_number - Convierte un texto en número ( solo Oracle )
Convert(numeric, cadena) - idem ( Sybase y SQL Server)
Se me olvida la segunda parte:
Una vez conseguido el número máximo lo concatenamos con el prefijo cli.
Ejemplo en Oracle - PB
Integer li_numero
String ls_codigo
select max(to_number(substr(codigo,2)))
into :li_numero
from cliente;
if isNull(li_numero) then
li_numero = 0
end if
li_numero ++
ls_codigo = 'cli' + String(li_numero,'0000')

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas