Текущее время: Чт, июл 31 2025, 17:36

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: DELETE
СообщениеДобавлено: Ср, июн 10 2009, 12:03 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, апр 25 2006, 15:14
Сообщения: 280
Подскажите плиз такую вещь. Нужно удалить данные из внутренний таблицы, котороя SOURCE_PACKAGE в transformation rules т.е. объявлена по умолчанию как TYPE STANDARD TABLE OF _ty_s_SC_1 WITH NON-UNIQUE DEFAULT KEY.
Теперь надо сделать нечто вроде
Code:
DELETE SOURCE_PACKAGE
     WHERE field1 <> '101' OR
           field1 <> '103' OR
           field1 <> '105' OR
           field1 <> '109' OR
           field1 <> '10A' OR
           field1 <> '10BB'.


Т.е. удалить записи где одно поле как условие, оно как я понял будет не ключевым в данном случае. Но после этого удаляются вообще все записи из SOURCE_PACKAGE, независимо от значения field1. Т.е. в таблице 100% есть записи с перечисленными в delete значениями как <>, которые тем не менее всё равно удаляются. Почему?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DELETE
СообщениеДобавлено: Ср, июн 10 2009, 12:10 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, авг 28 2006, 11:24
Сообщения: 292
Пол: Мужской
tdebug написал(а):
Почему?


Потому, что любая запись удовлетворяет указанному условию.
Используйте AND вместо OR


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DELETE
СообщениеДобавлено: Ср, июн 10 2009, 12:11 
Модератор
Модератор
Аватара пользователя

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


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: DELETE
СообщениеДобавлено: Ср, июн 10 2009, 12:13 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
tdebug написал(а):
Подскажите плиз такую вещь. Нужно удалить данные из внутренний таблицы, котороя SOURCE_PACKAGE в transformation rules т.е. объявлена по умолчанию как TYPE STANDARD TABLE OF _ty_s_SC_1 WITH NON-UNIQUE DEFAULT KEY.
Теперь надо сделать нечто вроде
Code:
DELETE SOURCE_PACKAGE
     WHERE field1 <> '101' OR
           field1 <> '103' OR
           field1 <> '105' OR
           field1 <> '109' OR
           field1 <> '10A' OR
           field1 <> '10BB'.


Т.е. удалить записи где одно поле как условие, оно как я понял будет не ключевым в данном случае. Но после этого удаляются вообще все записи из SOURCE_PACKAGE, независимо от значения field1. Т.е. в таблице 100% есть записи с перечисленными в delete значениями как <>, которые тем не менее всё равно удаляются. Почему?

Потому что вы написали такое условие. Как написали, так и удаляет.
Замените OR на AND

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DELETE
СообщениеДобавлено: Ср, июн 10 2009, 13:06 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, апр 25 2006, 15:14
Сообщения: 280
Спасибо :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DELETE
СообщениеДобавлено: Ср, июн 10 2009, 15:21 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, апр 25 2006, 15:14
Сообщения: 280
Подскажите ещё плиз, как наиболее оптимально сделать DELETE, когда нужно удалить из внутренней таблицы tab1 все записи, кроме тех которые содержатся в tab2. Сами таблицы совпадают почти, но не совсем, вторая просто расширенная копия первой, но ключи у них одинаковы. Точнее первая это всё тот же SOURCE_PACKAGE, т.е. объявлена с DEFAULT KEY, в результате какой ключ у неё, непонятно. Вторая объявлена с набором ключевых полей..


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DELETE
СообщениеДобавлено: Ср, июн 10 2009, 20:19 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
Посмотрите примеры - в ABAP Editor (SE38/SE80) меню Environment -> Examples -> Performance examples, там описывается алгоритм "пересечения" таблиц.

_________________
"One of the symptoms of an approaching nervous breakdown is the belief that one's work is terribly important." Bertrand Russell


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

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


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

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


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

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