Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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.077 c
15-1352383958
Artem
2012-11-08 18:12
2013.03.22
XP на VirtualBox e запускается со второго раза


15-1347000404
ford
2012-09-07 10:46
2013.03.22
алгоритм для анализа изображения


2-1342699186
vasa777
2012-07-19 15:59
2013.03.22
правое меню


15-1353056660
stas
2012-11-16 13:04
2013.03.22
Chromium Embedded silent mode


15-1347564415
Guest
2012-09-13 23:26
2013.03.22
Где можно узнать количество АЛУ и физических регистров процессора





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский