Это одна из темных областей поведения Informix. Предполагается, что поведение DESCRIBE описывает параметры output (это сокращение для DESCRIBE OUTPUT stmt INTO ...); чтобы описать параметры input , вы должны использовать DESCRIBE INPUT stmt INTO ... вместо этого.
Однако по разным причинам, восходящим к незапамятным временам (ну, в любом случае, в 1985 году), оператор INSERT получил специальное исключение для случая, и обычный DESCRIBE описал свои параметры input - в отличие от UPDATE или DELETE или в наши дни, Мердж).
Итак, ваш код, вероятно, был написан до того, как стали возможными ОПИСАНИЕ ВХОДА и ОПИСАНИЕ ВЫХОДА (это было около 2000 ± 3 года). В принципе, использование направленных операторов DESCRIBE должно решить проблему. Для получения такого поведения может быть задан параметр ONCONFIG.
Я помню, как был благодарен за то, что функция появилась, но я также помню, как думал: «Черт, я не смогу использовать это некоторое время - пока все старые версии без него не будут удалены». Я думаю, что это в основном произошло сейчас - в частности, IDS 7.31 сейчас устарела, и поэтому действительно версии IDS 9.x, поэтому все доступные версии IDS поддерживают эту функцию. OnLine 5.20 - миноритарный интерес - все еще не поддерживает и никогда не поддержит его. Итак, мне нужно рассмотреть, как обновить мои программы, такие как SQLCMD , чтобы использовать это. Код включает в себя то, что я называю «виньетками»; Это полные небольшие программы, которые иллюстрируют, как работать с BLTE и TEXT BLOB-объектами. Вы можете найти UPDBLOB или APPBLOB, например, некоторого использования.