首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PLPGSQL/Orafce中的文本转换

PLPGSQL/Orafce中的文本转换
EN

Stack Overflow用户
提问于 2020-11-10 05:30:49
回答 1查看 29关注 0票数 1

在从Oracle转换后,我正在使用PL/pgSQL和Orafce。在我在文件中编写的函数中。我想用LATIN1编码来写。我的数据库在UTF8中。

有一些convert函数,但我想我遗漏了一些东西,因为我似乎没有找到我的用例。

代码语言:javascript
复制
convert('testé', 'UTF8', 'LATIN1') ==> in BYTEA test\351

问题是这个函数返回bytea。我怎样才能得到一个text

EN

回答 1

Stack Overflow用户

发布于 2020-11-10 10:43:20

我认为您实际上需要convert_to函数来将text从数据库编码转换为以不同编码编码的bytea

代码语言:javascript
复制
SELECT convert_to('testé', 'LATIN1');

  convert_to  
--------------
 \x74657374e9
(1 row)

结果不能是text,因为该字节序列不是有效的UTF8编码字符串,并且PostgreSQL不能容忍这种数据损坏。

不幸的是,orafce似乎没有提供将二进制数据写入文件的函数,但是也许COPY可以帮助您:

代码语言:javascript
复制
COPY (SELECT textdata FROM texttable ORDER BY something)
   TO 'latin1file' (ENCODING 'LATIN1', FORMAT 'csv');

唯一的缺点是COPY会转义某些字符,如",,因此您可能需要选择字符串中不出现的分隔符或分隔符。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64759537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档