Database 此查询中的关系运算符无效

Database 此查询中的关系运算符无效,database,oracle,subquery,logic,operators,Database,Oracle,Subquery,Logic,Operators,您好,下午好,我有这个查询,我正在尝试执行,但是在最后两行中,我遇到了无效的关系运算符错误 UPDATE table1 tpg SET comentarios = comentarios ||'Tipo de Cambio Inválido ó Nulo:' ||campo_10, estatus = 'RE' WHERE num_cia = :v_num_cia AND num_usu

您好,下午好,我有这个查询,我正在尝试执行,但是在最后两行中,我遇到了无效的关系运算符错误

UPDATE table1 tpg
   SET comentarios = comentarios
               ||'Tipo de Cambio Inválido ó Nulo:'
               ||campo_10,
       estatus = 'RE'            
WHERE num_cia = :v_num_cia
   AND num_usuario =:v_num_usuario
   AND reg_saai =: v_Interfase
   AND estatus <>'RE'
   AND (CAMPO_10 IS NULL
   OR NOT (FU_IS_NUMBER(CAMPO_10)))
更新表1 tpg
设置comentarios=comentarios
||“蒂波·德坎比奥·因瓦利多·努洛:”
||坎波10号,
estatus='RE'
其中num_cia=:v_num_cia
和num_usuario=:v_num_usuario
和reg_saai=:v_interbase
还有estatus'RE'
和(CAMPO_10为空
或否(FU_为_编号(CAMPO_10)))

我想
FU\u是一个返回
布尔值的函数

Oracle SQL根本不支持
Boolean
,因此您需要将函数更改为返回数字,例如(1/0)

如果函数检查参数是否为数字,则可以使用正则表达式。例如:

not regexp_like(CAMPO_10, '^-?[[:digit:]]*[.]?[[:digit:]]*$')

是的,fu_is_number返回一个布尔值,或者我有其他函数,它接受一个varchar 2并返回一个数字,但是出现了相同的错误,campo_10是一个varchar 2,但是由于其他验证,它100%确定在这种情况下是数字,我只需要确保它不为空或者没有字符it@Carlos对于另一个函数,会出现相同的错误,因为NOT不是有效的逻辑条件(例如,“where NOT 1”-这是错误的)。如果您的第二个函数返回number,请尝试以下操作:或者FU_是NUMBER2(CAMPO_10)不是NULL