【问题标题】:DB2 encrypt field in select statement选择语句中的 DB2 加密字段
【发布时间】:2021-08-27 13:56:10
【问题描述】:

所以我需要做一个选择语句,同时加密 SHA2_512 中的一个字段。我不确定它是哪个 DB2 版本,但我尝试了两个查询,但都没有工作。

尝试此查询时:

SELECT HEX(HASH_SHA256('ABCDEFGHIJKLMNOPQRZTUVWXYZ'))
FROM SYSIBM.SYSDUMMY1;

我收到以下错误:

错误:DB2 SQL 错误:SQLCODE=-440,SQLSTATE=42884, SQLERRMC=FUNCTION;HASH_SHA256,驱动程序=3.71.22 SQLState:42884 错误代码:-440 错误:DB2 SQL 错误:SQLCODE=-514,SQLSTATE=26501, SQLERRMC=SQL_CURLH200C1,驱动程序=3.71.22 SQLState:26501 错误代码: -514

使用此查询时

SELECT hash('Charlie at IBM', 3)
FROM SYSIBM.SYSDUMMYU;

错误:DB2 SQL 错误:SQLCODE=-440,SQLSTATE=42884, SQLERRMC=FUNCTION;哈希,驱动程序=3.71.22 SQLState:42884 错误代码: -440 错误:DB2 SQL 错误:SQLCODE=-514,SQLSTATE=26501,SQLERRMC=SQL_CURLH200C1,驱动程序=3.71.22 SQLState:26501 错误代码: -514

(在没有哈希函数的情况下,查询运行没有任何问题)。有谁知道我该如何解决这个问题?

我不确定我使用的是哪个 DB2 版本,但通过使用这些查询,我得到了以下结果:

  SELECT GETVARIABLE('SYSIBM.VERSION') FROM SYSIBM.SYSDUMMY1

DSN11015

select  GETVARIABLE('SYSIBM.NEWFUN')  AS COMPATIBILITY from sysibm.sysdummy1

兼容性:V11

https://www.ibm.com/docs/en/db2/11.1?topic=functions-hash

https://www.ibm.com/docs/en/db2-for-zos/12?topic=sf-hash-crc32-hash-md5-hash-sha1-hash-sha256

【问题讨论】:

  • 说实话我不知道。在 DB2 中我可以检查这个吗?
  • 查询无效。在查看一些文档时,我认为它是 z/OS,但无法说明更多。我现在可以问的人是OOO..
  • 这给了我'DSN11015'

标签: db2


【解决方案1】:

您似乎在 V11 兼容模式下使用 Db2-v11 for Z/OS“DSN11015”。

此版本缺少 Db2-v12 for z/OS 中存在的标量函数 HASH_SHA256 (and others)。这就是您使用 Db2-for-z/os 版本获得 sqlcode -440(没有这样的函数 HASH...)的原因。

在 Version-11 中,IBM 记录了一个函数 ENCRYPT_TDES,它可能会对您有所帮助。

Background information on using this function.

如果你有技能,你可以编写自己的函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多