sql - 将字符附加到 Oracle SQL 中多行中的字符串

标签 sql database oracle

我正在尝试通过附加字符串“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/

相关文章:

MySQL触发器在插入或更新之前将日期值更改为周开始

sql - ORACLe PROCEDURE - AUTHID 仅在模式级别允许

sql - 在 PostgreSQL 函数中声明并返回自定义类型

mysql - 计数树表中子项的数量

sql-server - 无法打开新数据库 'DB Name'。创建数据库被中止(SQL Server,错误 : 948)

mysql - 如何将结果集拆分成更小的子集?

java - 在 Grails + Oracle + CLOB 中使用 PropertyNotInList 时出错

sql - rails : mixing NOSQL & SQL Databases

mysql - 在带有 group by 的 where 子句中使用别名

java - Java EE 中的动态类型表/模型?