一张表的两列内容合并为一列后,怎么自动生成新的唯一标识ID

img


oracle数据库的一张表的两列内容合并为一列后,怎么自动生成新的唯一标识ID?

使用guid。获取方式:

select sys_guid() from dual;
SYS_GUID (),是Oracle 8i 后提供的函数。SYS_GUID产生并返回一个全球唯一的标识符(原始值)由16个字节组成。在大多数平台,生成的标识符由主机标符,执行函数的进程或者线程标识符,和进程或线程的一个非重复的值(字节序列)组成。可以用来生成唯一标识ID。



select sys_guid() as id,t.id as a from T_SMRZ t

union all 

select sys_guid() as id,t.gsxxid as b from T_SMRZ t

img

select rowid,* from (你前面的代码) as t

可以用uuid

select sys_guid() from dual;
```sql


```

oracle里面应该也有concat(str1, str2) 这样的函数吧。

uuid

什么uuid,guid的,根本不解决问题
因为你问的本身就是个假问题
你要生成唯一id,总要有个原因吧,你生成了唯一id用来干什么?
如果是用来更新当前表
那么你这根本就是个视图,不是表,不可更新
如果是用来更新原始表,那么你的id才是对应原始表的id,新增的uuid根本和原始表没有一毛钱关系
问问题,要把最终要解决的真实问题放出来,不要只放半个方案,那是在给自己挖坑呢