[20250410]GUID转换GUID_BASE64(补充4).txt --//昨天重新写bash shell脚本,总感觉遗漏了什么,oracle内部应该有对应函数转换GUID_BASE64。 --//看了相关文档,发现使用UTL_ENCODE.BASE64_ENCODE函数,测试看看。 1.环境: SCOTT@book01p> @ver2 ============================== PORT_STRING : x86_64/Linux 2.4.xx VERSION : 21.0.0.0.0 BANNER : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production BANNER_FULL : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production Version 21.3.0.0.0 BANNER_LEGACY : Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production CON_ID : 0 PL/SQL procedure successfully completed. 2.测试: --//21c下: SYS@book> select CON_ID,DBID,CON_UID,NAME,GUID,GUID_BASE64 from V$CONTAINERs; CON_ID DBID CON_UID NAME GUID GUID_BASE64 ------ ---------- ---------- -------- -------------------------------- ------------------------ 1 1617337831 1 CDB$ROOT C8209F27C6B16005E053362EE80AE60E yCCfJ8axYAXgUzYu6ArmDgA= 2 2763294012 2763294012 PDB$SEED 1F36DBBBA2C8169BE0636538A8C04D12 Hzbbu6LIFpvgY2U4qMBNEgA= 3 1073777561 1073777561 BOOK01P 1F36F47256D41C08E0636538A8C03260 Hzb0clbUHAjgY2U4qMAyYAA= SCOTT@book01p> SELECT UTL_RAW.CAST_TO_varchar2(UTL_ENCODE.BASE64_ENCODE('1F36F47256D41C08E0636538A8C0326000')) c30 FROM dual; C30 ------------------------------ Hzb0clbUHAjgY2U4qMAyYAA= --//现在明白当时为什么不行,当时UTL_ENCODE.BASE64_ENCODE的输出是raw类型,要转换成字符串类型,结果就对了。 --//我在结尾补了2个00,不然还是结尾对不上。就是21c改变算法,加入两个0在做运算。 --//18c的情况: SYS@192.168.x.y:1521/orclcdb> select CON_ID,DBID,CON_UID,NAME,GUID,GUID_BASE64 from V$CONTAINERs; CON_ID DBID CON_UID NAME GUID GUID_BASE64 ------ ---------- ---------- -------- -------------------------------- ------------------------ 1 2756091850 1 CDB$ROOT 64A52F53A7683286E053CDA9E80AED76 ZKUvU6doMobgU82p6Artdg== 2 1474312904 1474312904 PDB$SEED 742DCFA2CE044FDEE0558253DD747177 dC3Pos4ET97gVYJT3XRxdw== 3 115310104 115310104 ORCL 74A69DC145F5662BE0558253DD747177 dKadwUX1ZivgVYJT3XRxdw== SCOTT@book01p> SELECT UTL_RAW.CAST_TO_varchar2(UTL_ENCODE.BASE64_ENCODE('74A69DC145F5662BE0558253DD747177')) c30 FROM dual; C30 ------------------------------ dKadwUX1ZivgVYJT3XRxdw== --//完全对上。 --//反过来使用UTL_ENCODE.BASE64_DECODE解码。不过也需要将字符串变成raw类型再计算。 SCOTT@book01p> SELECT UTL_ENCODE.BASE64_DECODE(UTL_RAW.CAST_TO_RAW('dKadwUX1ZivgVYJT3XRxdw==')) c40 FROM dual; C40 ---------------------------------------- 74A69DC145F5662BE0558253DD747177
[20250410]GUID转换GUID_BASE64(补充4).txt
来源:这里教程网
时间:2026-03-03 21:50:40
作者:
编辑推荐:
- [20250410]GUID转换GUID_BASE64(补充4).txt03-03
- Oracle用户的PASSWORD_LIFE_TIME有哪些坑?03-03
- [20250409]执行计划出现OPT_PARAM('_optim_peek_user_binds' 'false')的相关问题.txt03-03
- Oracle19C 19.27补丁发布03-03
- Oracle19C低版本一天遭遇两BUG(ORA-04031/ORA-600)03-03
- Oracle 11g rac adg for linux安装文档03-03
- Oracle 11g rac adg主备库切换03-03
- 记一次ORA600内部错误故障分析与修复实录03-03
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 数据库优化之存储电池失效排查
数据库优化之存储电池失效排查
26-03-03 - Oracle用户的PASSWORD_LIFE_TIME有哪些坑?
Oracle用户的PASSWORD_LIFE_TIME有哪些坑?
26-03-03 - Oracle19C 19.27补丁发布
Oracle19C 19.27补丁发布
26-03-03 - Oracle19C低版本一天遭遇两BUG(ORA-04031/ORA-600)
- Oracle 11g rac adg for linux安装文档
Oracle 11g rac adg for linux安装文档
26-03-03 - 记一次ORA600内部错误故障分析与修复实录
记一次ORA600内部错误故障分析与修复实录
26-03-03 - 升级到oracle 19.8后vm_concat函数不可用怎么解决
升级到oracle 19.8后vm_concat函数不可用怎么解决
26-03-03 - RAC磁盘头损坏问题处理
RAC磁盘头损坏问题处理
26-03-03 - 数据库管理-第316期 Oracle DB 23.8新特性一览(20250417)
- ASM 内存不足引发核心数据库故障分析与解决方案
ASM 内存不足引发核心数据库故障分析与解决方案
26-03-03
