【发布时间】:2015-05-27 16:15:12
【问题描述】:
我正在尝试UPDATE 一个名为INV_SUPPLIER 的列,如果该列不以ES 开头并且不包含NO_VALIDO 和IS NOT NULL,我必须在INV_SUPPLIER 中添加ES 前缀
列声明: 可空的默认值 INV_SUPPLIER VARCHAR2(32 BYTE) 是
当我选择时:
SELECT *
FROM
EFAC_INVOICE f
WHERE
f.INV_SUPPLIER NOT LIKE 'ES%'
AND
f.INV_SUPPLIER NOT LIKE 'NO_VALIDO'
AND
f.INV_SUPPLIER IS NOT NULL;
似乎给了我正确的数据。
但是当我尝试更新时:
UPDATE EFAC_INVOICE f
SET
f.INV_SUPPLIER='ES'+f.INV_SUPPLIER
WHERE
f.INV_SUPPLIER NOT LIKE 'ES%'
AND
f.INV_SUPPLIER NOT LIKE 'NO_VALIDO'
AND
f.INV_SUPPLIER IS NOT NULL;
但是抛出了错误:
错误 SQL:ORA-01722:número no válido
01722. 00000 - “无效号码”
*原因:指定的号码无效。
*操作:指定一个有效的数字。
知道我哪里错了吗???
【问题讨论】:
-
什么关系型数据库?在 oracle 中使用
||连接。在 SQL 服务器中使用+。你也有一个;在您最后一次检查之前。 -
爱你@xQbert!我只在 SQL 中找到 + 来连接...将其发布为答案!!!
标签: sql sql-update oracle-sqldeveloper