powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / drop procedure (fVarName)
19 сообщений из 19, страница 1 из 1
drop procedure (fVarName)
    #35764958
Петров Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть в Informix динамический SQL? Или как еще дропнуть процедуру имя которой передается как параметр?
...
Рейтинг: 0 / 0
drop procedure (fVarName)
    #35764966
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
drop procedure (fVarName)
    #35765051
Петров Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев Денис (SQL.RU)Вам это не нужно, это не нужно вообще никому. Единственный случай применения, встреченный мною за пять лет, это set role <RoleName> внутри dba процедуры.

Так как все же подропать процедуры которых мжет не быть? Без обработки -674
...
Рейтинг: 0 / 0
drop procedure (fVarName)
    #35765322
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Петров АндрейЖуравлев Денис (SQL.RU)Вам это не нужно, это не нужно вообще никому. Единственный случай применения, встреченный мною за пять лет, это set role <RoleName> внутри dba процедуры.

Так как все же подропать процедуры которых мжет не быть? Без обработки -674а зачем дропать процедуры?
...
Рейтинг: 0 / 0
drop procedure (fVarName)
    #35765371
Петров Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для того чтобы обновить версии
...
Рейтинг: 0 / 0
drop procedure (fVarName)
    #35765416
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Петров АндрейДля того чтобы обновить версииа динамический sql тут причем?
...
Рейтинг: 0 / 0
drop procedure (fVarName)
    #35765673
Петров Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пожалуй закроем вопрос. Наверное у вас нет идей раз вы задаете эти вопросы.

Спасибо.
...
Рейтинг: 0 / 0
drop procedure (fVarName)
    #35765832
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Петров АндрейЖуравлев Денис (SQL.RU)Вам это не нужно, это не нужно вообще никому. Единственный случай применения, встреченный мною за пять лет, это set role <RoleName> внутри dba процедуры.

Так как все же подропать процедуры которых мжет не быть? Без обработки -674

либо таки обрабатывать exception, либо сначала проверять наличие процедуры в sysprocedures.
...
Рейтинг: 0 / 0
drop procedure (fVarName)
    #35765853
Фотография Daugava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+1. Как первое, так и второе не представляет проблем. На мой взгляд, правильный подход проверить перед выполнением наличие процедуры через sysprocedures.
...
Рейтинг: 0 / 0
drop procedure (fVarName)
    #35765898
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Напомню, что начиная с 9-й версии может быть несколько процедур с одинаковыми именами :)
...
Рейтинг: 0 / 0
drop procedure (fVarName)
    #35766174
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vasilisНапомню, что начиная с 9-й версии может быть несколько процедур с одинаковыми именами :)

Именно поэтому мне кажется проще обрабатывать исключение.
...
Рейтинг: 0 / 0
drop procedure (fVarName)
    #35766190
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Петров АндрейПожалуй закроем вопрос. Наверное у вас нет идей раз вы задаете эти вопросы.

Спасибо.В факе написаны несколько способов выполнения динамического sql. Чем-то не подходят?

Зачем тут вообще динамический sql?
Написать .sql скрипт
drop aaa;
create aaa
;
drop bbb;
create bbb
;
dbaccess в режиме по умолчанию ошибки пропускает и выполняет скрипт дальше. Чем такой вариант не подходит?
...
Рейтинг: 0 / 0
drop procedure (fVarName)
    #35766533
Петров Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такой вариант не подходит очень по простой причине. Потому что есть 100 клиентов и каждая упавшая команда приходит к нам на поддержку обратно - смысла их рзгребать нет ни малейшего.

Уже сделал вариант с тупым перечислением всх процедур и проверкой их в sysprocedures. Так же убрал все Exception-ы поому как некоторые процедуры используются внутри процедур :-))) и дают -9300 помоему при дропе.

Варианты из фака не подходят потому как:
Exec - заставить работать у меня не вышло IDS 9 TC4 Опять же есть клиенты с IDS 7.
echo + system вообще не вариант. Часть клиентов на Linux-е +UCX
...
Рейтинг: 0 / 0
drop procedure (fVarName)
    #35766567
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Петров АндрейТак же убрал все Exception-ы поому как некоторые процедуры используются внутри процедур :-))) и дают -9300 помоему при дропе.

