Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5 6   вперед  Ctrl      все
 Re: На философию потянуло...  [new]
RA\/EN
Member

Откуда:
Сообщений: 3641
contr
RA\/EN
не говоря уж о включении через это хинт режима RULE.

Может, просто /*+ RULE */ попробовать? :)


Это не есть интересно. Я, в принципе, насчет RULE не настаиваю, т.к. разбор конкретно этого хинта, по идее, может быть уже после выбора Cost Model.
12 сен 06, 17:13    [3125749]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
m_kus
Member

Откуда: Екатеринбург
Сообщений: 306
Опять обсмеёте :)
create table t (id integer default seq.nextval%FOREACHROW,
...)
2 ноя 06, 14:31    [3347696]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15360
m_kus
Опять обсмеёте :)
create table t (id integer default seq.nextval%FOREACHROW,
...)
имхо - реальнее не ссылка на последовательность, а
набор параметров как в create sequence с тем, чтобы втихаря она
создалась как зависимый от таблицы объект, мож. быть и не совсем как
последовательность, а гибрид последовательности и первичного ключа
2 ноя 06, 14:45    [3347818]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
mcwhite
Member

Откуда: Москва
Сообщений: 354
andrey_anonymous
Господа, у меня образовалось немного времени и со страшной силой потянуло на философию :)
И размышляю я на тему "а какого лешегшо мне не хватает в СУБД Oracle"?
Кто не против отвлеченной философии - присоединяйтесь :)


Хотелось бы, чтобы предложение RETURNING поддерживало работу с записями.
Т.е. чтобы можно было делать так:
-- v_row и v_row2 суть объекты типа my_table%rowtype
update my_table
set row = v_row;
returning * into v_row2;

Пока что вместо звёздочки в выделенной строке нужно перечислять все поля таблицы MY_TABLE. Если же оставить звёздочку, то код не компилируется.

Фишка в том, чтобы в коде можно было не указывать явно отдельные поля таблицы, обеспечив тем самым независимость кода от изменения структуры этой таблицы.
2 ноя 06, 15:23    [3348130]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 87339
mcwhite
andrey_anonymous
Господа, у меня образовалось немного времени и со страшной силой потянуло на философию :)
И размышляю я на тему "а какого лешегшо мне не хватает в СУБД Oracle"?
Кто не против отвлеченной философии - присоединяйтесь :)


Хотелось бы, чтобы предложение RETURNING поддерживало работу с записями.
Т.е. чтобы можно было делать так:
-- v_row и v_row2 суть объекты типа my_table%rowtype
update my_table
set row = v_row;
returning * into v_row2;

Пока что вместо звёздочки в выделенной строке нужно перечислять все поля таблицы MY_TABLE. Если же оставить звёздочку, то код не компилируется.

Фишка в том, чтобы в коде можно было не указывать явно отдельные поля таблицы, обеспечив тем самым независимость кода от изменения структуры этой таблицы.

А разве требуемые Вам значения уже все равно не будут лежать в v_row ?
2 ноя 06, 15:27    [3348177]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
mcwhite
Member

Откуда: Москва
Сообщений: 354
dmidek
А разве требуемые Вам значения уже все равно не будут лежать в v_row ?

Пример, конечно же, до предела тривиальный, потому как не в конкретном операторе дело.

Ещё раз: проблема в том, что нельзя избавиться от явного перечисления полей в предложении RETURNING при работе с записями.
2 ноя 06, 15:31    [3348211]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
Sevick
Member

Откуда: из-за компа
Сообщений: 834
Barkovsky
я давно говорю, что мне в оракле не хватает большой кнопки: "решить проблему".



Как это нет?
Просто доку невнимательно читали
Она по-умолчанию disabled :))
2 ноя 06, 15:31    [3348217]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
Timm
Member

Откуда: Moscow, Ё-burg
Сообщений: 3729
Захотелось:
with
    t as (select 1 a, 2 b, 3 c from dual),
    op as (var1*var2*var3)
select
    op(a, b, c)
from t;
чтобы op(a, b, c) преобразовался в a*b*c.
Многа хочу? фактически побороть копи-пейст, и юзать subquery factoring clause для expression factoring :)
да, функцию можно написать. но это - уже PL. а хочеца остаться в SQL'е.
11 апр 07, 12:15    [4005378]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
RA\/EN
Member

Откуда:
Сообщений: 3641
Timm
Захотелось:
with
    t as (select 1 a, 2 b, 3 c from dual),
    op as (var1*var2*var3)
