Гость
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Порядок таблиц/ХП в скрипте экспорта. Проблема с параметром TYPE OF COLUMN / 11 сообщений из 11, страница 1 из 1
17.11.2016, 18:15
    #39349368
Василий №2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок таблиц/ХП в скрипте экспорта. Проблема с параметром TYPE OF COLUMN
Можно ли поменять местами таблицы и ХП в скрипте экспорта? Сейчас они идут так
- Заглушки ХП
- Таблицы
- Итоговые ХП
И возникает проблема с одной базой, где я поменял тип параметра ХП с VARCHAR(20) на TYPE OF COLUMN <Table>.<Field>. IBE генерирует создание заглушки с расшифровкой типа (в виде VARCHAR(20), а потом пересоздает ХП уже как надо). При накате этого скрипта (что самим IBE, что isql) создание итоговой ХП обламывается с ошибкой

Creating DB "db.gdb"...
SQL> SQL> Filling metadata...
Statement failed, SQLSTATE = 42000
unsuccessful metadata update
-cannot delete
-DOMAIN RDB$20
-there are 1 dependencies
After line 1385 in file C:\script.sql

Если поставить первым создание таблиц и поменять типы при создании заглушек на TYPE OF COLUMN - всё работает. isql, кстати, тоже экспортирует в таком порядке. К сожалению, пока не удалось создать воспроизводимый пример, т.к. простая пара таблица-ХП накатывается без проблем. FB 2.5.6.
...
Рейтинг: 0 / 0
19.11.2016, 03:47
    #39350209
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок таблиц/ХП в скрипте экспорта. Проблема с параметром TYPE OF COLUMN
Не должно быть в заглушках TYPE OF COLUMN. Версия эксперта какая?
...
Рейтинг: 0 / 0
21.11.2016, 10:04
    #39350773
o_v_a
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок таблиц/ХП в скрипте экспорта. Проблема с параметром TYPE OF COLUMN
Чойто мне кажется, что ему просто обновить надо IBExpert.
Все по части TYPE OF COLUMN вроде как исправлено уже.
...
Рейтинг: 0 / 0
23.11.2016, 16:55
    #39352877
Василий №2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок таблиц/ХП в скрипте экспорта. Проблема с параметром TYPE OF COLUMN
В самом деле, версия оказаась старой (обновлялся, но скрипт обновления подвел). Тем не менее, в новой ничего не поменялось:

Extract metadata
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
CREATE PROCEDURE SELPROC(
...)
RETURNS (
    NAME VARCHAR(15) /* TYPE OF COLUMN PATTERN.NAME */)
AS
BEGIN
  SUSPEND;
END^

ALTER PROCEDURE SELPROC_PAT(
...)
RETURNS (
    NAME TYPE OF COLUMN PATTERN.NAME)
AS
BEGIN
    ...
    SUSPEND;
END^



Выполняю получившийся скрипт, меняя имя БД на несуществующее

This operation is not defined for system tables.
unsuccessful metadata update.
cannot delete.
DOMAIN RDB$13.
there are 1 dependencies.
...
Рейтинг: 0 / 0
23.11.2016, 16:56
    #39352878
Василий №2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок таблиц/ХП в скрипте экспорта. Проблема с параметром TYPE OF COLUMN
Версия 2016.11.7.2
...
Рейтинг: 0 / 0
24.11.2016, 06:57
    #39353289
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок таблиц/ХП в скрипте экспорта. Проблема с параметром TYPE OF COLUMN
Василий №2В самом деле, версия оказаась старой (обновлялся, но скрипт обновления подвел). Тем не менее, в новой ничего не поменялось:

Extract metadata
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
CREATE PROCEDURE SELPROC(
...)
RETURNS (
    NAME VARCHAR(15) /* TYPE OF COLUMN PATTERN.NAME */)
AS
BEGIN
  SUSPEND;
END^

ALTER PROCEDURE SELPROC_PAT(
...)
RETURNS (
    NAME TYPE OF COLUMN PATTERN.NAME)
AS
BEGIN
    ...
    SUSPEND;
END^



Выполняю получившийся скрипт, меняя имя БД на несуществующее

This operation is not defined for system tables.
unsuccessful metadata update.
cannot delete.
DOMAIN RDB$13.
there are 1 dependencies.


