Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Пропадает невидимость у колонок VIEW, ora 12.2 / 12 сообщений из 12, страница 1 из 1
18.11.2018, 16:47
    #39734815
Правильный Вася
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропадает невидимость у колонок VIEW, ora 12.2
Если на вьюху навесить любой констрейнт, то все INVISIBLE колонки в ней с какого-то перепугу становятся видимыми. Вот простая демонстрация:
Код: 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.
Присоединен к:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> SELECT column_name, hidden_column FROM All_Tab_Cols WHERE owner = 'U99' AND table_name = 'VVV';

строки не выбраны

SQL> CREATE VIEW VVV (f1, f2 invisible ) AS SELECT * FROM V$version;

Представление создано.

SQL> SELECT column_name, hidden_column FROM All_Tab_Cols WHERE owner = 'U99' AND table_name = 'VVV';

COLUMN_NAME
--------------------------------------------------------------------------------
HID
---
F1
NO

F2
YES


SQL> ALTER VIEW VVV ADD CONSTRAINT PK_VVV PRIMARY KEY(f1) NORELY DISABLE NOVALIDATE;

Представление изменено.

SQL> SELECT column_name, hidden_column FROM All_Tab_Cols WHERE owner = 'U99' AND table_name = 'VVV';

COLUMN_NAME
--------------------------------------------------------------------------------
HID
---
F1
NO

F2
NO


SQL>


При этом не имеет значения, какие колонки были невидимыми, на какие навешен констрейнт, что было базой для вьюхи (таблица или другая вьюха).

Больше всего сбивает с толку, что месяц назад на этом же сервере делал такие же эксперименты, и подобных странностей не было, до сих пор лежит несколько вьюх с невидимыми колонками и констрейнтами...
...
Рейтинг: 0 / 0
19.11.2018, 07:35
    #39734923
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропадает невидимость у колонок VIEW, ora 12.2
Правильный Вася
Код: plsql
1.
FROM All_Tab_Cols WHERE owner = 'U99'

Ты не ищешь лёгких путей?
...
Рейтинг: 0 / 0
19.11.2018, 08:48
    #39734937
Павел Воронцов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропадает невидимость у колонок VIEW, ora 12.2
Правильный ВасяБольше всего сбивает с толку, что месяц назад на этом же сервере делал такие же эксперименты, и подобных странностей не было, до сих пор лежит несколько вьюх с невидимыми колонками и констрейнтами...Ну так спроси у ДБА что на базу накатывали.
...
Рейтинг: 0 / 0
19.11.2018, 09:30
    #39734948
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропадает невидимость у колонок VIEW, ora 12.2
Правильный Васядо сих пор лежит несколько вьюх с невидимыми колонками и констрейнтами...Потому что лишний alter не нужен.
Код: plsql
1.
CREATE or replace VIEW VVV (f1, f2 invisible, CONSTRAINT PK_VVV PRIMARY KEY(f1) NORELY DISABLE NOVALIDATE) AS SELECT 1,2 FROM V$version;


Павел ВоронцовНу так спроси у ДБА что на базу накатывали.Ему показалось.
Поведение стабильное на начальных 12.1.0.2.0, 12.2.0.1.0 и 18.3.0.0.0.
...
Рейтинг: 0 / 0
20.11.2018, 15:40
    #39735704
Правильный Вася
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропадает невидимость у колонок VIEW, ora 12.2
Elic, насчет легких путей не понял.

Насчет лишнего alter. Похоже, я тогда действительно inline-constraint делал. А как быть, если потом надо исправить констраинт и пересоздать вьюху уже нельзя?
...
Рейтинг: 0 / 0
20.11.2018, 15:52
    #39735714
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропадает невидимость у колонок VIEW, ora 12.2
Правильный Васякак бытьОбращаться в поддержку. Либо исправят баг, либо документацию.
...
Рейтинг: 0 / 0
20.11.2018, 20:17
    #39735826
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропадает невидимость у колонок VIEW, ora 12.2
Правильный Васянасчет легких путей не понялuser_*
Правильный Васяinline-constraintНе бросайся терминами, которых не понимаешь.Правильный Васяи пересоздать вьюху уже нельзя?Врёшь, так не бывает.
...
Рейтинг: 0 / 0
20.11.2018, 23:59
    #39735870
Правильный Вася
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропадает невидимость у колонок VIEW, ora 12.2
Elic,
вот блин наехал.
...
Рейтинг: 0 / 0
21.11.2018, 00:01
    #39735871
Правильный Вася
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропадает невидимость у колонок VIEW, ora 12.2
ElicПравильный Васяи пересоздать вьюху уже нельзя?Врёшь, так не бывает.
Скажем так, геморройно весьма.
Еще будешь к словам цепляться?
...
Рейтинг: 0 / 0
21.11.2018, 00:22
    #39735875
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропадает невидимость у колонок VIEW, ora 12.2
Правильный Васявот блин наехал.Не пость картинок, которых тоже не понимаешь.
...
Рейтинг: 0 / 0
21.11.2018, 00:26
    #39735877
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропадает невидимость у колонок VIEW, ora 12.2
Правильный ВасяСкажем так, геморройно весьма.
Еще будешь к словам цепляться?У всех вьюха пересоздаётся с полпинка. Геморрой только у тебя.
...
Рейтинг: 0 / 0
21.11.2018, 01:17
    #39735888
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропадает невидимость у колонок VIEW, ora 12.2
Правильный Вася,

In line constraint означает constraint указан прямо в определении поля. Все остальное есть out of line constraint независимо задан ли constraint отдельный ALTER TABLE/VIEW ADD CONSTRAINT или непосредственно в CREATE TABLE/VIEW но вне определения полей. Например in line:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SQL> CREATE TABLE VASIA
  2  (EMPNO NUMBER,
  3  ENAME VARCHAR2(1000) NOT NULL,
  4  GENDER VARCHAR2(1) CHECK (GENDER IN('M','F')),
  5  SAL NUMBER
  6  )
  7  /

Table created.

SQL> 



А поставим зпт перед CHECK и получим out of line:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SQL> DROP TABLE VASIA PURGE;

Table dropped.

SQL> CREATE TABLE VASIA
  2  (EMPNO NUMBER,
  3  ENAME VARCHAR2(1000) NOT NULL,
  4  GENDER VARCHAR2(1), CHECK (GENDER IN('M','F')),
  5  SAL NUMBER
  6  )
  7  /

Table created.

SQL> 



Учи матчасть.

SY.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Пропадает невидимость у колонок VIEW, ora 12.2 / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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