select
    op(a, b, c)
from t;
чтобы op(a, b, c) преобразовался в a*b*c.
Многа хочу? фактически побороть копи-пейст, и юзать subquery factoring clause для expression factoring :)
да, функцию можно написать. но это - уже PL. а хочеца остаться в SQL'е.


А потом ищи по тексту ОРИГИНАЛЬНОГО запроса, где у тебя "ORA-01722: invalid number", например
Это не expression factoring, а тупо макроподстановка. А это зло (ты никогда из-за глючного #define в сях не устраивал ночную медитацию перед монитром?)
11 апр 07, 12:41    [4005585]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15360
RA\/EN
Timm
Захотелось:
with
    t as (select 1 a, 2 b, 3 c from dual),
    op as (var1*var2*var3)
select
    op(a, b, c)
from t;
чтобы op(a, b, c) преобразовался в a*b*c.
Многа хочу? фактически побороть копи-пейст, и юзать subquery factoring clause для expression factoring :)
да, функцию можно написать. но это - уже PL. а хочеца остаться в SQL'е.


А потом ищи по тексту ОРИГИНАЛЬНОГО запроса, где у тебя "ORA-01722: invalid number", например
Это не expression factoring, а тупо макроподстановка. А это зло (ты никогда из-за глючного #define в сях не устраивал ночную медитацию перед монитром?)

Ну, зло не большее, как любое лекарство.. если применять без_меры/не_к_месту..
11 апр 07, 12:56    [4005699]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
SQL*Plus
Member

Откуда: Россия, Москва
Сообщений: 7726
Уже 10 лет хочется классической реализации доменов, как это есть в Oracle Rdb.
CREATE DOMAIN quantity NUMBER(7) check (quantity > 0);

CREATE DOMAIN gender CHAR(1) check (gender IN ('М', 'Ж'));

CREATE DOMAIN short_name VARCHAR2(25);

CREATE DOMAIN long_name VARCHAR2(249);

CREATE DOMAIN birth_date DATE CHECK (birth_date >= TO_DATE('01.01.1900', 'DD.MM.YYYY'));

CREATE DOMAIN id NUMBER(10);

CREATE TABLE emp(
   empno id
      CONSTRAINT emp#p PRIMARY KEY
 , ename short_name      NOT NULL
 , birth_date birth_date NOT NULL
 , gender                NOT NULL
 , deptno id             NOT NULL
 , child_cnt quantity
   );

CREATE TABLE dict(
   dict_id id
       CONSTRAINT dict#p PRIMARY KEY
 , name short_name NOT NULL
 , descr long_name
   );

...
ALTER DOMAIN short_name VARCHAR2(32);

ALTER DOMAIN quantity NUMBER(10);

ALTER DOMAIN id NUMBER(12);
...
11 апр 07, 13:10    [4005831]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15360
SQL*Plus
Уже 10 лет хочется классической реализации доменов, как это есть в Oracle Rdb.

+1
11 апр 07, 13:25    [4006010]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
Гость11111111
Guest
еще хотел бы MOVE (insert into A + delete from B)...
11 апр 07, 13:28    [4006038]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: На философию потянуло...  [new]
ленивый аноним
Guest
а еще очень надо insert all, но для коллекций объектов. с BULK COLLECT
17 мар 10, 14:17    [8492314]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
dbms_photoshop
Member

Откуда: sqlmdx.net
Сообщений: 4441
andrey_anonymous
"а какого лешегшо мне не хватает в СУБД Oracle"?

Я считаю очень полезной была бы возможность создавать уникальнуй ключ по columns_expression а не просто по columns. Иными словами в Oracle есть отличная фишка FBI, хотелось бы иметь FBUK. :)

Чтоб можно было просто делать ограничения вроде: комбианация ФИО дложна быть уникальной независимо от регистра:
alter table t add constraint UK_FIO unique (lower(F), lower(I), lower(O));
19 авг 10, 15:37    [9291238]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 50560
Блог
dbms_photoshop
Чтоб можно было просто делать ограничения вроде: комбианация ФИО дложна быть уникальной независимо от регистра:

Мне, пожалуй, больше хотелось бы другого:

create table document (document_id, document_type, ...);
create index on document (document_id, document_type);
alter table document add primary key (document_id);

create table contract (document_id, ...);
alter table contract add foreign key (document_id, 12) references document (document_id, document_type);
19 авг 10, 15:51    [9291402]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
-2-
Member

