Oracle SQL:将 CHR() 函数与 || 结合使用连接和加入

Posted

技术标签:

【中文标题】Oracle SQL:将 CHR() 函数与 || 结合使用连接和加入【英文标题】:Oracle SQL: Using CHR() function with || concatenate and join 【发布时间】:2017-03-20 20:02:45 【问题描述】:

下面的查询返回错误

SELECT 'mailto:'|| fscp.parameter_value || '?subject=' || wfn.subject nid_subject || chr(38)       
FROM apps.wf_notifications wfn, apps.fnd_svc_comp_param_vals_v fscp
WHERE fscp.component_id = :component_id 
AND component_parameter_id = :param
AND wfn.item_key = :itemkey; 

错误

ORA-00923: 在预期的地方找不到 FROM 关键字 00923.00000 - “在预期的地方找不到 FROM 关键字”

当我删除 '|| chr(38)' 在 select 语句的末尾,查询运行良好。 与连接表有关的东西?因为下面的查询也可以正常工作:

select 'Text: '||chr(39)||wfn.notification_id||chr(39) from wf_notifications wfn;

【问题讨论】:

Oracle SQL: Using CHR() function with || concatenate的可能重复 【参考方案1】:

你有这个在select:

|| wfn.subject nid_subject || 

也许你打算:

SELECT 'mailto:'|| fscp.parameter_value || '?subject=' || wfn.subject || nid_subject || chr(38)   
----------------------------------------------------------------------^ 

亚历克斯是对的。问题的关键是它可以在没有chr(38) 的情况下工作。所以,试试这个:

SELECT ('mailto:'|| fscp.parameter_value || '?subject=' || wfn.subject || chr(38) ) as nid_subject 

注意使用括号和as 来明确定义列别名。

【讨论】:

我怀疑 nid_subject 应该是整个表达式的别名,而不是另一列 - 部分原因是它没有表(别名)前缀。但很难说... @AlexPoole 。 . .你说的对。问题中甚至还有提示。

以上是关于Oracle SQL:将 CHR() 函数与 || 结合使用连接和加入的主要内容,如果未能解决你的问题,请参考以下文章

oracle 查找某字段中含有回车换行的记录,请问怎么写SQL?

在oracle里如何去掉数据后的回车换行符

Oracle中chr()和ascii()函数(附:常用字符与ascii对照表)

在oracle里如何去掉数据后的回车换行符

在oracle里如何去掉数据后的回车换行符

oracle数据库函数大全