Oracle 我怎样才能修好它?

Oracle 我怎样才能修好它?,oracle,oracle12c,Oracle,Oracle12c,我有以下疑问: SELECT parameter1, parameter1 FROM kcrt_table_entries WHERE parameter_set_field_id = (SELECT parameter_set_field_id FROM knta_parameter_set_fields WHERE PROMPT = 'Matrix:'

我有以下疑问:

SELECT parameter1, parameter1 
FROM kcrt_table_entries 
WHERE parameter_set_field_id = (SELECT parameter_set_field_id 
                                FROM knta_parameter_set_fields 
                                WHERE PROMPT = 'Matrix:'
                               )
  AND request_id = (SELECT kr.request_id 
                    FROM kcrt_requests kr 
                    WHERE kr.request_type_id = (SELECT request_type_id 
                                                FROM kcrt_request_types 
                                                WHERE request_type_name = 'RHB - Risk Rating Questionnaire'
                                               ) 
                      AND kr.status_id = (SELECT status_id 
                                          FROM kcrt_statuses 
                                          WHERE status_name = 'Admin-Reading'
                                         ) 
                   ) 
  AND parameter2 <  100 
  AND parameter3 >= 100
当我运行它时,它会给我以下错误:

ORA-01722:无效号码 172200000-无效号码 *原因:指定的数字无效。 *操作:指定一个有效的数字

请帮我解决这个问题

为什么选择参数1两次

从您得到的错误来看:列名似乎应该匹配,至少通过查看它们的名称,例如request_id to request_id,status_id to status_id,等等。所以剩下的是最后两行:

AND parameter2 <  100 
AND parameter3 >= 100
如果这些列的数据类型不是NUMBER而是VARCHAR2,那么应该将100括在单引号中,即使用“100”


如果这样做没有帮助,请提供一些额外的信息来说明表格是否有帮助。

请提供表格的DDL。您有一个字符串列,您试图将其转换为数字。我想它是参数2或参数3。它用于可见和隐藏参数。对不起,我不明白你的意思。