Существует ли ограничение на размер текста SQL в шаге/действии SQL PeopleSoft App Engine?

StackOverflow https://stackoverflow.com/questions/1739622

Вопрос

Я получаю следующую ошибку:AeSymResolveStatement [775] ...Ошибка Meta-SQL в позиции 34338 или около нее в операторе (108512).Длина самого оператора SQL превышает 40 000 символов, отсюда и вопрос.

БД - оракул.Запускаю на Инструментах 8.49.24.

Это было полезно?

Решение

Такого предела нет.

Вы можете убедиться в этом самостоятельно, создав SQL-запрос типа:

select 'x' from PS_INSTALLATION where 
      1 = 1 and 
      1 = 1 and
      1 = 1 and
      1 = 1 and
      /* ... copy paste '1 = 1 and' 90000 times or so times more */
      1 = 1

Хотя pside работает довольно медленно, он отлично сохраняет и проверяет.

Другие советы

Я знаю, что существует ограничение на размер SQL, используемого в Application Engine (шаг SQL).Однажды я получил подобную ошибку при попытке использовать исключительно длинный SQL в Application Engine.

Я не удивлюсь, если такое же ограничение применимо и к объектам SQL.

Чтобы решить проблему, мне удалось разделить SQL на 2 (это был оператор обновления).Надеюсь, это возможно и в вашем случае.

В PeopleCode существуют ограничения, в основном из-за ограничений на длину строки, однако я никогда не находил ограничений на хранимые операторы SQL.

Лично я бы хотел каким-то образом разбить утверждение на части.

Вы могли бы:

  • Использование встроенного механизма циклов App Engines.
  • Используйте смесь SQL и PeopleCode.
  • Используйте временную таблицу и выполняйте промежуточные SQL-запросы, сохраняя во временной таблице.

Не говоря уже о том, чтобы вызвать у вашей базы данных приступ сердечного приступа, не упоминайте администратора базы данных, когда он увидит оператор в мониторе SQL.Вы избавите себя от множества страданий, если вам когда-нибудь придется снова взглянуть на это утверждение.

Я думаю, что SQL-запросы в App Engine хранятся в виде длинных значений, поэтому в Oracle это будет 4 ГБ, а в DB2 — такой же огромный размер.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top