将Raw(16)转换为GUID

 李-小-霞_973 发布于 2023-02-03 10:23

有没有办法创建一个SQL脚本,将Oracle的列表转换RAW(16)GUID

我需要找到一种简单快捷的方法来转换大约1400万件物品.我已将列表导出到多个分隔文件,并且我可以将此数据导入到模式中.

1 个回答
  • A RAW(16)基本上一个GUID:它是一个16字节的十六进制值.所以一种选择就是不管它.Oracle将隐式地在字符和十六进制之间进行转换,因此如果您要查找其原始值为的行,则FE2BF132638011E3A647F0DEF1FEB9E8可以在查询中使用字符串:

    SELECT *
    FROM myTable
    WHERE myRaw16Column = 'FE2BF132638011E3A647F0DEF1FEB9E8';
    

    如果你想改变RAW(16),以CHAR(32)对您的转换,您可以使用RAWTOHEX作为@tbone建议.

    INSERT INTO NewTable (myGUIDColumn, ...)
      SELECT RAWTOHEX(myRawColumn), ...
      FROM OldTable
    

    如果你想让它成为一个CHAR(36)破折号格式的GUID,那么事情会很快变得复杂:

    INSERT INTO NewTable (myGUIDColumn, ...)
      SELECT REGEXP_REPLACE(myRaw16Column, '(.{8})(.{4})(.{4})(.{4})(.*)', '\1-\2-\3-\4-\5'), ...
      FROM OldTable
    

    2023-02-03 10:24 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有