Откуда:
Сообщений: 12878
А вот мне бы хотелось окон по иерархии over(connect by & siblings).

dbms_photoshop
Чтоб можно было просто делать ограничения вроде: комбианация ФИО дложна быть уникальной независимо от регистра
А чем в данном случае FBUK отличается от FBI?
19 авг 10, 15:53    [9291425]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
RA\/EN
Member

Откуда:
Сообщений: 3641
dbms_photoshop
andrey_anonymous
"а какого лешегшо мне не хватает в СУБД Oracle"?

Я считаю очень полезной была бы возможность создавать уникальнуй ключ по columns_expression а не просто по columns. Иными словами в Oracle есть отличная фишка FBI, хотелось бы иметь FBUK. :)

Чтоб можно было просто делать ограничения вроде: комбианация ФИО дложна быть уникальной независимо от регистра:
alter table t add constraint UK_FIO unique (lower(F), lower(I), lower(O));

А ради чего? Внешние ключи на такой констрейнт как разруливать?
19 авг 10, 16:04    [9291559]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
RA\/EN
Member

Откуда:
Сообщений: 3641
softwarer
dbms_photoshop
Чтоб можно было просто делать ограничения вроде: комбианация ФИО дложна быть уникальной независимо от регистра:

Мне, пожалуй, больше хотелось бы другого:

create table document (document_id, document_type, ...);
create index on document (document_id, document_type);
alter table document add primary key (document_id);

create table contract (document_id, ...);
alter table contract add foreign key (document_id, 12) references document (document_id, document_type);

FK на неуникальный индекс? о_О
19 авг 10, 16:09    [9291619]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
dbms_photoshop
Member

Откуда: sqlmdx.net
Сообщений: 4441
softwarer,
Да, такое желание возникает и у меня!

-2-
А вот мне бы хотелось окон по иерархии over(connect by & siblings).
Можно подробнее что имеете в виду. Псевдокод приветствуется. :)
При некоторых допущениях аналитика накручивается.
Лично меня в этом плане все устраивает, разве что кроме огромного кол-ва багов.

-2-
А чем в данном случае FBUK отличается от FBI?
Уже хотелка отпала. ;)
19 авг 10, 16:10    [9291625]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
RA\/EN
Member

Откуда:
Сообщений: 3641
-2-
А вот мне бы хотелось окон по иерархии over(connect by & siblings).

Суммирование по дереву делать? Пример покажи.
-2-
dbms_photoshop
Чтоб можно было просто делать ограничения вроде: комбианация ФИО дложна быть уникальной независимо от регистра
А чем в данном случае FBUK отличается от FBI?

... а потом оно будет deferred, и на нее будут ссылаться ...
19 авг 10, 16:13    [9291663]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
dbms_photoshop
Member

Откуда: sqlmdx.net
Сообщений: 4441
RA\/EN
FK на неуникальный индекс? о_О

Ну пропустил softwarer ключевое слово одно. Суть то ясна.
19 авг 10, 16:14    [9291669]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
RA\/EN
Member

Откуда:
Сообщений: 3641
RA\/EN
FK на неуникальный индекс? о_О

Да, кстати:
alter table add constraint check(document_id-trunc(document_id)=document_type)
...
alter table add constraint check(document_id-trunc(document_id)=0.012)

Было дело, не совсем такое, конечно, когда дробными айдишниками проблемы решал.
19 авг 10, 16:20    [9291736]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15360
dbms_photoshop
andrey_anonymous
"а какого лешегшо мне не хватает в СУБД Oracle"?

Я считаю очень полезной была бы возможность создавать уникальнуй ключ по columns_expression а не просто по columns. Иными словами в Oracle есть отличная фишка FBI, хотелось бы иметь FBUK. :)

Чтоб можно было просто делать ограничения вроде: комбианация ФИО дложна быть уникальной независимо от регистра:
alter table t add constraint UK_FIO unique (lower(F), lower(I), lower(O));

дык 11g вычисляемые поля для этого совершенно подходят
19 авг 10, 16:54    [9292047]     Ответить | Цитировать Сообщить модератору
 Re: На философию потянуло...  [new]
RA\/EN
Member

Откуда:
Сообщений: 3641
orawish
дык 11g вычисляемые поля для этого совершенно подходят

/me бьется головой о стол
19 авг 10, 17:52    [9292520]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5 6   вперед  Ctrl      все
Все форумы / Oracle Ответить