Вы правы, минимальное число, которое вы можете вставить:
-99999999999999999999999999999999999999
Я попробовал, и вот результаты.
create temporary table test_db.public.test_table (col1 number);
insert into test_db.public.test_table values (-99999999999999999999999999999999999999); -- This works fine
insert into test_db.public.test_table values (-999999999999999999999999999999999999999); -- this errors
Второй SQL с точностью 39 произвел следующее сообщение об ошибке из Snowflake:
Ошибка компиляции SQL: строка ошибки 1 в позиции 48 Целочисленный литерал находится вне допустимого диапазона: 999999999999999999999999999999999999999 [115 ] blockquote>
После дальнейших исследований я нашел этот билет в системе отслеживания ошибок JQuery, которая объясняет ошибку и предоставляет обходной путь. Очевидно, что клонировать выбранные значения слишком дорого, чтобы они не исправили это.
https://bugs.jquery.com/ticket/1294
Мое использование метода клонирования было в общем методе, где что-либо может быть клонировано, поэтому я не уверен, когда или будет ли выбор для установите значение на. Поэтому я добавил следующее:
var selects = $(cloneSourceId).find("select");
$(selects).each(function(i) {
var select = this;
$(clone).find("select").eq(i).val($(select).val());
});
Да. Это , потому что свойство selected в узле DOM «select» отличается от атрибута selected в опциях. jQuery никоим образом не изменяет атрибуты опций.
Попробуйте вместо этого:
$('option', select).get(1).setAttribute('selected', 'selected');
// starting from 0 ^
Если вам действительно интересно, как работает функция val, вы можете изучить
alert($.fn.val)