Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Transact->Watcom. Торможу / 2 сообщений из 2, страница 1 из 1
28.12.2004, 13:38
    #32847712
Ggg_old
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Transact->Watcom. Торможу
АСА 9.02. Решил потихоньку переползать с TransactSQL на Watcom.
Наткнулся на простейшую проблемку и не могу понять почему АСА ругается ?-(
При попытке создать процедуру или просто выполнить это выражение вылазит синтаксическая ошибка на выражение declare. Если в ХП есть только одно выражение, то все сохраняется номально.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
ALTER PROCEDURE "DBA"."watcom_test"( )
BEGIN
	if exists(select  1  from sys.systable where table_name='my_temp') then
		select  1 ;
   	//drop table executive_id;	
	end if
	declare local temporary table my_temp
	(
		a int not null		
	) NOT TRANSACTIONAL;
END
...
Рейтинг: 0 / 0
28.12.2004, 13:51
    #32847745
ASCRUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Transact->Watcom. Торможу
Ggg_oldАСА 9.02. Решил потихоньку переползать с TransactSQL на Watcom.
Наткнулся на простейшую проблемку и не могу понять почему АСА ругается ?-(
При попытке создать процедуру или просто выполнить это выражение вылазит синтаксическая ошибка на выражение declare. Если в ХП есть только одно выражение, то все сохраняется номально.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
ALTER PROCEDURE "DBA"."watcom_test"( )
BEGIN
	if exists(select  1  from sys.systable where table_name='my_temp') then
		select  1 ;
   	//drop table executive_id;	
	end if
	declare local temporary table my_temp
	(
		a int not null		
	) NOT TRANSACTIONAL;
END

Ну я бы рекомендовал серьезно почитать BOL для освоения WatcomSQL. В данном случае ругается на DECLARE, которая должна стоять в начале блока видимости ее обьявления (т.е. сразу же после BEGIN). Так же в DECLARE нельзя обьявить множество переменных через запятую и т.д.

Рабочий вариант Вашего примера будет выглядеть так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
ALTER PROCEDURE "DBA"."watcom_test"( )
BEGIN
	declare local temporary table my_temp
	(
		a int not null		
	) NOT TRANSACTIONAL;

	if exists(select  1  from sys.systable where table_name='my_temp') then
		select  1 ;
   	//drop table executive_id;	
	end if
END
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Transact->Watcom. Торможу / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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