Текущее время: Пт, фев 13 2026, 05:03

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Проблема выполнения Select-ов
СообщениеДобавлено: Пт, фев 06 2026, 13:08 
Председатель
Председатель

Зарегистрирован:
Чт, май 10 2007, 09:15
Сообщения: 1566
Добрый день.
Такая проблема в некоторых программах начались проблема выполнения Select-ов, например, такой:
select single name1 from lfa1 into dynp_prad-orgn where lifnr = dynp_znpr-org.

Помогает копирование программы в новую программу, и все работает.

Но хотелось бы понять, что происходит?
Может быть кто-то сталкивался с подобным?

Такое ощущение, что проблема в генерации каких-то процедур, которые отвечают за выборку данных из БД.

База данных на MS SQL.
Версия SAP у нас старая 6.40


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проблема выполнения Select-ов
СообщениеДобавлено: Пн, фев 09 2026, 12:25 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1259
Добрый день!
В чем именно проблема выполнения? Медленно работает? Выполните трассировку st05 и проведите анализ совместно с базисом. Так же стоит провести полный анализ всей программы в тр-циях se30\sat\st12, а не только проблемного селекта, т.к. возможно просто вся программа неудачно спроектирована.

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема выполнения Select-ов
СообщениеДобавлено: Пн, фев 09 2026, 13:56 
Председатель
Председатель

Зарегистрирован:
Чт, май 10 2007, 09:15
Сообщения: 1566
Проблема в том, что select - не возвращает данные, хотя они есть. Выдает sy-subrc = 4. Хотя данные есть. И если программу скопировать в новую, тогда все работает.
А вот в этой программе не работает.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проблема выполнения Select-ов
СообщениеДобавлено: Пн, фев 09 2026, 14:38 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1259
Все равно мало данных. Стоит все-таки снять трассировку проблемы в st05: там можно будет увидеть какие именно значения переменных подставноки ушли на уровень БД, ну и сделать какие-то выводы на основании этого.

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема выполнения Select-ов
СообщениеДобавлено: Пн, фев 09 2026, 22:07 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, апр 12 2006, 12:43
Сообщения: 868
Откуда: СССР
Пол: Мужской
hub2002 написал(а):
Проблема в том, что select - не возвращает данные, хотя они есть. Выдает sy-subrc = 4. Хотя данные есть. И если программу скопировать в новую, тогда все работает.
А вот в этой программе не работает.

Чисто из спортивного интереса задачка.
Т.е. SELECT ничего не возвращает из программы с определённым именем.
Предлагаю цепочку действий:
  • проверить тип переменной, в которой сидит значение WHERE, совпадает ли с типом поля в таблице (для WHERE)
  • сравнить кодировку: UTF, WINDOWS-1251 и т.д. в программе, которая не хочет делать SELECT с кодировкой копии, которая работает.
  • посмотреть в значении поля WHERE в таблице есть ли лидирующие пробелы или пробелы в конце.
  • значение в поле WHERE содержит ли кирилицу и соотнести с кодировкой в которой создана программа.
  • значение в поле WHERE заполнено литералом или из заполняется из кода ранее.
Предположения проблемы таковы: кодировка создания программы и значение в кирилице в значении WHERE.
Я бы для чистоты эксперимента сделал и так: закомментарил весь код кроме SELECT, а WHERE заполнил литералом. Сработает "капризная" программа или нет?

_________________
Никого не трогаю, примусы починяю.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема выполнения Select-ов
СообщениеДобавлено: Чт, фев 12 2026, 20:34 
Председатель
Председатель

Зарегистрирован:
Чт, май 10 2007, 09:15
Сообщения: 1566
Добрый день.
Проблема в следующем:
Есть некая таблица: ZMARA, а ней поля:
MANDT MANDT CLNT 3 0 Мандант
KEY2 ZTSD_KEY1 INT4 10 0 1-й ключ таблицы
MATNR MATNR CHAR 18 0 Номер материала
MATNR_ALT MATNR CHAR 18 0 Номер материала

Удалили поле KEY2. Сделали ключевыми два других MATNR и MATNR_ALT. Адаптировали таблицу в se14.

таблица активировалась. А вот программа, с которой эта таблица работала - тоже исправили, она активировалась, но при выполнении получаем дамп.
Database error text........: "[207] Invalid column name 'KEY2'."
Internal call code.........: "[RSQL/178/ZMARA_ALT ]"

