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

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


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

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


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

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