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

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Google [Bot]


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

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