То есть, система где-то помнит, что это поле есть, и требует его.

Если таблицу вернуть обратно - тогда все начинает работать.

Такое ощущение, что есть некая система меду базой и ABAP.
Типа проблема со словарем данных ?

Кто-то сталкивался с чем-то похожим?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проблема выполнения Select-ов
СообщениеДобавлено: Чт, фев 12 2026, 20:55 
Председатель
Председатель

Зарегистрирован:
Чт, май 10 2007, 09:15
Сообщения: 1566
Добрый вечер.

RSQL (или Remote SQL) — это часть архитектуры SAP, которая отвечает за взаимодействие между ABAP-программами и базами данных. Она использует метаданные для выполнения SQL-запросов. Чтобы обновить информацию о структуре данных в RSQL:
Перезагрузка кэша: В некоторых случаях может потребоваться перезагрузка кэша метаданных. Это можно сделать через транзакции, такие как SE11 (Dictionary) и SE14 (Database Utility), где можно выполнить действия по обновлению или пересозданию объектов.

в SE11 и SE14 - таблицы как раз изменяем.

А вот можно как-то эту систему проверить? или обновить кэш RSQL?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проблема выполнения Select-ов
СообщениеДобавлено: Чт, фев 12 2026, 20:59 
Председатель
Председатель

Зарегистрирован:
Чт, май 10 2007, 09:15
Сообщения: 1566
Коллеги, добрый вечер. Я прошу прощенья подскажите может это не сюда, а в базис?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проблема выполнения Select-ов
СообщениеДобавлено: Чт, фев 12 2026, 21:40 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, апр 12 2006, 12:43
Сообщения: 868
Откуда: СССР
Пол: Мужской
Забавная история.
У таблицы ZMARA включена буферизация?
Если включена, то попробовать отключить, и переактивировать. Вдруг в этом дело?
В такой неясной ситуации я бы попробовал сделать следдующее
  • Восстановил ключевое поле KEY2 в исходной таблице ZMARA;
  • Создал в словаре копию таблицы, например с именем ZMARA1 без поля KEY2;
  • Если для ZMARA с полем KEY2 SELECT работает, то перенёс бы данные из ZMARA в ZMARA1;

Дальше по обстановке. По идее SELECT для ZMARA1 должен работать. Буфера в словаре к ней ещё нет.
Можно старый код переключить на новую таблицу. Если кода, который обращается к ZMARA очень много, то можно перенос в продуктив сделать в несколько этапов в стиле "очумелые ручки":

1. ZMARA копипуем в ZMARA1 (которая без KEY2);
2. Удаляем ZMARA;
3. создаём сновая ZMARA но уже без KEY2;
4. ZMARA1 копипуем в обновлённую ZMARA.

Тут уж на вкус и цвет все фломастеры разные.
Либо код переключать на ZMARA1 либо копировать, удалять таблицу.

_________________
Никого не трогаю, примусы починяю.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема выполнения Select-ов
СообщениеДобавлено: Чт, фев 12 2026, 22:00 
Председатель
Председатель

Зарегистрирован:
Чт, май 10 2007, 09:15
Сообщения: 1566
буферизация не включена.
Копирование в новую прогу или в новую таблицу помогает.
Но хотелось бы понять что с этой. Как эту полечить?
с одной то таблицей понятно - что можно скопировать, а если их будет много...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проблема выполнения Select-ов
СообщениеДобавлено: Чт, фев 12 2026, 22:08 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, апр 12 2006, 12:43
Сообщения: 868
Откуда: СССР
Пол: Мужской
hub2002 написал(а):
буферизация не включена.
Копирование в новую прогу или в новую таблицу помогает.
Но хотелось бы понять что с этой. Как эту полечить?
с одной то таблицей понятно - что можно скопировать, а если их будет много...


На этом мои АБАП-ские познания иссякли. Возможно действительно стоит обратиться в базис или к админу базы данных.
Если у Вас старая система, то под ней наверное ORACLE. Поспрашивать спецов по БД.

Меня несколько удивляет, как Вам удалось удалить ключевое поле и активровать/адаптировать таблицу.
Посмотрите вниматеольнее, мож она у Вас частично активаированна?
Конечно, если поле KEY2 содержало одинаковое значение во всей таблице (например KEY1 = 1), то фокус с удалением ключевого поля может быть успешным. Если поле было не одинаковым, то это только счастлиый случай.

_________________
Никого не трогаю, примусы починяю.


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

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


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

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


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

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