oracle 9i - SQL data types

User avatar
JustMax
Уже с Приветом
Posts: 1476
Joined: 05 Dec 2000 10:01
Location: Vilnius -> Bonn

Post by JustMax »

И еше. Кто вам мешает иметь доступ к базе не только через SQLPlus. Вот вам очень удобная и "бесплатная" штучка :

TOra

http://www.globecom.se/tora/

:wink:
User avatar
JustMax
Уже с Приветом
Posts: 1476
Joined: 05 Dec 2000 10:01
Location: Vilnius -> Bonn

Re: oracle 9i - SQL data types

Post by JustMax »

Sabina wrote:number(x) - это тоже alias number(x,0) ?


Нет, NUMBER(x) - не ограничивает дробную часть.
User avatar
Sabina
Уже с Приветом
Posts: 5669
Joined: 13 Oct 2000 09:01
Location: East Bay, CA

Post by Sabina »

JustMax wrote:И еше. Кто вам мешает иметь доступ к базе не только через SQLPlus.


К базе на кампусе мешают privileges правда я ваш тул не пробовала, может на него и не заругается.
Я по идее все что мне надо уже рассмотрела на своей домашней базе на Линуксе.

Оч. хочется спать! (мысли вслух в 1:16 AM :) ).

Сабина
User avatar
Sabina
Уже с Приветом
Posts: 5669
Joined: 13 Oct 2000 09:01
Location: East Bay, CA

Post by Sabina »

JustMax wrote:Создается number по максимуму. To же самое что

Code: Select all

NUMBER(38)


А я прогнала create c просто number, посмотрела описание полученной таблицы, а там USERID NUMBER(0,0) :pain1:

Сабина
User avatar
JustMax
Уже с Приветом
Posts: 1476
Joined: 05 Dec 2000 10:01
Location: Vilnius -> Bonn

Post by JustMax »

Ето раз :

http://download-west.oracle.com/docs/cd ... htm#424654

Во вторых верить надо только информации отсюда :

select * from user_tab_columns where table_name = 'NNNHHZ';

А NUBER(10) таки обрезает дробную часть. :oops:
Lazy44
Уже с Приветом
Posts: 525
Joined: 01 May 2002 20:29
Location: CT->MA->TX->UT

Post by Lazy44 »

Sabina wrote:
Lazy44 wrote: select constraint_name
from user_constraints
where constraint_type ='R'
and table_name='CMSUSER';


Спасибо.
А еще вы не в курсе почему если задать тип number без определения длины он создается number(0,0)
С таким типом разьве можно работать?

Сабина

Это не баг, ето фича. Работат можно и нужно с number
User avatar
IA72
Уже с Приветом
Posts: 956
Joined: 04 Mar 2002 10:01

Post by IA72 »

JustMax wrote:Ето раз :

http://download-west.oracle.com/docs/cd ... htm#424654

Во вторых верить надо только информации отсюда :

select * from user_tab_columns where table_name = 'NNNHHZ';

А NUBER(10) таки обрезает дробную часть. :oops:


Дык. Вопросу типа "Q: А как мне в BDE через Oracle получить Integer? A:NUMBER(10)" лет столько же, сколько и первой Delphi, то бишь десяток почти. Я правда думал, что хотя бы macro сделали уже. Oracle после 7.1.3 в руки не брал. Да и стоило ли? Семерка, по-моему, лучший DB сервер всех времен была. Увы.
User avatar
JustMax
Уже с Приветом
Posts: 1476
Joined: 05 Dec 2000 10:01
Location: Vilnius -> Bonn

Post by JustMax »

IA72 wrote:Oracle после 7.1.3 в руки не брал. Да и стоило ли? Семерка, по-моему, лучший DB сервер всех времен была. Увы.


S 7 normal'no mozhno bylo rabotat' s versii 7.3 (7.3.*, 7.3.4) O chem vy ? :pain1: Stoilo stoilo. IMHO 9i ili 10G naaamnogo dal'she vpered ushli. Konkurentov ja poka i blizko ne vizhu.(Nu mozhet kogda Yukon vyjdet).
Po povodu types - zaglianite v packet STANDARD na 9 - ke :)
zVlad
Уже с Приветом
Posts: 15410
Joined: 30 Apr 2003 16:43

Post by zVlad »

JustMax wrote:
IA72 wrote:Oracle после 7.1.3 в руки не брал. Да и стоило ли? Семерка, по-моему, лучший DB сервер всех времен была. Увы.


