Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 25 26 27 28 29 30 31 [32] 33 34   вперед  Ctrl
 Re: Курилка  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 5916
Stax,

немножко доки
17 май 18, 16:16    [21417698]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 1418
env,

спасибо, о реализации мало расписано
хотя
автор
Remember that DDLs that alter the structure of a table (such as drop/modify column, move table, drop partition, truncate table/partition, and add constraint) invalidate any existing undo data for the table. If you try to retrieve data from a time before such a DDL executed, error ORA-01466 occurs. DDL operations that alter the storage attributes of a table (such as PCTFREE, INITRANS, and MAXTRANS) do not invalidate undo data.


настораживает, за длительный период (7лет) что-то из перечисленного может и произойти

.....
stax
17 май 18, 16:54    [21417880]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
MaximaXXL
Member

Откуда: Киев
Сообщений: 635
Stax,

А эта фраза не настораживает?
CREATE FLASHBACK ARCHIVE taxes_archive TABLESPACE tbs1 RETENTION 10 YEAR;
17 май 18, 16:59    [21417902]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
-2-
Member

Откуда:
Сообщений: 14095
Stax
спасибо, о реализации мало расписано
https://www.sql.ru/forum/841479/flashback-archive-sozdaet-particiu-kazhdyy-den
17 май 18, 17:07    [21417931]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 1418
MaximaXXL,

я отталкивался от изначальной (об Elic-e)

ps
с технологией на практике не знаком, да и 12-ки нет

.....
stax
17 май 18, 17:10    [21417941]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
Elic
Member

Откуда: 1984. Выбраковка финно-угром продолжается. КЯЗ
Сообщений: 28484
SQL> create table qz_tab(i int, x varchar2(10) as ('x'));

Table created.

SQL> alter table qz_tab modify x as ('Y');
alter table qz_tab modify x as ('Y')
                                *
ERROR at line 1:
ORA-54017: UPDATE operation disallowed on virtual columns
+
=====================
PARSE ERROR #398655640:len=56 dep=1 uid=80 oct=6 lid=80 tim=2221070415179 err=54017
update "QZ_TAB" set "X"=sys_op_trtb("X", 9, 1, 1)
SQL> alter table qz_tab modify x varchar2(10) as ('Y');

Table altered.

SQL> drop table qz_tab;

Table dropped.
+
12.2.0.1.0
SQL> alter table qz_tab modify x as ('Y');

Table altered.
24 май 18, 08:20    [21434708]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
maximand
Member

Откуда:
Сообщений: 113
Уважаемые.

Добрый день.
Надо сдать

http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=5001&get_params=p_exam_id:1Z0-460
или
http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=5001&get_params=p_exam_id:1Z0-100

У кого есть опыт сдачи экзаменов?
Сколько времени уходит на этот процесс (не включая подготовку)?
Есть ли курсы?

Заранее спасибо.

PS локация Санкт-Петербург.
2 авг 18, 17:25    [21625712]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
dbms_photoshop
Member

Откуда: sqlmdx.net
Сообщений: 5149
В некоторой мере праздный интерес:
можно ли обойтись без дополнительной переменной в следующих случаях?

1. Выражение/функция возвращает объект и задача обратиться к его одному атриубуту/методу.
Наример, для собсветнного типа работает treat
create or replace type str as object (value varchar2(4000))
/
declare
  x str;
  function f return str as begin return str('dummy'); end;
begin
  x := f; -- OK
  x := treat(f as str); -- OK 
  dbms_output.put_line(treat(f as str).value); -- OK  
end;
/
То есть x можно не объявлять.

А для xmltype, например, такое не работает.
declare
  x xmltype;
  function f return xmltype as begin return xmltype('<TAG>value</TAG>'); end;
begin
  x := f; -- OK
  --x := treat(f as xmltype); -- PLS-00382: expression is of wrong type
  dbms_output.put_line(treat(f as xmltype).extract('/TAG/text()').getStringVal()); -- PLS-00382
end;
/


