-1

我有以下代码,我想比较两个字符串(varchars)。

如果 item.item_name 在任何地方包含字符串设备类型,我希望它返回记录。

但是我收到了一个错误,在上面的命令中说明了 INVALID NUMBER('%' + equipment_type + '%')。

select * from equipment_type
join item on upper(item.item_name) like upper('%' + equipment_type + '%') 

我意识到问题是将通配符字符串添加到变量设备类型。有谁知道如何让这个通配符比较起作用?

4

1 回答 1

2

注意:我最初在评论中回答了这个问题。从那时起,有人建议我在此处发布解决方案作为“真实”答案。开始...

Oracle 仅将 + 用于数字和日期数学运算。对于字符串连接,请使用双杠 ( ||):

select * from equipment_type
join item on upper(item.item_name) like upper('%' || equipment_type || '%')

                       The only changes are here  ^^   ... and here ^^
于 2013-06-14T22:07:30.003 回答