2013-10-07 2 views
1

Я довольно новичок в Firebird .. пытается написать запрос, который отбрасывает таблицу, если существует через IBOConsole.Firebird IBOConsole SQL Drop Table, если она не работает

Я написал следующее SQL заявление,

EXECUTE block as 
BEGIN 
if (exists(
SELECT 1 FROM RDB$RELATIONS Where RDB$RELATION_NAME = 'ZZGTTUNIQUEID')) 
then 
execute statement 'DROP TABLE ZZGTTUNIQUEID'; 
END 

но получить следующий результат ..

ISC ERROR CODE:335544569 

ISC ERROR MESSAGE: 
Dynamic SQL Error 
SQL error code = -104 
Unexpected end of command - line 6, column 19 

я не уверен, что может быть не так?

+0

Я думаю, вам нужно написать вот так: 'execute statement 'DROP TABLE ZZGTTUNIQUEID;';' – cha

+1

Вам, вероятно, нужно переключить терминатор оператора на что-то другое, кроме ';', чтобы консоль IBO знала, когда заканчивается оператор. Например, 'SET TERM #;', добавьте '#' после окончательного 'END' и добавьте' SET TERM; #' после последней строки. –

+0

hey cha, я попытался изменить строку 6 на [execute statement 'DROP TABLE ZZGTTUNIQUEID'; ';], и я получаю [Неожиданный конец команды - строка 7, столбец 19] и ... @MarkRotteveel i 've try Условное обозначение #; ВЫПОЛНИТЬ блок, как НАЧАТЬ если (существует ( ВЫБРАТЬ 1 FROM RDB $ ОТНОШЕНИЙ Где RDB $ RELATION_NAME = 'ZZGTTUNIQUEID')) затем выполнить оператор 'DROP TABLE ZZGTTUNIQUEID'; END # set term; # Проблема в BindingCursor ... – Hyojiiggy

ответ

0

В IBOConsole у меня также возникли проблемы с использованием инструкции EXECUTE BLOCK, в результате чего появилось сообщение «Проблема в BindingCursor» и не выполнялось утверждение в базе данных. Вместо этого используйте скрипт администратора IBExpert или FlameRobin, и он будет работать.

Смежные вопросы