powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Порядок таблиц/ХП в скрипте экспорта. Проблема с параметром TYPE OF COLUMN
11 сообщений из 11, страница 1 из 1
Порядок таблиц/ХП в скрипте экспорта. Проблема с параметром TYPE OF COLUMN
    #39349368
Василий №2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно ли поменять местами таблицы и ХП в скрипте экспорта? Сейчас они идут так
- Заглушки ХП
- Таблицы
- Итоговые ХП
И возникает проблема с одной базой, где я поменял тип параметра ХП с 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
Порядок таблиц/ХП в скрипте экспорта. Проблема с параметром TYPE OF COLUMN
    #39350209
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не должно быть в заглушках TYPE OF COLUMN. Версия эксперта какая?
...
Рейтинг: 0 / 0
Порядок таблиц/ХП в скрипте экспорта. Проблема с параметром TYPE OF COLUMN
    #39350773
Фотография o_v_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чойто мне кажется, что ему просто обновить надо IBExpert.
Все по части TYPE OF COLUMN вроде как исправлено уже.
...
Рейтинг: 0 / 0
Порядок таблиц/ХП в скрипте экспорта. Проблема с параметром TYPE OF COLUMN
    #39352877
Василий №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
Порядок таблиц/ХП в скрипте экспорта. Проблема с параметром TYPE OF COLUMN
    #39352878
Василий №2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Версия 2016.11.7.2
...
Рейтинг: 0 / 0
Порядок таблиц/ХП в скрипте экспорта. Проблема с параметром TYPE OF COLUMN
    #39353289
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий №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
Порядок таблиц/ХП в скрипте экспорта. Проблема с параметром TYPE OF COLUMN
    #39353995
Василий №2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Таблицы переименовывал как пример...
Вот минимально воспроизводимый скрипт (генерируется экспертом с галкой 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
Порядок таблиц/ХП в скрипте экспорта. Проблема с параметром TYPE OF COLUMN
    #39354231
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий №2Вот минимально воспроизводимый скрипт


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

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


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