powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Oracle [игнор отключен] [закрыт для гостей] / С чего начать девелоперу?
25 сообщений из 147, страница 5 из 6
С чего начать девелоперу?
    #40128113
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И ещё раз, зачем эти прыжки в ширину?

Нормальные разработчики в таком поле хранят только отклонение от базовой
цены/процент скидки и т.п., а не целую новую цену. Отчего у них и становятся
ненужными ни третий, ни второй этапы.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
С чего начать девелоперу?
    #40128173
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

Ролг ХупинALTER TABLE sales2 MODIFY cost_new NUMBER DEFAULT 0 NOT NULL; <-- это имелось в виду

Зачем? Какой практический смысл в этом ограничении если поле заполняется
автоматически?
А если поле не будет заполняться автоматически, а человек его сам неверно заполнит?
...
Рейтинг: 0 / 0
С чего начать девелоперу?
    #40128174
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

И ещё раз, зачем эти прыжки в ширину?

Нормальные разработчики в таком поле хранят только отклонение от базовой
цены/процент скидки и т.п., а не целую новую цену. Отчего у них и становятся
ненужными ни третий, ни второй этапы.


да, уж.
Определение тех самых "нормальных разработчиков" можно почитать?
...
Рейтинг: 0 / 0
С чего начать девелоперу?
    #40128175
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
Dimitry Sibiryakov

пропущено...

Зачем? Какой практический смысл в этом ограничении если поле заполняется
автоматически ?

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

При добавлении поля с дефолтным значением не нужно выполнять UPDATE для его заполнения в Oracle 11.2+.
Нужные изменения произойдут на уровне словаря данных.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
SQL> CREATE TABLE test_default
  2  AS
  3  SELECT COUNT(*) AS n, object_type AS name
  4  FROM all_objects WHERE owner = 'SYS' AND ROWNUM < 100
  5  GROUP BY object_type;
Table TEST_DEFAULT created.

SQL> SELECT * FROM test_default;

         N NAME                   
---------- -----------------------
        54 INDEX                  
        39 TABLE                  
         6 CLUSTER                

SQL> ALTER TABLE test_default
  2     ADD is_zero VARCHAR2(9 CHAR) DEFAULT 'Zero';
Table TEST_DEFAULT altered.

SQL> SELECT * FROM test_default;

         N NAME                    IS_ZERO  
---------- ----------------------- ---------
        54 INDEX                   Zero     
        39 TABLE                   Zero     
         6 CLUSTER                 Zero     

SQL> INSERT INTO test_default(n, name) VALUES(2022, 'New Year');
1 row inserted.

SQL> SELECT * FROM test_default;

         N NAME                    IS_ZERO  
---------- ----------------------- ---------
        54 INDEX                   Zero     
        39 TABLE                   Zero     
         6 CLUSTER                 Zero     
      2022 New Year                Zero

SQL> ALTER TABLE test_default
  2     ADD millenium_first_day DATE DEFAULT DATE '2001-01-01';
Table TEST_DEFAULT altered.

SQL> SELECT * FROM test_default;

         N NAME                    IS_ZERO   MILLENIUM_FIRST_DAY
---------- ----------------------- --------- -------------------
        54 INDEX                   Zero      01.01.2001
        39 TABLE                   Zero      01.01.2001
         6 CLUSTER                 Zero      01.01.2001
      2022 New Year                Zero      01.01.2001
...
Рейтинг: 0 / 0
С чего начать девелоперу?
    #40128184
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL*Plusчеловек его сам неверно заполнит?

Это будет его человеческая проблема.

Ролг ХупинОпределение тех самых "нормальных разработчиков" можно почитать?

Можно. Начни с определения нормальных форм по третью включительно. Нормальные
разработчики их не нарушают без крайней нужды. В особенности - первые две.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
С чего начать девелоперу?
    #40128196
Фотография SeaGate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL*Plus,

SQL*PlusПри добавлении поля с дефолтным значением не нужно выполнять UPDATE для его заполнения в Oracle 11.2+.
Нужные изменения произойдут на уровне словаря данных.
Смешались в кучу кони, люди.
Во-первых, UPDATE не нужно выполнять и раньше 11.2.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
SQL> select * from v$version;

BANNER                                                                          
--------------------------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production                      
PL/SQL Release 9.2.0.8.0 - Production                                           
CORE	9.2.0.8.0	Production                                                       
TNS for 32-bit Windows: Version 9.2.0.8.0 - Production                          
NLSRTL Version 9.2.0.8.0 - Production                                           

SQL> 
SQL> CREATE TABLE test_default
  2  AS
  3  SELECT COUNT(*) AS n, object_type AS name
  4  FROM all_objects WHERE ROWNUM < 100
  5  GROUP BY object_type;

Table created.

SQL> 
SQL> SELECT * FROM test_default;

         N NAME                                                                 
---------- ------------------------------                                       
        97 JAVA CLASS                                                           
         2 JAVA RESOURCE                                                        

SQL> 
SQL> ALTER TABLE test_default
  2  	ADD is_zero VARCHAR2(9 CHAR) DEFAULT 'Zero';

