【问题标题】:convert raw text to_char in oracle dbeaver在 oracle dbeaver 中将原始文本转换为_char
【发布时间】:2020-02-10 10:57:15
【问题描述】:

我如何将下面的编码结果返回到字符

SELECT  utl_encode.base64_encode(utl_raw.cast_to_raw('some_text')) COLM FROM DUAL;

我试过了

SELECT  TO_CHAR(utl_encode.base64_encode(utl_raw.cast_to_raw('some_text'))) COLM FROM DUAL;

-- I get error: SQL Error [932] [42000]: ORA-00932: inconsistent datatypes: expected NUMBER got BINARY

我需要它在 char/text 中的原因是因为我发现很难从 dbeaver 复制结果,因为 dbeaver 将结果识别为加密数据,因此进一步加密它或导出空结果。

【问题讨论】:

标签: sql oracle


【解决方案1】:

在您获得的 RAW 值上使用 UTL_RAW.CAST_TO_VARCHAR2

SELECT  utl_raw.cast_to_varchar2(
          utl_encode.base64_encode(
            utl_raw.cast_to_raw('some_text')
          )
        ) COLM
FROM    DUAL;

输出:

|科尔姆 | | :----------- | | c29tZV90ZXh0 |

db小提琴here

【讨论】:

  • 感谢很好的回答,你能解释一下为什么一般TO_CHAR('some_text')会带来错误inconsistent datatypes:?
  • @OmariVictorOmosa TO_CHAR( 'some text!' ) 不会给出任何错误 db<>fiddle。但是,如果您问为什么在将其转换为 RAW 数据类型后会出错;那是因为TO_CHAR 无法处理RAWs,您需要使用一个专门用于处理该数据类型的函数,例如UTL_RAW.CAST_TO_VARCHAR2 来进行转换。
猜你喜欢
  • 2011-11-22
  • 2017-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-24
  • 2011-07-14
  • 1970-01-01
相关资源
最近更新 更多