Ответ 1
Вы должны использовать функцию TO_NUMBER:
select * from exception where exception_value = to_number('105')
Как преобразовать значение varchar oracle в число
например,
table - exception
exception_value 555 where exception_value is a varchar type
Я хотел бы проверить значение столбца exception_value
select * from exception where exception_value = 105 instead of
select * from exception where exception_value = '105'
Вы должны использовать функцию TO_NUMBER:
select * from exception where exception_value = to_number('105')
Поскольку столбец имеет тип VARCHAR, вы должны преобразовать входной параметр в строку, а не преобразовать значение столбца в число:
select * from exception where exception_value = to_char(105);
Если вы хотите сформировать номер, используйте
SELECT TO_CHAR(number, 'fmt')
FROM DUAL;
SELECT TO_CHAR('123', 999.99)
FROM DUAL;
Результат 123.00
выберите to_number (exception_value) из исключения, где to_number (exception_value) = 105
Я тестировал предлагаемые решения, они все должны работать:
select * from dual where (105 = to_number('105'))
= > поставляет одну фиктивную строку
select * from dual where (10 = to_number('105'))
= > пустой результат
select * from dual where ('105' = to_char(105))
= > поставляет одну фиктивную строку
select * from dual where ('105' = to_char(10))
= > пустой результат