2. Тот же самый вопрос, если функция/выражение возвращает коллекцию а не объект.
Цель достигается если написать свою обёртку с помощью дополнительного типа, но хотелось бы без неё.
(то же самое можно и для объектов, но там хоть в некоторых случаях работает treat)
create type numbers as table of number
/ 
create or replace type wrapper as object (value numbers)
/
declare
  function f return numbers as begin return numbers(1, 10, 100); end;
begin
  dbms_output.put_line(wrapper(f multiset union numbers(0)).value.count);
end;
/
18 сен 18, 19:34    [21678644]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
-2-
Member

Откуда:
Сообщений: 14095
dbms_photoshop

Для функций предпочитаю явно указывать отсутствие параметров при вызове. А для nested table помимо count есть cardinality.
18 сен 18, 21:14    [21678770]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
dbms_photoshop
Member

Откуда: sqlmdx.net
Сообщений: 5149
-2-
А для nested table помимо count есть cardinality.
count был приведен в качестве примера, решение должно работать для любого метода.
19 сен 18, 12:44    [21679356]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 9221
Ну так -2- же намекнул "предпочитаю явно указывать отсутствие параметров при вызове":

declare
  function f return numbers as begin return numbers(1, 10, 100); end;
begin
  dbms_output.put_line(f().count);
  dbms_output.put_line(f().first);
  dbms_output.put_line(f().last);
  dbms_output.put_line(f()(2));
  dbms_output.put_line(f()(f().last));
end;
/
3
1
3
10
100

PL/SQL procedure successfully completed.

SQL> 


SY.
19 сен 18, 13:37    [21679481]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
dbms_photoshop
Member

Откуда: sqlmdx.net
Сообщений: 5149
SY,

Не умаляя важности этого момента при вызове функций, интересует generic approach for expressions.
В примере фигурирует
(f multiset union numbers(0))
19 сен 18, 15:22    [21679689]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 9221
dbms_photoshop
SY,

Не умаляя важности этого момента при вызове функций, интересует generic approach for expressions.
В примере фигурирует
(f multiset union numbers(0))


Ну сделай присвоение и дaльше используй явную переменную. Все лучшечем "обертка":

declare
  x numbers;
  function f return numbers as begin return numbers(1, 10, 100); end;
begin
  x := f multiset union numbers(0);
  dbms_output.put_line(x.count);
end;
/
4

PL/SQL procedure successfully completed.

SQL> 


SY.
19 сен 18, 17:26    [21679863]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
dbms_photoshop
Member

Откуда: sqlmdx.net
Сообщений: 5149
SY,

Если читать внимательнее, то диалог получается более конструктивным.
19 сен 18, 17:38    [21679884]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
booby
Member

Откуда:
Сообщений: 1609
create or replace type str as object (value varchar2(4000))
/
declare
  x str;
  function f return str as begin return str('dummy'); end;
begin
  x := f; -- OK
  x := treat(f as str); -- OK 
--  dbms_output.put_line(treat(f as str).value); -- OK  
  dbms_output.put_line(f().value); -- OK  
end;
/


declare
  x xmltype;
  function f return xmltype as begin return xmltype('<TAG>value</TAG>'); end;
begin
  x := f; -- OK
    dbms_output.put_line(f().extract('/TAG/text()').getStringVal()); -- ОК
end;
/
19 сен 18, 18:41    [21679966]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 9221
dbms_photoshop
SY,

Если читать внимательнее, то диалог получается более конструктивным.


Ну тогда иди по пути искусство ради искусства и создавай обертки.

SY.
19 сен 18, 20:06    [21680017]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
-2-
Member

Откуда:
Сообщений: 14095
dbms_photoshop
-2-
А для nested table помимо count есть cardinality.
count был приведен в качестве примера, решение должно работать для любого метода.
Какой практический смысл в коллекционных методах над неприсвоенным multiset?
20 сен 18, 09:10    [21680299]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
dbms_photoshop
Member

