Выбрать строку как число в Oracle

Я нашел это странное поведение и ломаю себе голову этим... у кого-нибудь есть идеи?

Оракул 10g: У меня есть две разные таблицы, в обеих есть этот столбец с именем «TESTCOL» как Varchar2(10), не обнуляемый.

Если я выполняю этот запрос к table1, я получаю правильные результаты:

select * from table1 where TESTCOL = 1234;

Обратите внимание, что я специально не помещаю '1234'... это не опечатка, это динамически сгенерированный запрос, и я постараюсь не менять его (по крайней мере, в ближайшее время).

Но если я запускаю один и тот же запрос к table2, я получаю следующее сообщение об ошибке:

ORA-01722: Invalid number

Оба запроса выполняются в одном сеансе, в одной базе данных.

Я соединял эти две таблицы по этому столбцу, и соединение работает нормально, единственная проблема проявляется всякий раз, когда я пытаюсь использовать это условие.

Любые идеи о том, что может отличаться от одной таблицы к другой?

Заранее спасибо.

9
задан frenetix 27 March 2012 в 13:50
поделиться