powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Оператор "go" или ";" ?
7 сообщений из 7, страница 1 из 1
Оператор "go" или ";" ?
    #33282619
Евгений_C
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите пожалуйста, а почему в БОЛ во всех примерах используется оператор go:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
CREATE PROCEDURE OrderCount (IN customer_ID INT, OUT Orders INT)
BEGIN
   SELECT COUNT("DBA".sales_order.id)
   INTO Orders
   FROM "DBA".customer
   KEY LEFT OUTER JOIN "DBA".sales_order
   WHERE "DBA".customer.id = customer_ID;
END
go
 -- Create a variable to hold the result
CREATE VARIABLE Orders INT
go
-- Call the procedure, FOR customer 101
CALL OrderCount (  101 , Orders)
go
--  Display the result
SELECT Orders FROM DUMMY
go

Разве недостаточно использовать просто символ ";", ведь с ним и так всё нормально работает. А поставить точку с запятой проще и привычней, чем слово, да и текст получается менее загромождённым, читать легче.

В чём же разница между "go" и ";" ?
...
Рейтинг: 0 / 0
Оператор "go" или ";" ?
    #33282647
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все просто - ";" разделитель операторов WatcomSQL, а GO разделитель пакетов в ISQL. То есть ISQL ищет в тексте первый GO, выдирает до него текст, отсылает на выполнение ASA, далее ищет следующий GO и идет в том же порядке. Соотвествующе если не ставить GO, то скрипт будет весь выполнен одним пакетом. Стоит еще заметить, что если для ISQL выставлена опция AUTO_COMMIT, то после каждого GO он автоматически будет посылать на сервер COMMIT.
...
Рейтинг: 0 / 0
Оператор "go" или ";" ?
    #33282650
Евгений_C
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всё понятно, спасибо.

Правда, тут же возникает следующий вопрос - а в чём преимущества/недостатки исполнения операторов одним/несколькими пакетами? Есть какое-то ограничение на размер пакета?

Если я пишу в консоли какой-нибудь большой скрипт - например создание таблиц + раздача прав + несколько ХП + ещё что-то - то я всё равно не стану запускать весь скрипт сразу по Ф5, а буду прогонять его кусками, по Ф9. Так что в этом случае, наверное, нет разницы?
...
Рейтинг: 0 / 0
Оператор "go" или ";" ?
    #33282659
Евгений_C
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И ещё вопрос вдогонку - в чём разница между операторами "+" и "||" для склейки строк? Результат вроде бы в обоих случаях одинаковый?
...
Рейтинг: 0 / 0
Оператор "go" или ";" ?
    #33282677
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений_CВсё понятно, спасибо.

Правда, тут же возникает следующий вопрос - а в чём преимущества/недостатки исполнения операторов одним/несколькими пакетами? Есть какое-то ограничение на размер пакета?

Если я пишу в консоли какой-нибудь большой скрипт - например создание таблиц + раздача прав + несколько ХП + ещё что-то - то я всё равно не стану запускать весь скрипт сразу по Ф5, а буду прогонять его кусками, по Ф9. Так что в этом случае, наверное, нет разницы?
Разница только в том, что в случае возникновения ошибки в скрипте, при использовании GO ISQL будет знать, с какого пакета произошла ошибка и переместит туда курсор. При использовании F9 получается ручная эмуляция действий ISQL и разницы никакой действительно не будет.
...
Рейтинг: 0 / 0
Оператор "go" или ";" ?
    #33282679
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений_CИ ещё вопрос вдогонку - в чём разница между операторами "+" и "||" для склейки строк? Результат вроде бы в обоих случаях одинаковый?
Разница в том, что вот этот запрос вызовет ошибку:
Код: plaintext
SELECT 'a' +  1  + CURRENT DATE;
А этот нет:
Код: plaintext
SELECT 'a' ||  1  || CURRENT DATE;
...
Рейтинг: 0 / 0
Оператор "go" или ";" ?
    #33282697
Евгений_C
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всё понял. Спасибо за разъяснения :)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Оператор "go" или ";" ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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