Гость
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как проверить наличие таблицы и удалить её в случае существования? / 7 сообщений из 7, страница 1 из 1
10.02.2005, 21:18
    #32911103
dimzon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить наличие таблицы и удалить её в случае существования?
Как проверить наличие таблицы и удалить её в случае существования?
Попробовал так (по аналогии с Oracle)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
BEGIN ATOMIC
DECLARE n INTEGER DEFAULT  0 ;
SET n = (SELECT COUNT(*) FROM syscat.tables t where RTRIM(t.tabschema) || '.' ||RTRIM(t.tabname) = 'DB2.TEST1');
IF  1 =n THEN
   EXECUTE IMMEDIATE 'DROP TABLE "DB2"."TEST1"';
END IF;
END

говорит:


[IBM][CLI Driver][DB2/NT] SQL0104N Обнаружен неправильный элемент "EXECUTE IMMEDIATE" после текста "T1'); IF 1=n THEN ". Список правильных элементов: "<compound_return>". LINE NUMBER=5. SQLSTATE=42601


Помогите!

Заодно если кто знает - подскажите как аналогичные операции проделать для CONSTRAINT-ов и индексов!
...
Рейтинг: 0 / 0
11.02.2005, 05:24
    #32911297
golsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить наличие таблицы и удалить её в случае существования?
Манипуляции типа CREATE и DROP c объектами базы данных из процедур, функций, триггеров не проходят.
DB2 v 7.2
...
Рейтинг: 0 / 0
11.02.2005, 09:09
    #32911442
TORT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить наличие таблицы и удалить её в случае существования?
Хм.... А у меня получается создавать таблицы через SQL-процедуры....
...
Рейтинг: 0 / 0
11.02.2005, 09:11
    #32911449
TORT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить наличие таблицы и удалить её в случае существования?
set SQL_CMD = 'drop table '||TABLE_NAME;
prepare s1 from SQL_CMD;
execute s1;

так должно удаляться
db2 v7.2
...
Рейтинг: 0 / 0
14.02.2005, 15:08
    #32914441
dimzon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить наличие таблицы и удалить её в случае существования?
А можно полный вариант процедуры (например какого типа д.б. переменная с подготовленным запросом)
...
Рейтинг: 0 / 0
15.02.2005, 11:50
    #32915995
TORT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить наличие таблицы и удалить её в случае существования?
declare MY_TABLE varchar(100);
select tabname into MY_TABLE from syscat.tables where tabname = 'MYTABLE';
SQL_CMD = 'drop table'||MY_TABLE;
PREPARE ss1 from SQL_CMD;
EXECUTE s1;
...
Рейтинг: 0 / 0
15.02.2005, 13:37
    #32916360
dimzon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить наличие таблицы и удалить её в случае существования?
[IBM][CLI Driver][DB2/NT] SQL0104N Обнаружен неправильный элемент "declare" после текста "BEGIN-OF-STATEMENT". Список правильных элементов: "<create_proc>". SQLSTATE=42601
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как проверить наличие таблицы и удалить её в случае существования? / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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