Table altered.

SQL> 
SQL> SELECT * FROM test_default;

         N NAME                           IS_ZERO                               
---------- ------------------------------ ----------                            
        97 JAVA CLASS                     Zero                                  
         2 JAVA RESOURCE                  Zero                                  

SQL> 
SQL> INSERT INTO test_default(n, name) VALUES(2022, 'New Year');

1 row created.

SQL> 
SQL> SELECT * FROM test_default;

         N NAME                           IS_ZERO                               
---------- ------------------------------ ----------                            
        97 JAVA CLASS                     Zero                                  
         2 JAVA RESOURCE                  Zero                                  
      2022 New Year                       Zero                                  

SQL> 
SQL> ALTER TABLE test_default
  2  	ADD millenium_first_day DATE DEFAULT DATE '2001-01-01';

Table altered.

SQL> 
SQL> SELECT * FROM test_default;

         N NAME                           IS_ZERO    MILLENIUM_FIRST_DA         
---------- ------------------------------ ---------- ------------------         
        97 JAVA CLASS                     Zero       01-JAN-01                  
         2 JAVA RESOURCE                  Zero       01-JAN-01                  
      2022 New Year                       Zero       01-JAN-01                  


Во-вторых, если речь про то, что ADD COLUMN DEFAULT NOT NULL is a metadata-only operation, о чем говорит второе предложение приведенного фрагмента, то это с 11.1: Enhanced ADD COLUMN Functionality
С 12.1 сделали для NULL: Metadata-Only DEFAULT Column Values for NULL Columns
...
Рейтинг: 0 / 0
С чего начать девелоперу?
    #40128212
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeaGate
SQL*Plus,

SQL*PlusПри добавлении поля с дефолтным значением не нужно выполнять UPDATE для его заполнения в Oracle 11.2+.
Нужные изменения произойдут на уровне словаря данных.

Во-первых, UPDATE не нужно выполнять и раньше 11.2.
Он там сам выполнится, я полагаю?
То есть не только в метаданных будет изменение.
...
Рейтинг: 0 / 0
С чего начать девелоперу?
    #40128219
Фотография SeaGate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL*Plus
SeaGate
SQL*Plus,

пропущено...

Во-первых, UPDATE не нужно выполнять и раньше 11.2.
Он там сам выполнится, я полагаю?
То есть не только в метаданных будет изменение.

Да, будет рекурсивный UPDATE в 9.2.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
PARSING IN CURSOR #1 len=71 dep=0 uid=66 oct=15 lid=66 tim=128234272 hv=1557695795 ad='69e0705c'
ALTER TABLE test_default
   ADD is_zero VARCHAR2(9 CHAR) DEFAULT 'Zero'
END OF STMT
PARSE #1:c=0,e=181,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=4,tim=128234267
BINDS #1:
...
=====================
PARSING IN CURSOR #6 len=42 dep=1 uid=66 oct=6 lid=66 tim=128263701 hv=146661771 ad='69e050c0'
update "TEST_DEFAULT" set "IS_ZERO"='Zero'
END OF STMT
PARSE #6:c=0,e=3191,p=0,cr=1,cu=0,mis=1,r=0,dep=1,og=4,tim=128263696
BINDS #6:
EXEC #6:c=0,e=75,p=0,cr=3,cu=4,mis=0,r=2,dep=1,og=4,tim=128263814
STAT #6 id=1 cnt=0 pid=0 pos=1 obj=0 op='UPDATE  '
STAT #6 id=2 cnt=2 pid=1 pos=1 obj=33217 op='TABLE ACCESS FULL TEST_DEFAULT '


Однако это не имеет отношения к DEFAULT NOT NULL и enhanced ADD COLUMN functionality в 11.1, т.к. поле допускает NULL с такой командой ALTER TABLE.
...
Рейтинг: 0 / 0
С чего начать девелоперу?
    #40128221
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeaGate
SQL*Plus
пропущено...
Он там сам выполнится, я полагаю?
То есть не только в метаданных будет изменение.

Да, будет рекурсивный UPDATE в 9.2.

Ужас.
На большой таблице это может устроить тяжелую передрягу.

Хорошо, что всё меньше и меньше остается ископаемых использователей таких древних версий.
Они уж как-нибудь потерпят или уже научены, что новые столбцы не стоит добавлять с DEFAULT.
...
Рейтинг: 0 / 0
С чего начать девелоперу?
    #40128302
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

SQL*Plusчеловек его сам неверно заполнит?

Это будет его человеческая проблема.

Ролг ХупинОпределение тех самых "нормальных разработчиков" можно почитать?

Можно. Начни с определения нормальных форм по третью включительно. Нормальные
разработчики
их не нарушают без крайней нужды. В особенности - первые две.


Спасибо!
Я просил дать мне ссылки на определение "нормальных разработчиков" (себя не включать ), но не получил,
зато продолжаю получать про "нужду".