Откуда: sqlmdx.net
Сообщений: 5149
-2-,

Учитывая текущий набор методов коллекций действительно вопрос [для них] остро не стоит.
Может введут что-то типа .sum или .toString, тогда будет интереснее.

Удивляет невозможность трактовать выражение, возвращающее объект, как сам объект в общем случае.
20 сен 18, 13:51    [21680782]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
booby
Member

Откуда:
Сообщений: 1609
Так или иначе, объекты-оболочки здесь не нужны.
Функций достаточно для формирования переменной под капотом.

create type numbers as table of number
/ 
--create or replace type wrapper as object (value numbers)
--/
declare
  x numbers;
  function f return numbers as begin return numbers(1, 10, 100); end;
  function toobj(p numbers) return numbers is begin return p; end;
begin
--  dbms_output.put_line(wrapper(f multiset union numbers(0)).value.count);
--    x := f() multiset union numbers(0);

   PRAGMA INLINE(toobj,'YES');
   dbms_output.put_line(toobj(f() multiset union numbers(0)).count);
end;
/
drop type numbers;
20 сен 18, 14:20    [21680832]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
xtender
Member

Откуда: Мск
Сообщений: 4959
dbms_photoshop,

Имхо просто sr надо создать
20 сен 18, 14:32    [21680855]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 9221
booby,

Tы тоже считаешь вызов ф-ции/обертка в тип предпочтительней явному присваиванию?

SY.
20 сен 18, 14:33    [21680857]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
booby
Member

Откуда:
Сообщений: 1609
SY
booby,

Tы тоже считаешь вызов ф-ции/обертка в тип предпочтительней явному присваиванию?

SY.


Не знаю.
Думаю так:
Объектная обертка - несомненно (для меня) - шлак.
Функциональная обертка - странновата зверушка с малознакомым запахом.
Что это прорыв в куда-то, я бы сам не догадался.

Вся тема выглядит как марсианский пейзаж - людей, человеческого контекста, не видно.

По сути - претензия к тому, что компилятор в недостаточной степени обучен
преобразовывать выражения в программы с учётом вывода типов.
Но, глядя на то, как программируют люди на "самых современных языках",
мне лично, почему-то, хочется сказать спасибо компилятору в этом месте за синтаксическую ошибку.
Я не знаю, какая причина заставила бы меня создавать сервис реквест по этому поводу.
С разбегу хочется, наоборот, попросить ничего не трогать лапками, погрязшими в "современных компиляторах".
20 сен 18, 14:56    [21680880]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
xtender
Member

Откуда: Мск
Сообщений: 4959
booby
хочется сказать спасибо компилятору в этом месте за синтаксическую ошибку.
какой идиотизм... может тогда и выражения, типа (2+2)*2 тоже должны ошибку возвращать?
20 сен 18, 15:04    [21680898]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
-2-
Member

Откуда:
Сообщений: 14095
booby
попросить ничего не трогать
логично или вообще запретить коллекционные атрибуты-недометоды над выражениями, либо разрешить все. А то обращение к конструктору numbers().count не работает, но работает обращение к функции типа set(numbers()).count. Причем от конструктора, хоть и нельзя получить count, но можно получить элемент по индексу. А если обернуть в скобки, то уже ни того, ни другого.
20 сен 18, 15:19    [21680930]     Ответить | Цитировать Сообщить модератору
 Re: Курилка  [new]
booby
Member

Откуда:
Сообщений: 1609
-2-
...А если обернуть в скобки, то уже ни того, ни другого.

Существо дело - где-то здесь. Именно в этих скобках.
Внешние скобки формируют собственное подвыражение.
И очень похоже на потерю знания о типе, возвращаемым этим скобочным выражением.
Это немного не про запретить и разрешить, а про разрешение типов (скобочных) выражений
построенных, в данном примере на типе-коллекции.
20 сен 18, 15:46    [21680969]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 25 26 27 28 29 30 31 [32] 33 34   вперед  Ctrl
Все форумы / Oracle Ответить