o У меня есть таблица teradata с примерно 10 миллионами записей, в которой хранится поле числового идентификатора в виде varchar. мне нужно передать значения в этом поле в столбец bigint в другой таблице, но я не могу просто сказать приведение (id_field как bigint), потому что я получаю ошибку недопустимого символа. просматривая значения, я обнаружил, что в любой позиции строки может быть символ, поэтому, скажем, строка varchar (18), я мог бы отфильтровать недопустимые строки следующим образом:
where substr(id_field,1,1) not in (/*big,ugly array of non-numeric chars*/)
and substr(id_field,2,1) not in (/*big,ugly array of non-numeric chars*/)
etc, etc...
тогда гипс сработает, но в долгосрочной перспективе это неосуществимо. это медленно, и если строка имеет 18 возможных символов, это делает запрос нечитаемым. как я могу отфильтровать строки со значением в этом поле, которое не будет отображаться как bigint, без проверки каждого символа по отдельности на наличие массива нечисловых символов?
примерные значения будут
123abc464
a2.3v65
a_356087
........
000000000
BOB KNIGHT
1235468099
значения не следуют определенным шаблонам, мне просто нужно отфильтровать те, которые содержат ЛЮБЫЕ нечисловые данные. 123456789 подходит, а 123.abc_c3865 нет...