Текущее время: Вс, апр 28 2024, 08:08

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: ABAP-программа и Native SQL
СообщениеДобавлено: Вт, июн 06 2017, 10:11 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, дек 17 2015, 20:36
Сообщения: 59
Добрый день!

Если есть гуру, которые могут подсказать, как написать ABAP-программу с SQL-запросами в BD Oracle, которая собирает статистику, отзовитесь плз.

Для начала есть: файлы SQL (? - якобы примеры), опыт ABAP программирования и начальные знания Native SQL.

Надо получить статистику (размеры, объемы таблиц и пр.).

Для примера кусок из этого SQL файла:
...
Code:
select count(*)
    into   v_index_maxcount
    from   user_indexes a
    where  partitioned = 'NO'
    and    exists (
                     select *
                     from   user_tab_statistics
                     where  (stale_stats = 'YES'
                     or      stale_stats is null)
                     and    table_name   = a.table_name
                  )   
    ;

...
Подскажите, плз, как с этим работать? Что это за таблица user_tab_statistics?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ABAP программа и Native SQL.
СообщениеДобавлено: Вт, июн 06 2017, 10:39 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Вт, май 17 2005, 13:35
Сообщения: 4842
Откуда: Москва
Пол: Мужской
1. Если нужно выполнить из под SAP произвольный SQL запрос, для этого не надо писать программу, можно воспользоваться st04, там же есть информация по размерам таблиц и т.п.
2. По поводу SQL скриптов для сбора всяческой полезной статистики Oracle можно начать с изучения чужих велосипедов.
Например, с ноты 1438410 - "SQL script collection for Oracle"

_________________
Удача - результат нашего желания (© А. Нортон)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ABAP программа и Native SQL.
СообщениеДобавлено: Вт, июн 06 2017, 11:52 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, дек 20 2007, 18:21
Сообщения: 1613
это надо делать оракловой консолью и руками базиса.

_________________
я твой сап эфай внедрял
BAdI-позитив
Взять немножечко абопу, сунь туда кошачью *опу, RFC лапки, БТ старой бабки, на медленном базиснике переносить, тестовое окружение материть, снимать SAT пенку, биться головой о стенку, охапка тайм-шитов, отчет готов!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ABAP программа и Native SQL.
СообщениеДобавлено: Вт, июн 06 2017, 12:12 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, дек 17 2015, 20:36
Сообщения: 59
Сложно для понимания оказалось. В ST04 SQL editor есть. Только не ругайте, но спрошу - вот этот запрос выдает ошибку "ORA-00936: missing expression". Что не так?
Code:
select count(*)
    into   v_table_maxcount 
    from   user_tab_statistics a
    where  (stale_stats = 'YES'
    or      stale_stats is null)
    ;

Предполагается, что те примеры SQL-запросов, которые мне выслали, надо запустить. Но таблицы user_tab_statistics в ABAP Dictionary нет. Я правильно мыслю?

Может, мне просто написать программу на ABAP без native SQL? В ST04, надеюсь, все данные есть, чтобы выдать статистику.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ABAP программа и Native SQL.
СообщениеДобавлено: Вт, июн 06 2017, 13:09 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Вт, май 17 2005, 13:35
Сообщения: 4842
Откуда: Москва
Пол: Мужской
Попробовал из интереса в своей системе.
Вот так в ST04 работает:
Code:
select count(*)
from user_tab_statistics a
where (stale_stats = 'YES'
or stale_stats is null)


"into v_table_maxcount " - это уже ABAP-синтаксис, точки с запятыми - вообще какой-то C++

_________________
Удача - результат нашего желания (© А. Нортон)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ABAP программа и Native SQL.
СообщениеДобавлено: Вт, июн 06 2017, 14:01 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Пт, сен 07 2007, 07:53
Сообщения: 1392
simka_3375 написал(а):
select count(*)
into v_table_maxcount
from user_tab_statistics a
where (stale_stats = 'YES'
or stale_stats is null)
;

Это синтаксис PL\SQL, вариант SQL для использования в программе. Для вызова из ST04 вместо этого нужно будет внести
Code:
select count(*) as count
    from   user_tab_statistics a
    where  (stale_stats = 'YES'
    or      stale_stats is null)

- убираем into
- убираем ;
- "count(*)" переобзвать простой строчкой.

Цитата:
Но таблицы user_tab_statistics в ABAP Dictionary нет. Я правильно мыслю?
Это штатная вьюшка Оракла, она доступна любому пользователю Оракла, коим является пользователь-владелец SAP.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ABAP программа и Native SQL.
СообщениеДобавлено: Вт, июн 06 2017, 16:30 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, дек 17 2015, 20:36
Сообщения: 59
Спасибо большое за ответы. Работает через ST04 c некоторыми доработками. С инструментами разобрались.
Осталось понять суть происходящего... интересно, в какой теме могут дать совет как у начальства получать адекватные задания?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ABAP программа и Native SQL.
СообщениеДобавлено: Чт, июн 15 2017, 14:45 
Начинающий
Начинающий

Зарегистрирован:
Пт, янв 15 2010, 16:15
Сообщения: 15
Для выполнения native sql запросов следует использовать ABAP-класс cl_sql_statement. Его следует вызывать с текстом запроса, который вы в ST04 запускаете.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: ABAP программа и Native SQL.
СообщениеДобавлено: Пт, июн 16 2017, 02:17 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3074
Откуда: Москва
simka_3375 написал(а):
интересно, в какой теме могут дать совет как у начальства получать адекватные задания?

В этой

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


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

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


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

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


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

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