当前位置: 首页 > 知识库问答 >
问题:

转换函数不能使用CLOB数据类型

龙令雪
2023-03-14

我们有一些lob和varchar2类型的数据被错误地编码为AL32UTF8,我们需要将其编码转换为we8mswin1252字符集。我得到了用于字符集转换的convert函数,这个函数在varchar2 datatype中工作得很好,但在CLOB中使用时给出了一些模糊的字符。我当前的编码是AL32UTF8。

 select value,CONVERT(value,'we8mswin1252','AL32UTF8'),CONVERT(to_clob(value),'we8mswin1252','AL32UTF8') from temp;

数据库:Oracle 12c

select * from nls_database_parameters where parameter like  '%CHARACTERSET%';

共有1个答案

令狐钧
2023-03-14

我从Oracle得到的答案是:“CONVERT函数是一个遗留函数,不应该用于任何与应用程序相关的字符集转换。CLOB特别棘手,因为它在多字节数据库中使用特殊的存储编码,如AL32UTF8。CONVERT仅对某些修复任务有用。在html" target="_blank">数据库字符集以外的字符集中处理数据的支持方式是使用原始数据类型和来自包UTL_I18N的转换过程。但是,UTL_I18N不支持CLOB。因此,您必须读取32K块的CLOB,使用UTL_I18N.STRING_TO_RAW将它们转换为WE8MSWIN1252,进行后处理并使用UTL_FILE.PUT_RAW写入文件。“

另外,我得到了另一个unix命令iconv,它转换文件编码,所以基本上我是把db输出写到文件中,转换它的编码并传输数据。

谢谢

 类似资料:
  • 我有一个Oracle表,其中列类型为CLOB。我想保留列顺序并将数据类型更改为VARCHAR2。该列只包含文本。 我得到了一个标准的信息: 我们将不胜感激。我已经在这方面工作了一段时间了。如果你有任何问题请告诉我。

  • 并添加了相应的类。 当我调用这个函数- 我得到了以下错误- 在返回解析后的值之前,我还需要将转换回。 在调用函数时- 我得到了以下错误-

  • 我不明白,为什么我会有这个错误: 04-24 22:11:51.263:W/System.err(27504):org.JSON.jsonException:Value不能转换为JSONArray

  • 我的任务是完成以下两个Oracle函数: 将CLOB作为输入,并使用AES-256对其进行加密,然后返回加密的CLOB 将加密的CLOB作为输入,使用AES-256对其解密并返回解密的CLOB 它抛出的错误是: ORA-06502:PL/SQL:数值或值错误:十六进制到原始转换错误 ORA-06512:在“sn_pre_stage_415.f_decrypt_clob”,第33行 06502。00

  • 我想更新xml中的一个值 更新trb1_sub_errs set error_status='ready_to_recycle',general_data_c=updatexml(xmltype(general_data_c),'//data/cmheadertransaction/transactionrsn/text()','creq'),其中sub_trx_id=4678604091;更新t

  • JavaScript是一种动态类型语言,变量是没有类型的,可以随时赋予任意值。但是,数据本身和各种运算是有类型的,因此运算时变量需要转换类型。大多数情况下,这种数据类型转换是自动的,但是有时也需要手动强制转换。 强制转换 Number函数:强制转换成数值 String函数:强制转换成字符串 Boolean函数:强制转换成布尔值 自动转换 自动转换为布尔值 自动转换为字符串 自动转换为数值 小结 加