目前,我在一个DB2表中有一个列,它通过一个字符加密的值通过网络调用和过程传递。它是带有用于加密的CSSID的类型字符(13)。
这已经成为一个巨大的痛苦,通过多个API,但最初是为了让我们使用一个独特的ID调用,而不是主要的关键。
在DB2-400中,对于惟一且在插入时随机创建但不需要解密的13个或更多字符串(仅是一个普通字符串),什么是次等的?
是否有一种通常被吸引到这方面的方法?我们不传递安全数据,所以不需要加密,但是我们只想要一个随机创建的、唯一的字符
发布于 2020-02-22 19:10:02
试试hex(generate_unique())。它是唯一的CHAR(26)字符串。
或to_char(timestamp(generate_unique()), 'YYYYMMDDHH24MISSFF6').您也可以使用字符函数的格式。比方说,使用像FF6SSMIHH24DDMMYYYY这样的反向格式可能是有用的,以避免在繁重的插入活动中出现唯一的索引页争用。
发布于 2020-02-21 21:16:22
这是一个不适合评论部分的评论。
我再也不能访问DB2-400了,但是我在DB2 10.5中测试了下面的代码。
create sequence seq1;
select concat('A', varchar_format(next value for seq1, '000000000000')) as my_id
from sysibm.sysdummy1;如果连续运行4次,则结果如下:
A0000000000001
A0000000000002
A0000000000003
A0000000000004也许DB2-400中有类似的东西。
发布于 2020-02-21 23:18:16
听起来你可能在用GENERATE_UNIQUE()
GENERATE_UNIQUE函数返回一个位数据字符串13字节长(CHAR(13)用于位数据)
和加密没什么关系..。
在我看来,这是一个理想的解决方案,它产生了一个独特的值,而不是一个简单的数字标识。那么你有什么问题呢?
https://stackoverflow.com/questions/60345283
复制相似问题