sql - Teradata - CAST 函数的参数必须是相同的字符数据类型 - 这是什么意思?
问题描述
你能帮我解决TD错误吗?
我只是这样做cast(array_type as varchar(200)) as col1
并且它有效,但是当我在与其他列的比较中使用此 col1 时,我得到:
CAST 函数的参数必须是相同的字符数据类型
到底是怎么回事?
解决方案
从 Teradata 文档中查看此参考。您似乎正在将具有已定义字符集的字符类型列转换为具有不同字符集的字符列。换句话说,您正在将一个字符转换为一个字符,只有字符集发生了变化,而不是数据类型发生了变化,但这不是CAST
操作的预期用途。
为了更改字符集,您需要使用TRANSLATE
而不是CAST
. 请记住, 的输出TRANSLATE
可能会为不可转换的字符提供错误,因此您可能希望使用其参数来忽略此类错误。检查此 Teradata 文档参考以获取TRANSLATE
.
如果遇到不可转换字符的问题,请记住检查WITH ERROR
可用的参数。TRANSLATE
根据您的用例,您可以使用空字符串替换占位符字符,或者对包含占位符的行执行一些其他操作。
推荐阅读
- vue.js - 单元测试中的 Quasar Unknown 自定义元素错误
- node.js - 我的 https.post 函数如何知道从 API 调用哪个函数
- javascript - 如何在 JavaScript 中仅获取没有时间的日期对象的日期部分(dd/mm/yyyy)?
- angular - Angular CLI 中未显示字体超赞的图标:8.2.2 改为显示正方形
- c# - 如何从 postgres db 检索到下拉列表?
- parameters - How to assign an output with combinational logic on a parametric design
- typescript - Express 无法读取 Chunked Post 数据
- c# - Chilkat FTP2 下载 (GetFile) 大文件 (≈12 GB)
- sql - 将 group by 从一个测量值插入另一个测量值
- c# - Sensenet:我可以将 lucene 索引文件存储在 azure 文件存储而不是 App_Data 文件夹中吗?