0
Это не об усечении десятичных знаков. Скорее, обрезание целых чисел с помощью Oracle 12c.Усечение чисел с помощью Oracle 12c
select CAST('123456789' AS NUMBER(4)) from DUAL;
Было бы здорово, если бы это вернуло '1234' вместо того, чтобы выбрасывать исключение.
Почему бы это быть «простой запрос»? Это не результат, который, очевидно, разумный. Число 12346789 в 10 000 раз больше, чем 1234. Почему имеет смысл возвращать это, а не бросать ошибку? Разумеется, вы можете использовать 'substr', чтобы выбрать первые 4 цифры вашей строки, а затем передать это число. Вам нужно будет реализовать эту логику, потому что это очень специфическое поведение для бизнес-требований. –
Я согласен с заявлением Джастина. Для того, что вы пытаетесь сделать, вам нужно рассматривать его как строку ... 'Выберите CAST ('123456789' AS VARCHAR (4)) из DUAL;' – knuckles
SQL Server делает это с CONVERT(). Это один звонок. Очевидно, Oracle не конкурирует таким образом! Спасибо! : D – Ray