У меня есть столбец nse_credit_rating с типом данных VARCHAR2(18)
.Содержит значения вида 189.00-250.00
.Но некоторые записи имеют нулевые значения в конце строки, т. Е. Даже если релевантные мне данные имеют длину 13 (189.00-250.00
), но length(nse_credit_rating)
возвращает 17 в качестве выходных данных, т.е. в конце есть 4 нулевых значения.
Основная проблема возникает, когда мне нужно использовать to_number
для этого столбца, он возвращает «Недопустимый номер ORA-1722», поскольку он содержит ноль.
Есть ли способ получить подстроку до того, какпоявление значений NULL?Я даже взял вывод dump(nse_credit_rating)
.
SELECT dump(nse_credit_rating),nse_symbol
FROM nse_security_master
where nse_series='EQ'
and nse_symbol like 'ARVIND'
and nse_series='EQ'
Вывод:
Typ=1 Len=17: 51,54,55,46,48,48,45,52,52,56,46,53,48,0,0,0,0
Здесь 0 - это ascii для NULL.
SELECT (nse_credit_rating),nse_symbol
FROM nse_security_master
where nse_series='EQ'
and nse_symbol like 'ARVIND'
and nse_series='EQ'
Вывод:
367.00-448.50
Я пытался использовать ascii(substr(nse_credit_rating,-1,1))
, но это работает только тогда, когда я знаю, что только один символ в конце будет нулевым.Но может быть любое количество символов, имеющих NULL.