Текущее время: Пт, авг 01 2025, 14:05

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


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

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


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

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