Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
ВнизЗнатокам Оракла и вообще. Найти похожие ветки
← →
Ega23 © (2012-06-21 23:11) [0]Заспорили тут с соседом.
Вот такой вот скрипт для MSSQL (ну по крайней мере для 2000)
declare @x int, @y int;
set @x=3;
set @y=2;
select @x/@y;
должОн выдать 1.
Скрипт на Oracle:
DECLARE
x INTEGER;
y INTEGER;
res INTEGER;
BEGIN
x := 3;
y := 2;
SELECT ( x / y ) INTO res FROM DUAL;
dbms_output.put_line( res );
END;
выдаёт 1.5
Вопрос: оператор деления в Оракле зависит от типов операндов, или нет?
← →
Дмитрий С © (2012-06-22 00:12) [1]Пользуясь случаям выражу недоумение языкам не имеющим операции целочисленного деления. В MySQL слава богу ввели, ибо функция floor на мой взгляд ненадежная.
По теме. В вопросе же ответ, нет?
← →
Омлет © (2012-06-22 00:26) [2]> Дмитрий С © (22.06.12 00:12) [1]
> Пользуясь случаям выражу недоумение языкам не имеющим операции
> целочисленного деления.
div? Где это его нет?
← →
asail © (2012-06-22 00:27) [3]Я с ораклом не дружу, но вот это смутило:
DECLARE
...
res INTEGER;
...
dbms_output.put_line( res );
Как тут может вернуться 1.5. Если тип res явно указан как Integer? Независимо от того, что мы там с эти res делали до того (делили, умножали и т.д.).
← →
Дмитрий С © (2012-06-22 00:27) [4]
> div? Где это его нет?
Например в том же MSSQL или в JavaScript
← →
Ega23 © (2012-06-22 00:40) [5]
> div? Где это его нет?
В MSSQL нет. Оператор "/" зависит от типов операндов.
Я не берусь судить, хорошо это, или плохо. В MSSQL это так.
← →
В школу! (2012-06-22 07:45) [6]Срочно читать документацию! Например, Oracle SQL Reference
← →
имя (2012-06-22 07:48) [7]Удалено модератором
← →
Омлет © (2012-06-22 08:25) [8]> Ega23 © (22.06.12 00:40) [5]
> В MSSQL нет. Оператор "/" зависит от типов операндов.
Т.е. оно всё же есть, если integer / integer = integer;
> Дмитрий С © (22.06.12 00:27) [4]
> JavaScript
floor?
← →
Игорь Шевченко © (2012-06-22 09:39) [9]в Oracle нет типа INTEGER
← →
AV © (2012-06-22 09:47) [10]subtype INTEGER is NUMBER(38,0);
← →
БарЛог © (2012-06-22 09:48) [11]Мне б таких соседей. А то все цветы да уборка в подъезде.
← →
Ega23 © (2012-06-22 10:49) [12]
> Т.е. оно всё же есть, если integer / integer = integer;
Это не совсем то. Есть оператор деления, есть оператор целочисленного деления. В обоих случаях вполне ожидаемый и предсказуемый результат.
В случае MSSQL оператор совмещён. Отсюда результат - не предсказуемый (пока не наткнёшься на ситуацию и в BOL не залезешь).
← →
AV © (2012-06-22 11:03) [13]
> INTEGER is NUMBER
что тут непонятного
← →
MsGuns © (2012-06-22 16:37) [14]Тема высосана из пальца. Типа а если в барбоса на остановке кинуть кирпич, он полезет кусаться ?
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.066 c