Текущее время: Пн, авг 04 2025, 11:04

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Можно ли из ABAP вызывать SQL запросы, созданные для конкретной СУБД?
СообщениеДобавлено: Вт, май 13 2008, 16:00 
Начинающий
Начинающий

Зарегистрирован:
Вт, май 13 2008, 06:16
Сообщения: 1
Проблема такая: нужно выполнить sql запрос с функциями. В запросе используются sql функции для конкретной СУБД и ABAP их не воспринимает, если писать напрямую. Получается нужно вызывать их не напрямую, но как...
Вот пример, функции преобразования типа данных из string в numeric и integer и поиск максимального значения. И всё это в одной строке, без всяких ФМ типа CONVERSION_EXIT_ALPHA_INPUT в цикле по селекту и т.д.

MYCOLUMN - типа CHAR, т.е. '2' больше, чем '10'. max=2.

Для MaxDB:
SELECT MAX(NUM(MYCOLUMN)) FROM MYTABLE

Для MS SQL:
SELECT MAX(CONVERT(int, MYCOLUMN)) FROM MYTABLE

Теперь результат: 10 больше, чем 2. max=10.

Ни Convert() ни Num() ABAP не видит. Ошибка - "NUM(MYCOLUMN)) неизвестный столбец"(даже если с пробелами). Ну и сами функции тоже для каждой СУБД свои собственные, т.е. Convert в MaxDB работать не будет, также как и NUM в MS SQL. Могу при помощи SQL Studio создать, протестировать на этой же самой саповской таблице и сохранить такой запрос в базе. Работает сам запрос прекрасно. Но из SAP по словарю запрос почему-то невиден, может из-за того, что не в SAP был создан...
Пробовал в Native SQL. Хоть и можно создавать функции, но всё тот же простой SELECT, тоже не выход.
Тут как я понял нужно при помощи ABAP вызвать этот готовый запрос из БД, либо передать его на обработку СУБД в первозданном виде, без проверки синтаксиса.
Функций в sql не то что много, но хватает, и упрощают они код, не надо лезть в различные абаповские ФМ. Научиться бы ещё их использовать с наименьшими потерями... Вобщем пишите что думаете по этому поводу.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, май 13 2008, 16:18 
Модератор
Модератор
Аватара пользователя

Зарегистрирован:
Пт, июн 16 2006, 00:43
Сообщения: 1686
Откуда: Москва <-> Красноярск
Пол: Мужской
Тема обсосана многажды и в разных видах.
Смотрите поиск.

По существу - можно использовать хранимые процедуры.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Можно ли из ABAP вызывать SQL запросы, созданные для конкретной СУБД?
СообщениеДобавлено: Вт, май 13 2008, 23:43 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Alcorn написал(а):
Проблема такая: нужно выполнить sql запрос с функциями. В запросе используются sql функции для конкретной СУБД и ABAP их не воспринимает, если писать напрямую. Получается нужно вызывать их не напрямую, но как...

А какой реальный смысл уходить от SELECT в цикле с CONVERSION_EXIT_ALPHA_INPUT или просто преобразованием в число к одиночному оператору?
Если поле символьное в собственной таблице и нужно найти макимальное числовое(!) значение, то нужно задуматься прежде всего о том, не сделать ли его числовым в таблице БД.

_________________
С уважением,
Удав.


Последний раз редактировалось Удав Ср, май 14 2008, 12:38, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, май 14 2008, 12:33 
Директор
Директор

Зарегистрирован:
Чт, июн 21 2007, 09:01
Сообщения: 904
Откуда: УЖ 15/2
Пол: Мужской
А так нельзя?
Code:
DATA gv_field TYPE YNUNB-NUMBERSF.

EXEC SQL.
  SELECT MAX(TO_NUMBER(NUMBERSF)) FROM YNUNB INTO :gv_field
ENDEXEC.


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

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


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

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


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

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