【发布时间】:2020-12-18 18:52:08
【问题描述】:
我需要将 Netezza DB 中的数据提取到文本文件中。在这个过程中,我需要在数据中存在的\ or " 之前添加额外的\。当我尝试使用下面提到的 sql 查询时,它正在工作。
select guest_key, cast(replace_nvarchar(replace_nvarchar(guest_last_nm,'\','\\'),'"','\"') as nchar(100)) as guest_last_nm from admin.cdr_mrdw_dim_messaging_ota limit 100;
但是当我在 shell 脚本中使用相同的查询时,它说函数不存在。
nzsql -d $NZ_DATABASE -F $'\t' -A -c "select guest_key, cast(replace_nvarchar(replace_nvarchar(guest_last_nm,'\','\\'),'"','\"') as nchar(100)) as guest_last_nm from admin.cdr_mrdw_dim_messaging_ota limit 100;" > cdr_mrdw_dim_messaging_ota.txt
错误:函数 'replace(varchar, unknown)' 不存在。无法识别满足给定参数类型的函数。您可能需要添加显式类型转换```
也试过翻译功能。已显示相同的错误。这是什么错误以及如何解决?
谢谢。
【问题讨论】:
-
要将查询作为通过 shell 命令行传递的带引号的文本字符串包含在内,您需要观察与周围引号匹配的任何嵌入引号的正确 shell 转义语法(以及反斜杠,假设反斜杠是您的转义字符)。
标签: sql shell netezza data-extraction nzsql