Текущее время: Вт, сен 25 2018, 14:52

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Скопировать данные в таблицу
СообщениеДобавлено: Чт, июл 05 2018, 17:25 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 15:11
Сообщения: 305
День добрый (давно я не писал здесь)
за это время накопилось несколько проблем.
Первая из них - это скопировать одну таблицу в другую.
Code:
REPORT  ZPP_COPY_MRP5.
data: gt_ZPPMRP5_12 type table of ZPPMRP5_12,
      gl_ZPPMRP5_12 type ZPPMRP5_12,
      lin type i.
select * into corresponding fields of table gt_ZPPMRP5_12 from zppmrp5_tmp1.
describe table gt_ZPPMRP5_12 lines lin.
if lin > 40000.
  delete from ZPPMRP5_12.
  loop at gt_ZPPMRP5_12 into gl_ZPPMRP5_12.
    gl_ZPPMRP5_12-data_create = sy-datum.
    insert into ZPPMRP5_12 values gl_ZPPMRP5_12.
  endloop.
endif.

это все просто, однако мне это надо делать ежемесячно.
Я попробовал добавить новые данные, она из зачистила.
По итогу. Хочу доделать эту программу, чтобы помимо того, что она держала в себе 12 месяцев (gl_ZPPMRP5_12-data_create = sy-datum.)
и отличались этим полем.
Тогда я добью свою динамическую выборку и все станет на свои места.


Дальше, (пока еще в задумке), оно проверяло "сейчас 05 (май) 2018?" а в таблицу 05 (май) 2017" тогда удалить все данные с data_create 05.2017, потом добавляется май 2018 соответственно.
Но это подождет (еще месяцев 8 у меня есть в запасе на это дело).
Подскажите пожалуйста пока что, как быть с этой программой, чтобы не удалялись данные, а просто дополнялись.
12 таблиц - это накладно держать - мне так и сказали админы "фиг тебе, а не 12 физических таблиц, пихай всё в одну".
Меня терзают смутные сомнения на счет одной тоже - это же получится по итогу на конец года около 44 млн строк данных. Однако, мы работаем по строгому "ключу" и стоит как минимум попробовать.


Подскажите пожалуйста решение или в какую сторону думать. Каким инструментом я могу сделать это ? или пример demo_ программы. Спасибо.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Скопировать данные в таблицу
СообщениеДобавлено: Чт, июл 05 2018, 17:27 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, сен 06 2017, 00:56
Сообщения: 337
Code:
Подскажите пожалуйста пока что, как быть с этой программой, чтобы не удалялись данные, а просто дополнялись.

убрать строку delete from ZPPMRP5_12.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Скопировать данные в таблицу
СообщениеДобавлено: Чт, июл 05 2018, 17:29 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 15:11
Сообщения: 305
Kuranov.Dmitry написал(а):
Code:
Подскажите пожалуйста пока что, как быть с этой программой, чтобы не удалялись данные, а просто дополнялись.

убрать строку delete from ZPPMRP5_12.

самое смешное, что я попробовал и у меня ничего хорошего не вышло.
я даже не понял почему ?
я убрал и условие и удаление. По сути это и все решение должно было быть.
Может КЭШ . . . я не проверил, блин. Попробую еще раз.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Скопировать данные в таблицу
СообщениеДобавлено: Чт, июл 05 2018, 17:57 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 15:11
Сообщения: 305
нет, реально не копирует.
Цитата:
REPORT ZPP_COPY_MRP5.
data: gt_ZPPMRP5_12 type table of ZPPMRP5_12,
gl_ZPPMRP5_12 type ZPPMRP5_12,
lin type i.
select * into corresponding fields of table gt_ZPPMRP5_12 from zppmrp5_tmp1.
describe table gt_ZPPMRP5_12 lines lin.
*if lin > 40000.
* delete from ZPPMRP5_12.
loop at gt_ZPPMRP5_12 into gl_ZPPMRP5_12.
gl_ZPPMRP5_12-data_create = sy-datum.
insert into ZPPMRP5_12 values gl_ZPPMRP5_12.
endloop.
*endif.

