Я написал запрос DB2, чтобы сделать следующее:DB2 эквивалентна GO GO GO?
- Создать временную таблицу
- Выберите из запроса монстра/вставить в временную таблицу
- Выберите из временной таблицы/удалить из старой таблицы
- Выберите из временной таблицы/вставить в другую таблицу
в MSSQL, мне позволено запускать команды один за другим, как один длинный запрос. В противном случае я могу ограничить их командами «GO». Когда я пытаюсь это в DB2, я получаю ошибку:
DB2CLI.DLL: ERROR [42601] [IBM][CLI Driver][DB2] SQL0199N The use of the reserved
word "GO" following "" is not valid. Expected tokens may include: "".
SQLSTATE=42601
Что я могу использовать, чтобы разграничить эти инструкции без временной таблицы, выходящей за рамки?
Это немного сложнее в DB2. Обычно разделитель по умолчанию является точкой с запятой, однако в телах хранимых процедур и др. Разделитель всегда является точкой с запятой, в то время как разделитель используется _a после_CREATE PROCUEDURE/любая команда должна быть чем-то другим. Вы можете переопределить этот разделитель в среде, из которой вы вызываете DB2. Традиционно \\ используется как «внешний разделитель», но вы можете использовать любую другую строку. –