Informix 7.3 инструкция вставки isql - ошибка вставки текста / большого двоичного объекта / поля clob

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

Вопрос

Есть ли способ обойти это??

Я пытаюсь вставить некоторые данные в таблицу, структура которой:

Column name          Type                                    Nulls

crs_no               char(12)                                no
cat                  char(4)                                 no
pr_cat               char(1)                                 yes
pr_sch               char(1)                                 yes
abstr                text                                    yes

Тип последнего поля читается как "текст", но при попытке вставить в эту таблицу я получаю эту ошибку:

insert into crsabstr_rec values ("COMS110","UG09","Y","Y","CHEESE");

  617: A blob data type must be supplied within this context.
Error in line 1
Near character position 66

Таким образом, это поле, по-видимому, является своего рода большим двоичным объектом, но не будет принимать вставки (или обновления).Обычно эти записи вставляются в графическую форму, затем вставки обрабатываются кодом C.

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

Решение 2

в iSQL....

Load from desc.txt insert into crsabstr_rec;

загружено 3 ряда.

desc.txt является текстовым файлом с разделителями | (pipe), и количество полей в текстовом файле должно соответствовать количеству полей в таблице

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

В Informix Dynamic Server (IDS) нет литералов больших двоичных объектов (байтовых или текстовых) - как и для типов CLOB или BLOB-объектов в IDS 9.00 и более поздних версиях.Это постоянный источник разочарования для меня;У меня был запрос функции в системе в течение многих лет, но он никогда не достигает внутреннего болевого порога, что означает, что он исправляется - другим вещам присваивается более высокий приоритет.

Тем не менее, он постоянно кусает людей.

В IDS 7.3 (который вы должны стремиться обновить - он выходит из строя в сентябре 2009 года примерно через десять лет) вы в значительной степени застряли на использовании C для ввода данных в ТЕКСТОВОЕ поле базы данных.Вы должны использовать утвержденный тип C 'loc_t' для хранения информации о БАЙТОВЫХ или текстовых данных и передачи ее на сервер.

Если вам нужны примеры на ESQL / C, посмотрите на Международная Группа пользователей Informix веб-сайт, и особенно Репозиторий программного обеспечения.Среди прочего, вы найдете оригинальную программу SQLCMD (одноименная программа Microsoft - a Johnny-Come-Lately) в исходном виде.Он также включает в себя набор программ, которые я называю "виньетками";они манипулируют большими двоичными объектами различными способами и предназначены для того, чтобы показать, как использовать структуры 'loc_t' в различных сценариях.

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