Как вставить огромные данные в «длинный» тип данных в базе данных Oracle с помощью терминала sqlplus? - PullRequest
0 голосов
/ 18 января 2019

Мое требование - хранить очень большие данные в столбце типа данных «LONG» в БД Oracle. Я знаю, что для CLOB и NCLOB это может быть достигнуто с помощью BFile (читая его из файла). Но как мне сделать это для long ?

Например: вставить в тест (LONG_COL) значения («значение более 4000 символов»);

Здесь LONG_COL имеет тип "LONG".

Если я выполняю запрос на SQLPlus, я получаю ошибку ниже.

SQL Error: ORA-01704: string literal too long
01704. 00000 -  "string literal too long"
*Cause:    The string literal is longer than 4000 characters.
*Action:   Use a string literal of at most 4000 characters.
           Longer values may only be entered using bind variables.

Пожалуйста, руководство.

1 Ответ

0 голосов
/ 18 января 2019

Как следует из сообщения об ошибке, вы можете попробовать использовать метод Bind Variables. Если вы не знакомы с ними, они могут быть очень полезны для множества вещей, включая обход ошибки ORA-01704 при использовании SQL * Plus или даже защиту вашей базы данных от потенциальных атак SQL-инъекций.

Вот несколько примеров, которые вы можете использовать:

https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:2320123769177

https://asktom.oracle.com/pls/asktom/asktom.search?tag=pls-00172-string-literal-too-long

https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:2320123769177

https://oracle -base.com / статьи / разное / литералы-заместительная-переменные и-Bind-переменные

...