Непонятно - ни разу не слышал про ограничения на DROP PROCEDURE... Давайте конкретней.

Петров Андрей
echo + system вообще не вариант. Часть клиентов на Linux-е +UCX

А на Linux-е разве echo или system не пашет?
...
Рейтинг: 0 / 0
drop procedure (fVarName)
    #35766577
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Петров АндрейТакой вариант не подходит очень по простой причине. Потому что есть 100 клиентов и каждая упавшая команда приходит к нам на поддержку обратно - смысла их рзгребать нет ни малейшего.
Пишется собственная программа, достаточная умная, чтобы при drop procedure не обращать на ошибку -674. Час работы.
...
Рейтинг: 0 / 0
drop procedure (fVarName)
    #35766598
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
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.
CREATE PROCEDURE test1(
)

END PROCEDURE;

-- Routine created.

CREATE PROCEDURE test2(
)

END PROCEDURE;

-- Routine created.

SELECT * 
  FROM sysprocedures 
    WHERE procname LIKE 'test%';

-- 2 row(s) retrieved.

CREATE PROCEDURE drop_procedures(
)

  BEGIN
    ON EXCEPTION IN (- 674 )
    END EXCEPTION WITH RESUME;
  
    DROP PROCEDURE test1;
    DROP PROCEDURE test3;
    DROP PROCEDURE test2;
  END
  
END PROCEDURE;

-- Routine created.

EXECUTE PROCEDURE drop_procedures();

-- Routine executed.

DROP PROCEDURE drop_procedures;

-- Routine dropped.

SELECT *
  FROM sysprocedures
    WHERE procname LIKE 'test%';

-- 0 row(s) retrieved.

...
Рейтинг: 0 / 0
drop procedure (fVarName)
    #35766604
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И после этого скрипт на создание новых вариантов ХП test1, test2, test3...

Какие ещё проблемы? :)
...
Рейтинг: 0 / 0
drop procedure (fVarName)
    #35766695
Петров Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да нету проблем то уже ;-)

Единственное надо еще учесть вот такой вариант:

Код: plaintext
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.
CREATE PROCEDURE test1(
)

END PROCEDURE;

-- Routine created.

CREATE PROCEDURE test2()
Execute Procedure test1()
END PROCEDURE;

CREATE PROCEDURE drop_procedures(
)

  BEGIN
    ON EXCEPTION IN (- 674 , ???)
    END EXCEPTION WITH RESUME;
  
    DROP PROCEDURE test1;
    DROP PROCEDURE test3;
    DROP PROCEDURE test2;
  END
  
END PROCEDURE;

...
Рейтинг: 0 / 0
drop procedure (fVarName)
    #35766713
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Петров АндрейДа нету проблем то уже ;-)

Единственное надо еще учесть вот такой вариант:

Код: plaintext
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.
CREATE PROCEDURE test1(
)

END PROCEDURE;

-- Routine created.

CREATE PROCEDURE test2()
Execute Procedure test1()
END PROCEDURE;

CREATE PROCEDURE drop_procedures(
)

  BEGIN
    ON EXCEPTION IN (- 674 , ???)
    END EXCEPTION WITH RESUME;
  
    DROP PROCEDURE test1;
    DROP PROCEDURE test3;
    DROP PROCEDURE test2;
  END
  
END PROCEDURE;



Вы эту проблему сами себе надумали... Никаких новых ошибок не появится, удаляйте вы test1 и test2 хоть в порядке

Код: plaintext
1.
2.
3.
4.
...
DROP PROCEDURE test1;
DROP PROCEDURE test2;
...
хоть в порядке

Код: plaintext
1.
2.
3.
4.
...
DROP PROCEDURE test2;
DROP PROCEDURE test1;
...

Небось в информиксовских процедурах не так давно возитесь, а до этого был какой-нить опыт с другой СУБД? :)
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / drop procedure (fVarName)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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