2009-11-16 2 views
0

Я получаю следующую ошибку: AeSymResolveStatement [775] ... Ошибка Meta-SQL в позиции 34338 или около нее в инструкции (108 512). Сам оператор SQL составляет более 40 000 символов, поэтому вопрос.Есть ли ограничение по размеру для текста SQL в приложении PeopleSoft Engine Engine Шаг/Действие?

БД является оракулом. Работает на инструментах 8.49.24.

ответ

1

Нет такого предела.

Вы можете подтвердить это самостоятельно, создав 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 довольно медленно, он сохраняет и проверяет просто отлично.

1

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

2

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

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

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

0

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

Вы могли бы:

  • Использование встроенного захвата петли механизма App Двигатели
  • использовать смесь SQL и PeopleCode
  • использовать временную таблицу и выполнять промежуточную SQLs, хранение в таблице Темпа

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

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

Смежные вопросы