Запросы, планы, оптимизация запросов, ...
Модераторы: kdv, CyberMax
-
fazil6
- Сообщения: 2
- Зарегистрирован: 09 сен 2005, 13:19
Сообщение
fazil6 » 09 сен 2005, 13:32
пытаюсь написать процедуру в которой создаю новую таблицу.
Делаю так
Код: Выделить всё
create procedure JURN_CREATE (tab_name varchar(12))
as
begin
CREATE TABLE :tab_name (
UIN INTEGER,
TYPECOM INTEGER,
NUMBERCOM INTEGER,
SENDTIME DATE,
RECVTIME DATE,
NOTE_DATE DATE );
end
при выполнении запроса мне говорит, что CREATE здесь не к месту. Как решается такая проблема?
Использую FB 1.5
-
eugeney
- Сообщения: 79
- Зарегистрирован: 29 окт 2004, 18:51
Сообщение
eugeney » 09 сен 2005, 14:24
fazil6 писал(а):
при выполнении запроса мне говорит, что CREATE здесь не к месту. Как решается такая проблема?
Использую FB 1.5
Вообщето это к проктологу

В SQL нельзя использовать в качестве параметров имена метаданных. А DDL РЕКОМЕНДУЕТСЯ выполнять в отдельных транзакциях.
-
dimitr
- Разработчик Firebird
- Сообщения: 888
- Зарегистрирован: 26 окт 2004, 16:20
Сообщение
dimitr » 09 сен 2005, 15:13
1) DDL внутри процедуры/триггера запрещен
2) DDL должен обязательно коммититься перед использованием его в DML
3) Переменные имена создаваемых таблиц не допускаются