Informix 7.3 инструкция вставки isql - ошибка вставки текста / большого двоичного объекта / поля clob
Вопрос
Есть ли способ обойти это??
Я пытаюсь вставить некоторые данные в таблицу, структура которой:
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' в различных сценариях.