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

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


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

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


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

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