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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Код: 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
20.01.2009, 12:01
    #35766713
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
drop procedure (fVarName)
Петров АндрейДа нету проблем то уже ;-)

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

Код: 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
Форумы / Informix [игнор отключен] [закрыт для гостей] / drop procedure (fVarName) / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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