我们有一些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%';
我从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。该列只包含文本。 我得到了一个标准的信息: 我们将不胜感激。我已经在这方面工作了一段时间了。如果你有任何问题请告诉我。
并添加了相应的类。 当我调用这个函数- 我得到了以下错误- 在返回解析后的值之前,我还需要将转换回。 在调用函数时- 我得到了以下错误-
我的任务是完成以下两个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
我不明白,为什么我会有这个错误: 04-24 22:11:51.263:W/System.err(27504):org.JSON.jsonException:Value不能转换为JSONArray
我想更新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
主要内容:关于类型转换函数的说明转换构造函数能够将其它类型转换为当前类类型(例如将 double 类型转换为 Complex 类型),但是不能反过来将当前类类型转换为其它类型(例如将 Complex 类型转换为 double 类型)。 C++ 提供了 类型转换函数(Type conversion function)来解决这个问题。类型转换函数的作用就是将当前类类型转换为其它类型,它只能以成员函数的形式出现,也就是只能出现在类中。