S 7 normal'no mozhno bylo rabotat' s versii 7.3 (7.3.*, 7.3.4) O chem vy ? :pain1: Stoilo stoilo. IMHO 9i ili 10G naaamnogo dal'she vpered ushli. Konkurentov ja poka i blizko ne vizhu.(Nu mozhet kogda Yukon vyjdet).
Po povodu types - zaglianite v packet STANDARD na 9 - ke :)


Просто из любопытства не могу не спросить: в чем это интересно Оракл нааааааамного далеко ушел от DB2?
Насчет темы топика. А как же Оракл работает с преобразованиями типов в выражениям? С округлением? Ведь если с размером дробной части полный произвол, то и четких правил округления быть не может?
В DB2 десятичные, целые и с плавающей точкой - это три разных формата. Если написать DECIMAL(5,3) то именно такую размерность и будет хранить и выдавать DB2, применяя общепринятые правило округления, или выдавая код ошибки если число превосходит заданую размерность. Честно говоря не понимаю, как можно с этим работь иначе?
User avatar
JustMax
Уже с Приветом
Posts: 1476
Joined: 05 Dec 2000 10:01
Location: Vilnius -> Bonn

Post by JustMax »

zVlad wrote: Просто из любопытства не могу не спросить: в чем это интересно Оракл нааааааамного далеко ушел от DB2?
Насчет темы топика. А как же Оракл работает с преобразованиями типов в выражениям? С округлением? Ведь если с размером дробной части полный произвол, то и четких правил округления быть не может?
В DB2 десятичные, целые и с плавающей точкой - это три разных формата. Если написать DECIMAL(5,3) то именно такую размерность и будет хранить и выдавать DB2, применяя общепринятые правило округления, или выдавая код ошибки если число превосходит заданую размерность. Честно говоря не понимаю, как можно с этим работь иначе?


Прошу прощения zVlad, я поставил IMHO и я по-моему сказал, что 9-10 далеко ушли от 7 ки а не от DB2. :nono#: Но лично я (IMHO!) конкурентов по важным для меня как для разработчика критериям не вижу. По поводу хранения number типов - с етим полный порядок. Внутренне любые NUMBER абсолютно унифицированны и занимают строго одинаковую структуру (22 bytes вроде) а представление числа, грубо говоря правила сохранения, округления, формат и т.д. хранится в data dictionaries. За счет етого, например, при изменении описания колонки NUMER(5) в NUMBER(9,4) не затрагиваются сами данные а изменяется только запись формата в DD. Все функции (ROUND, CEIL, FLOOR, TRUNC etc.) работают строго в соответствии с текущим форматом. В математических выражениях числа приводятся к более крупному члену и т.д. Конечно при записи числа в колонку с более ограниченным форматом вам надо явно обрезать/округлить число.
Ну и где произвол ? И что такое четкие правила округления ? :) Вы можете задавать любые произвольные правила округления.
(Не автоматом а с помощью функций). Если же вы не хотите парится с fine grade number formats или у вас нет строгих ограничений на форматы представления NUMBER данных - используйте "generic types" INTEGER, FLOAT, DECIMAL etc.

Не по теме - а в DB2 можно в WHERE использовать регулярные
выражения ? Или на лету получить consistent данные из таблицы 30 мин давности ? Или создавать в базе структуры для хранения
XML на основе DDT или XML Schema ? Или хранить данные не в ввиде plain структур a виде обьектов (В том числе Java обьектов) ? Что есть, например, такого в DB2, чего точно нет в Oracle и что
было бы неплохо иметь ?
Lazy44
Уже с Приветом
Posts: 525
Joined: 01 May 2002 20:29
Location: CT->MA->TX->UT

Post by Lazy44 »

JustMax wrote:
zVlad wrote: Просто из любопытства не могу не спросить: в чем это интересно Оракл нааааааамного далеко ушел от DB2?
Насчет темы топика. А как же Оракл работает с преобразованиями типов в выражениям? С округлением? Ведь если с размером дробной части полный произвол, то и четких правил округления быть не может?
В DB2 десятичные, целые и с плавающей точкой - это три разных формата. Если написать DECIMAL(5,3) то именно такую размерность и будет хранить и выдавать DB2, применяя общепринятые правило округления, или выдавая код ошибки если число превосходит заданую размерность. Честно говоря не понимаю, как можно с этим работь иначе?


