更新带有字符串前缀的列

Update column with String prefix

我正在尝试 UPDATE 一个名为 INV_SUPPLIER 的列,如果该列不是以 ES 开头,我必须将 ES 前缀添加到 INV_SUPPLIER 并且不包含 NO_VALIDO AND IS NOT NULL

列声明: 可空默认值 INV_SUPPLIER VARCHAR2(32 BYTE) 是

当我select:

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;

但抛出错误:

Error SQL: ORA-01722: número no válido
01722. 00000 - "invalid number"
*Cause: The specified number was invalid.
*Action: Specify a valid number.

知道我哪里错了吗???

使用 || 在 oracle 中连接。在 SQL 服务器中使用 +。在上次检查之前你还有一个额外的;