Про нормальные формы: формально они должны выполняться и никакая "крайняя нужда" не должна приводить к "особенностям"
...
Рейтинг: 0 / 0
С чего начать девелоперу?
    #40128402
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг ХупинПро нормальные формы: формально они должны выполняться и никакая "крайняя нужда"
не должна приводить к "особенностям"

И ты всё ещё предлагаешь настаивать на нарушении второй? Именно это делает твоё
присваивание значения одного поля другому.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
С чего начать девелоперу?
    #40128415
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

Ролг ХупинПро нормальные формы: формально они должны выполняться и никакая "крайняя нужда"
не должна приводить к "особенностям"

И ты всё ещё предлагаешь настаивать на нарушении второй? Именно это делает твоё
присваивание значения одного поля другому.


не уверен, что это нарушение, поскольку это делается: добавил поле, проинициализировал значением из другой колонки,
а далее там будт содержаться другое по сути поле и будет считаться и т.д.
...
Рейтинг: 0 / 0
С чего начать девелоперу?
    #40128417
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как при сделать правило, что в поле

wht varchar2(1)

может содержаться одно из 3-х значений, например

'U', 'C', 'D'
?
...
Рейтинг: 0 / 0
С чего начать девелоперу?
    #40128420
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так же как и во всех остальных СУБД: check constraint.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
С чего начать девелоперу?
    #40128421
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
Как при сделать правило, что в поле

wht varchar2(1)

может содержаться одно из 3-х значений, например

'U', 'C', 'D'
?
Смотреть в сторону ограничений для поля
Код: plsql
1.
ADD CONSTRAINT <имя CONSTRAINT> CHECK (<поле> IN ('C', 'D', 'U'));
...
Рейтинг: 0 / 0
С чего начать девелоперу?
    #40128444
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу сделать триггер, который будет писать в лог таблицу все значения таблицы:
1. для апдейт - которые изменились + символ 'U' в специальное поле
2. для делете - все старые значения полей + символ 'D' в специальное поле

Т.е. можно ли сделать один триггер для апдейт и делете и как внутри триггера различить операцию?
...
Рейтинг: 0 / 0
С чего начать девелоперу?
    #40128452
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг ХупинТ.е. можно ли сделать один триггер для апдейт и делете и как внутри триггера
различить операцию?

Можно. Так как написано в документации.
https://docs.oracle.com/en/database/oracle/oracle-database/21/lnpls/CREATE-TRIGGER-statement.html
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
С чего начать девелоперу?
    #40128453
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
Хочу сделать триггер, который будет писать в лог таблицу все значения таблицы:
1. для апдейт - которые изменились + символ 'U' в специальное поле
2. для делете - все старые значения полей + символ 'D' в специальное поле

Т.е. можно ли сделать один триггер для апдейт и делете и как внутри триггера различить операцию?


Брат тут
...
Рейтинг: 0 / 0
С чего начать девелоперу?
    #40128476
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaulWist

Брат тут

зачем Вам compound?

.....
stax
...
Рейтинг: 0 / 0
С чего начать девелоперу?
    #40128571
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

Ролг ХупинТ.е. можно ли сделать один триггер для апдейт и делете и как внутри триггера
различить операцию?

Можно. Так как написано в документации.
https://docs.oracle.com/en/database/oracle/oracle-database/21/lnpls/CREATE-TRIGGER-statement.html


да, сделал один триггер
if updating
...
deleting
...
Рейтинг: 0 / 0
С чего начать девелоперу?
    #40128587
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупинсделал один триггер

И чем он лучше трёх отдельных если всё, что в нём есть, это три независимых
куска кода?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
С чего начать девелоперу?
    #40128601
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

Ролг Хупинсделал один триггер

И чем он лучше трёх отдельных если всё, что в нём есть, это три независимых
куска кода?


формально - ничем, но в данном случае мне удобнее, там идет запись в лог и получается не три независимых а три похожих.
...
Рейтинг: 0 / 0
С чего начать девелоперу?
    #40128660
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделал новую pdb, SQL Developer, коннектнулся
Теперь запустил веб интерфейс
https://localhost:5500/em/login

и фигушки, что не даю - не коннектится

User: SYS
Password: *****
Container: Что здесь?

Как завести веб менеджер? Какие параметры там надо укзаывать?
...
Рейтинг: 0 / 0
С чего начать девелоперу?
    #40128664
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
Теперь запустил веб интерфейс
https://localhost:5500/em/login

Расскажите подробнее, как вы это настраивали?
Как задавали для использования порт 5500 и протокол https?
...
Рейтинг: 0 / 0
С чего начать девелоперу?
    #40128695
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL*Plus
Ролг Хупин
Теперь запустил веб интерфейс
https://localhost:5500/em/login

Расскажите подробнее, как вы это настраивали?
Как задавали для использования порт 5500 и протокол https?


Собственно, запустил dbca , в нем создал pdb, и не конфигурировал даже, он на финише показал мне такую урл, по ней появилась страница, но, вот залогиниться не получается
...
Рейтинг: 0 / 0
25 сообщений из 147, страница 5 из 6
Форумы / Oracle [игнор отключен] [закрыт для гостей] / С чего начать девелоперу?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]