update tac_master
set msg = (select 'Yes,this is a 4G supportive handset.Marketing Name'||MKT_NAME||' of LTE:1800 Manufacturer#'||manufacturer
from tac_master)
where lte_1800='Yes';
附加表格数据和结构Table sample
答案 0 :(得分:0)
对于您指定的代码,只需将子查询更改为值,因为您使用常量值更新它 - 您不需要再次查询它以获取mkt_name和制造商值,因为它们可用在更新声明中:
update tac_master
set msg = 'Yes,this is a 4G supportive handset.Marketing Name'||MKT_NAME||' of LTE:1800 Manufacturer#'||manufacturer
where lte_1800='Yes';
对于在子查询返回多个值时更新行的一般问题 - 你不能,这就是为什么你得到这个错误,Oracle必须知道当前必须修改的值和以你自己的方式去做,你没有定义它