что тут может быть не так ?
проверил с ифом и без него.
ни одной новой записи нет.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Скопировать данные в таблицу
СообщениеДобавлено: Чт, июл 05 2018, 18:01 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, сен 06 2017, 00:56
Сообщения: 337
в цикл то заходит?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Скопировать данные в таблицу
СообщениеДобавлено: Пт, июл 06 2018, 09:23 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 15:11
Сообщения: 305
в цикл вошли, побегали loop по строчкам и каждую попытались вставить в zppmrp5_12, но не вставилось ничего . . .
таблица zppmrp5_12 не пустая, там 2,5 млн записей, в пустую оно пишет нормально.
Может через modify?
скопировать старую таблицу во внтреннюю, добавить новые записи и сделать delete и insert или просто modify?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Скопировать данные в таблицу
СообщениеДобавлено: Пт, июл 06 2018, 10:26 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, сен 06 2017, 00:56
Сообщения: 337
sonics написал(а):
в цикл вошли, побегали loop по строчкам и каждую попытались вставить в zppmrp5_12, но не вставилось ничего . . .
таблица zppmrp5_12 не пустая, там 2,5 млн записей, в пустую оно пишет нормально.
Может через modify?
скопировать старую таблицу во внтреннюю, добавить новые записи и сделать delete и insert или просто modify?

что оператор insert возвращает?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Скопировать данные в таблицу
СообщениеДобавлено: Пт, июл 06 2018, 10:27 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, сен 06 2017, 00:56
Сообщения: 337
могу предположить записи у вас уже есть в таблице вот и не вставляет дубликат


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Скопировать данные в таблицу
СообщениеДобавлено: Пт, июл 06 2018, 10:32 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 15:11
Сообщения: 305
Kuranov.Dmitry написал(а):
могу предположить записи у вас уже есть в таблице вот и не вставляет дубликат

да, верно, я об этом и сказал выше)
но мы же вставляем теперь с новой датой?
альтернативы Insert-у есть?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Скопировать данные в таблицу
СообщениеДобавлено: Пт, июл 06 2018, 10:34 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, сен 06 2017, 00:56
Сообщения: 337
sonics написал(а):
Kuranov.Dmitry написал(а):
могу предположить записи у вас уже есть в таблице вот и не вставляет дубликат

да, верно, я об этом и сказал выше)
но мы же вставляем теперь с новой датой?
альтернативы Insert-у есть?

новая дата у вас в ключе?
инсерт не даст вставить запись если есть с таким же ключом


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Скопировать данные в таблицу
СообщениеДобавлено: Пт, июл 06 2018, 10:38 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 15:11
Сообщения: 305
Kuranov.Dmitry написал(а):
новая дата у вас в ключе?
инсерт не даст вставить запись если есть с таким же ключом

Code:
loop at gt_ZPPMRP5_12 into gl_ZPPMRP5_12.
    gl_ZPPMRP5_12-data_create = sy-datum.
    insert into ZPPMRP5_12 values gl_ZPPMRP5_12.
  endloop.


мы же считали запись в gl_zppmrp5_12
подставили сегодняшнюю дату, значит уже запись стала уникальной и вставляем ее дальше ?
а ключем в таблице отмечены мандант и id :(


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Скопировать данные в таблицу
СообщениеДобавлено: Пт, июл 06 2018, 10:51 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, сен 06 2017, 00:56
Сообщения: 337
sonics написал(а):
подставили сегодняшнюю дату, значит уже запись стала уникальной и вставляем ее дальше ?
а ключем в таблице отмечены мандант и id :(

если у вас ключ мандант и ид
вы не сможете вставить записи для 1 ид с разными датами


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Скопировать данные в таблицу
СообщениеДобавлено: Пт, июл 06 2018, 11:01 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 15:11
Сообщения: 305
Kuranov.Dmitry написал(а):
если у вас ключ мандант и ид
вы не сможете вставить записи для 1 ид с разными датами

при выставлении ключом data_create - ошибка это поле не может входить в состав ключа. Ключ уже определен.

др. словами вариант остается иметь 12 таблиц ?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Скопировать данные в таблицу
СообщениеДобавлено: Пт, июл 06 2018, 11:31 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Ср, сен 06 2017, 00:56
Сообщения: 337
Между data_create и id есть поля?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Скопировать данные в таблицу
СообщениеДобавлено: Пт, июл 06 2018, 11:44 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 15:11
Сообщения: 305
Kuranov.Dmitry написал(а):
Между data_create и id есть поля?

да, 59 полей ... их нужно поочереди ставить?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.

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


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

Сейчас этот форум просматривают: sonics


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

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