powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Transact->Watcom. Торможу
2 сообщений из 2, страница 1 из 1
Transact->Watcom. Торможу
    #32847712
Фотография 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
...
Рейтинг: 0 / 0
Transact->Watcom. Торможу
    #32847745
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
2 сообщений из 2, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Transact->Watcom. Торможу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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