Прошу прощения zVlad, я поставил IMHO и я по-моему сказал, что 9-10 далеко ушли от 7 ки а не от DB2. :nono#: Но лично я (IMHO!) конкурентов по важным для меня как для разработчика критериям не вижу. По поводу хранения number типов - с етим полный порядок. Внутренне любые NUMBER абсолютно унифицированны и занимают строго одинаковую структуру (22 bytes вроде) а представление числа, грубо говоря правила сохранения, округления, формат и т.д. хранится в data dictionaries. За счет етого, например, при изменении описания колонки NUMER(5) в NUMBER(9,4) не затрагиваются сами данные а изменяется только запись формата в DD. Все функции (ROUND, CEIL, FLOOR, TRUNC etc.) работают строго в соответствии с текущим форматом. В математических выражениях числа приводятся к более крупному члену и т.д. Конечно при записи числа в колонку с более ограниченным форматом вам надо явно обрезать/округлить число.
Ну и где произвол ? И что такое четкие правила округления ? :) Вы можете задавать любые произвольные правила округления.
(Не автоматом а с помощью функций). Если же вы не хотите парится с fine grade number formats или у вас нет строгих ограничений на форматы представления NUMBER данных - используйте "generic types" INTEGER, FLOAT, DECIMAL etc.

Не по теме - а в DB2 можно в WHERE использовать регулярные
выражения ? Или на лету получить consistent данные из таблицы 30 мин давности ? Или создавать в базе структуры для хранения
XML на основе DDT или XML Schema ? Или хранить данные не в ввиде plain структур a виде обьектов (В том числе Java обьектов) ? Что есть, например, такого в DB2, чего точно нет в Oracle и что
было бы неплохо иметь ?

Sorry for offtopic. Try to compare DB2 SQL PL and Oracle PL/SQL - It is earth and sky. DB2 SQL PL is very limited. Function in DB2 SQL PL can not contain several statements. You must do all your logic in one statement. There is no provided packages by IBM . Oracle has close to 100 packages.
User avatar
JustMax
Уже с Приветом
Posts: 1476
Joined: 05 Dec 2000 10:01
Location: Vilnius -> Bonn

Post by JustMax »

Ето вы мне предлагаете ? :)
Нафик, нафик - мне хватает периодической борьбы с TransactSQL.
(Где мои Oracle exceptions :cry: )
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

JustMax wrote:Ето вы мне предлагаете ? :)
Нафик, нафик - мне хватает периодической борьбы с TransactSQL.
(Где мои Oracle exceptions :cry: )


try catch ?
Выгляните в окно - уже занимается на востоке светлая заря коммунизма. В смысле YUKON.
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
zVlad
Уже с Приветом
Posts: 15410
Joined: 30 Apr 2003 16:43

Post by zVlad »

JustMax wrote:.......
Не по теме - а в DB2 можно в WHERE использовать регулярные
выражения ? Или на лету получить consistent данные из таблицы 30 мин давности ? Или создавать в базе структуры для хранения
XML на основе DDT или XML Schema ? Или хранить данные не в ввиде plain структур a виде обьектов (В том числе Java обьектов) ? Что есть, например, такого в DB2, чего точно нет в Oracle и что
было бы неплохо иметь ?


Thank you for clarification regarding numeric data types.

1. What "регулярные выражения" means?
2. "...Или на лету получить consistent данные из таблицы 30 мин давности ?" - No. It is impossible, and it was discussed before. Of course, we can "получить consistent данные из таблицы 30 мин давности" but we need to recover table first.
3. "...Или создавать в базе структуры для хранения
XML на основе DDT или XML Schema". I am not an expert in XML, but I hope with this stuff in DB2 everythink is OK.
4. "Или хранить данные не в ввиде plain структур a виде обьектов (В том числе Java обьектов)" - I think this sort of functionaly is a subject for other than database software.
5."Что есть, например, такого в DB2, чего точно нет в Oracle и что
было бы неплохо иметь " When I reacted on your posting I thought you know answer to this question (redirected of course). Anyway, what about:

- recursive query (WITH statement, common table expression)?
- multy-row INSERT?
- SELECT .... FROM INSERT ?
- static queries? (Queries are stored in data base server in compiled and ready to be executed form).
multi-deminsioned clusterering index?

This are just SQL related stuff.
User avatar
JustMax
Уже с Приветом
Posts: 1476
Joined: 05 Dec 2000 10:01
Location: Vilnius -> Bonn

Post by JustMax »

Dmitry67 wrote:try catch ?
Выгляните в окно - уже занимается на востоке светлая заря коммунизма. В смысле YUKON.


Во! еще один YUKONOM пугает ! 8O :mrgreen:
Да шож в ем такого будет, что все Oracle - овцы от зависти лопнут ?! :(

Return to “Вопросы и новости IT”