Oracle SQL: вставьте длинный текст, но получите SP2-0778: слишком длинное имя файла и аргументы скрипта - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть SQL-скрипт, который вызывается и содержит, помимо прочего, следующую строку:

@@./sql/common/scripts/LX2/InsertOrUpdateDefaultValuesLongVersions.sql 'typeinterface' 'en' 'ABCD.translation.SET0136.descriptions' 'Some Long text .............. ....... ....... .......... ........... .......... ....... .......... ............. ......... ......... ............. ......... ............. .....!' 'Some Longer Text .............. ....... ....... .......... .............. ....... ....... .......... .............. ....... ....... .......... .............. ....... ....... .......... .............. ....... ....... .......... .............. ....... ....... .......... .............. ....... ....... .......... .............. ....... ....... .......... .............. ....... ....... .......... .............. ....... ....... .......... .............. ....... ....... .......... .............. ....... ....... .......... .............. ....... ....... .......... .............. ....... ....... .......!';
-- shorter version (arg4 and arg5 are long texts)
@@./sql/common/scripts/LX2/InsertOrUpdateDefaultValuesLongVersions.sql '<arg1>' '<arg2>' '<arg3>' '<arg4>' '<arg5>';

При выполнении я получаю следующую ошибку:

SP2-0778: Скриптслишком длинное имя файла и аргументы

Похоже, что имя файла и путь вместе с аргументами слишком длинные.
Но я не могу выяснить, каков будет предел?

InsertOrUpdateDefaultValuesLongVersions.sql просто вставляет аргументы в таблицу (на основе первых аргументов).
Кажется, что значение должно быть длинным, чтобы быть вставленным сразу, но как бы я вставил эти длинные тексты в базу данных?

1 Ответ

0 голосов
/ 19 декабря 2018

Вы действительно достигли предела SQLPlus.

С Документ Oracle по ошибке SP2-0778 :

Причина :Общая длина имени файла сценария и аргументов сценария слишком велика для SQL * Plus.

Действие : уменьшите длину имени и пути сценария.Уменьшите число и / или размер аргументов скрипта.

Этот другой документ Oracle утверждает, что:

  • Максимальная длина имени файла зависит от платформы
  • Максимальная длина командной строки составляет 2500 символов

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

Другой возможный вариант - не использовать SQLPlus;вы можете рассмотреть возможность использования SQLLoader, например (вам нужно поместить ваши аргументы в файл).

В качестве альтернативы, как прокомментировал @APC, есть новый клиент Oracle под названием sqlcl , который, по-видимому,не имеет этого ограничения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...