Текущее время: Сб, авг 02 2025, 15:58

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Native SQL
СообщениеДобавлено: Чт, июн 28 2007, 11:47 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, май 26 2005, 11:36
Сообщения: 651
Откуда: Киев-Москва
Для перекачки большого объёма данных необходимо использование Native SQL
Цитата:
exec sql.
truncate table ZAAA
endexec.

TRY.
EXEC SQL.
INSERT INTO ZAAA
SELECT F1, F2, F3
FROM ZBBBB

ENDEXEC.
CATCH cx_sy_native_sql_error INTO exc_ref.
error_text = exc_ref->get_text( ).
MESSAGE error_text TYPE 'S'.
ENDTRY


При выполненени на месте, помеченным красным вываливается исключение про ошибочный SQL. Поля соответсвуют.
Как правильно для Oracle в нетиве реализовать конструкцию Insert into select ?

_________________
Рисую потоки данных.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 28 2007, 12:08 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
А текст ошибки-то какой? И структуру таблиц тоже нужно знать.

Может быть нужно SELECT DISTINCT.

Таблица ZAAA должна содержать только поля F1, F2, F3. В противном случае, поля нужно указывать явно: INSERT INTO ZAAA (f1, f2, f3) SELECT ...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 28 2007, 12:52 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пн, май 14 2007, 13:05
Сообщения: 561
Откуда: Москва
Может двоеточие поставить
INSERT INTO ZAAA
SELECT :F1, :F2, :F3
FROM ZBBBB


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 28 2007, 13:41 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, май 26 2005, 11:36
Сообщения: 651
Откуда: Киев-Москва
sibrin написал:
А текст ошибки-то какой? И структуру таблиц тоже нужно знать.
Может быть нужно SELECT DISTINCT.
Таблица ZAAA должна содержать только поля F1, F2, F3. В противном случае, поля нужно указывать явно: INSERT INTO ZAAA (f1, f2, f3) SELECT ...
Спасибо

Цитата:
exec sql.
truncate table ZAAA
endexec.

TRY.
EXEC SQL.
INSERT INTO ZAAA (f1, f2, f3)
SELECT F1, F2, F3
FROM ZBBBB
ENDEXEC.
CATCH cx_sy_native_sql_error INTO exc_ref.
error_text = exc_ref->get_text( ).
MESSAGE error_text TYPE 'S'.
ENDTRY


Конечно нетив - это не всегда правильно, но есть задачи с объёмными данными, где по другому - медленнее в разы.

_________________
Рисую потоки данных.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB