Oracle中的UUID数据类型

rn0zuynd  于 2022-09-18  发布在  Java
关注(0)|答案(1)|浏览(291)

我需要更改下表的规格:

CREATE TABLE STAGE.STG_AAA_PROFILES
(
  SUBSCRIBER         INTEGER,
  USERNAME           VARCHAR2(50 BYTE),
  GROUP_ID           INTEGER,
  PROFILE_ID         INTEGER,
  STATUS             INTEGER,
  PASSWORD_TYPE      INTEGER,
  EXPIRATION         DATE
)

我得让它看起来像是:

CREATE TABLE STAGE.STG_AAA_PROFILES
(
  SUBSCRIBER         UID,
  USERNAME           VARCHAR2(50 BYTE),
  GROUP_ID           INTEGER,
  PROFILE_ID         UID,
  STATUS             INTEGER,
  PASSWORD_TYPE      INTEGER,
  EXPIRATION         DATE
)

如何更改TABLE以UID数据类型替换INTEGER?

o4tp2gmn

o4tp2gmn1#

Oracle没有UID数据类型。

使用:

  • VARCHAR2(36)将UUID存储为格式化的十六进制字符串(32个十六进制字符和4个破折号);或
  • RAW(16)将UUID存储为16字节(128位)。

如何更改TABLE以UID数据类型替换INTEGER?

ALTER TABLE STAGE.STG_AAA_PROFILES ADD subscriber_uuid VARCHAR2(36);

然后将现有的subscriber列从整数转换为UUID或为表中的行生成UUID。最后:

ALTER TABLE STAGE.STG_AAA_PROFILES DROP COLUMN subscriber;
ALTER TABLE STAGE.STG_AAA_PROFILES RENAME COLUMN subscriber_uuid TO subscriber;

相关问题