Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Знатокам Оракла и вообще.   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.062 c
2-1340776149
mpdasa
2012-06-27 09:49
2013.03.22
Как вставлять текст в (rich)edit с задержкой времени


15-1342013393
kki
2012-07-11 17:29
2013.03.22
как будет по англ.


2-1333992965
mikluha
2012-04-09 21:36
2013.03.22
EasyListView, VTV, Vshell


15-1330196934
wl
2012-02-25 23:08
2013.03.22
выскажите нодостатки ноута


15-1329220586
tj.nelson
2012-02-14 15:56
2013.03.22
Вызов функции формы 1 из формы 2, реально??