Не морочь мне голову, в скрипте вообще разные процедуры. Кто и зачем там домен пытается удалить - мне отсюда тоже не видно.
...
Рейтинг: 0 / 0
24.11.2016, 18:10
    #39353995
Василий №2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок таблиц/ХП в скрипте экспорта. Проблема с параметром TYPE OF COLUMN
Таблицы переименовывал как пример...
Вот минимально воспроизводимый скрипт (генерируется экспертом с галкой extract all, decode domains снята)

Код: sql
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.
/******************************************************************************/
/***         Generated by IBExpert 2016.11.7.2 24.11.2016 18:00:23          ***/
/******************************************************************************/

SET SQL DIALECT 3;

SET NAMES WIN1251;

CREATE DATABASE 'C:\test.gdb'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 4096
DEFAULT CHARACTER SET WIN1251 COLLATION WIN1251;


/******************************************************************************/
/***                           Stored procedures                            ***/
/******************************************************************************/

SET TERM ^ ;

CREATE PROCEDURE SELPROC_PAT
RETURNS (
    NAME VARCHAR(15) /* TYPE OF COLUMN PATTERN.NAME */)
AS
BEGIN
  SUSPEND;
END^

SET TERM ; ^

/******************************************************************************/
/***                                 Tables                                 ***/
/******************************************************************************/

CREATE TABLE PATTERN (
    NAME  VARCHAR(15) NOT NULL
);

/******************************************************************************/
/***                                 Views                                  ***/
/******************************************************************************/

/* View: V_CUR_PATTERNS */
CREATE VIEW V_CUR_PATTERNS(
    NAME)
AS
SELECT * FROM SELPROC_PAT
;

/******************************************************************************/
/***                           Stored procedures                            ***/
/******************************************************************************/

SET TERM ^ ;

ALTER PROCEDURE SELPROC_PAT
RETURNS (
    NAME TYPE OF COLUMN PATTERN.NAME)
AS
BEGIN
    SUSPEND;
END^

SET TERM ; ^



Ошибка "This operation is not defined for system tables.
unsuccessful metadata update.
cannot delete.
DOMAIN RDB$1.
there are 1 dependencies." на "ALTER PROCEDURE SELPROC_PAT"
...
Рейтинг: 0 / 0
25.11.2016, 04:07
    #39354231
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок таблиц/ХП в скрипте экспорта. Проблема с параметром TYPE OF COLUMN
Василий №2Вот минимально воспроизводимый скрипт


Ну вот, с этого и надо было начинать. Дело в представлении, которое использует тот же домен, что и процедура, созданная по заглушке. И не дает поменять тип параметра.
Разгребание подобных зависимостей - задачка та еще, так что я вряд ли буду этим заниматься из-за одного частного случая.
Тем более, что в тройке этот скрипт отрабатывает без проблем.
...
Рейтинг: 0 / 0
28.11.2016, 17:12
    #39356160
Василий №2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок таблиц/ХП в скрипте экспорта. Проблема с параметром TYPE OF COLUMN
Ясно, спасибо. Будет дополнительный повод перейти на тройку.
А все же - почему был принят именно такой порядок, в отличие от isql, который без проблем отрабатывает данный сценарий?
...
Рейтинг: 0 / 0
29.11.2016, 05:44
    #39356501
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок таблиц/ХП в скрипте экспорта. Проблема с параметром TYPE OF COLUMN
Василий №2А все же - почему был принят именно такой порядок, в отличие от isql, который без проблем отрабатывает данный сценарий?

Существующий порядок устаканился задолго до появления TYPE OF, а алгоритм isql, полагаю, рихтуется под каждую новую версию сервера и его фичи. Не факт, что он без проблем разрулит любую цепочку зависимостей в любой базе.
Таблицы могут использовать процедуры в вычисляемых полях, поэтому на момент создания вычисляемых полей соответствующие процедуры уже должны существовать.
Представления тоже могут использовать процедуры (а процедуры - представления). Так что порядок создания объектов в эксперте - дешевый способ избежать геморроя с раскруткой всех цепочек зависимостей, которые могут быть весьма сложными.
...
Рейтинг: 0 / 0
29.11.2016, 13:38
    #39356806
Василий №2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок таблиц/ХП в скрипте экспорта. Проблема с параметром TYPE OF COLUMN
Понял, благодарю за объяснение!
...
Рейтинг: 0 / 0
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Порядок таблиц/ХП в скрипте экспорта. Проблема с параметром TYPE OF COLUMN / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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