我正在尝试通过附加字符串“999”来更新多行中的单个列:
UPDATE integration.ol_orders
SET order_id = ((SELECT order_id
FROM integration.ol_orders
WHERE status = 2) || '999')
WHERE status = 2
但无论出于何种原因,我不断收到“ORA-01427:单行子查询返回多个行提示”的错误。
所以,当我迭代我的 n 行时,我正在尝试做:
a1 = a1 || '999'
a2 = a2 || '999'
a3 = a3 || '999'
an = an || '999'
有什么建议吗?
编辑:将“+”更改为“||”,仍然没有成功
最佳答案
子查询看起来没有必要,这样做应该可行:
UPDATE integration.ol_orders
SET order_id = order_id || '999'
WHERE status = 2
如果我没记错的话,Oracle 使用 ||
进行连接。如果它是整数,可能需要将 order_id
转换为字符类型,我不确定,目前无法测试。 (如注释中所述,转换应该是隐式的,否则您可以使用 TO_CHAR()
显式转换它)。
确保在运行之前备份或复制表...
关于sql - 将字符附加到 Oracle SQL 中多行中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28372073/