Basándome en ese SQL, se me ha ocurrido uno que a partir del número aleatorio generado por RAND(), y sustituyendo cada dígito por la letra que, gráficamente, más se le parece, te genera directamente el código RANDOM alfanumérico:

Select
Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(
Trim(Char(Int(rand()*100000)))
, '0', 'O'), '1', 'I'), '2', 'Z'), '3', 'E'), '4', 'A'), '5', 'S'), '6', 'b'), '7', 'T'), '8', 'B'), '9', 'q') As Random
from sysibm.sysdummy1

Obtiene el número aleatorio con 5 dígitos y reemplaza:

0 = O
1 = I
2 = Z
3 = E
4 = A
5 = S
6 = b
7 = T
8 = B
9 = q

Saludos

Juan Carlos

---
https://paredes.info
juancar...@paredes.info

El 29/06/2018 12:47, alberto escribió:
El punto y coma del final es para Free Si no trabajas en free se lo
tienes que quitar
/free
  exec SQL Set :RandomNumSQL = Cast(Rand(:InzVal) as Numeric(6, 5));

  RandomNum = %Int(RandomNumSQL * 100000);

  *inlr=*on;

/End-free

Albert Martinez de Urda
 Director TIC
Roler España SLU
Grupo Arcadie

De:        "Javier B." <reiv...@hotmail.com>
Para:        "forum.help400" <forum.help400@listas.combios.es>
Fecha:        29/06/2018 10:48
Asunto:        ** Newsletter ** Re: Algoritmo para generar código
alfanumérico
Enviado por:        forum.help400-boun...@listas.combios.es

-------------------------

Hola Jordi,  lo he probado y no me funciona.
Me da error aquí.

Saludos,
Javier

De: Javier B.
Enviado: jueves, 21 de junio 12:16
Asunto: Re: Algoritmo para generar código alfanumérico
Para: forum.help400

Gracias Jordi!!,  lo probaré.

Un saludo,
Javier
FROM: forum.help400-boun...@listas.combios.es
<forum.help400-boun...@listas.combios.es> on behalf of Jordi S.G.
<fhelp...@yahoo.es>
SENT: Thursday, June 21, 2018 9:42:11 AM
TO: forum.help400@listas.combios.es
SUBJECT: Re: Algoritmo para generar código alfanumérico

Hola Javier,

Puedes utilizar la funcion SQL Rand().

sería algo parecido a esto:

d RandomNumSQL       s              6s 5
d RandomNum             s              5s 0
d Inzval                       s             10i 0

Exec SQL Set :RandNumSQL = Cast(Rand(:InzVal) as Numeric(6, 5));

RandomNum = %Int(RandomNumSQL * 100000;

Si te aseguras en cada llamada a la función, que inzval tenga un
valor distinto al anterior (por ejemplo el valor numérico de un
timestamp + 1 milisegundo), te aseguras un número aleatorio

Espero te sirva de idea.

Jordi.
En miércoles, 20 de junio de 2018 19:55:35 CEST, Javier B.
<reiv...@hotmail.com> escribió:

Hola a todos :

Necesitaría buscar algún algoritmo para programarlo en rpg/400 que
genere un código aleatorio alfanumérico de 5 posiciones y que no se
repita.

Un saludo y gracias por anticipado,
Javier
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.

____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.

Responder a