2015-05-27 1 views
0

Im triying в UPDATE столбец с именем INV_SUPPLIER, я должен добавить ES префикс INV_SUPPLIER, если столбец не начинается с ES и не содержит NO_VALIDO И IS NOT NULLстолбца Обновления с префиксом Струнного

декларации

Колонка: Nullable По умолчанию 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; 

Но бросает мне ошибку:

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

Любая идея, где я неправ ???

+0

какие РСУБД? используйте '||' для concat в oracle. используйте '+' на сервере SQL. у вас также есть; перед вашей последней проверкой. – xQbert

+0

love u @xQbert! Я только нашел + для concat в SQL ... отправьте его как ответ !!! –

ответ

1

использование || to concat in oracle. используйте + в SQL-сервере. у вас также есть дополнительные ; до вашей последней проверки

+0

Осталось 11 минут, чтобы принять ...;) спасибо! я покину офис вовремя todayyy –

+1

Всегда бонус. – xQbert

Смежные вопросы