websphere, SQL1103: определения позиции 24 столбца для таблицы STVRECONWK в QTEMP не найдены - PullRequest
1 голос
/ 22 марта 2011

У меня есть таблица, которая создается и затем удаляется в конце программы SQLRPGLE

     //Delete the temporary table
     shell('DLTF FILE(QTEMP/STVRECONWK)':IGNORE_ERROR);

     // create temporary table
     exec sql
       create table qtemp/stvreconwk (
         sysid integer,
         barcode varchar(100),
         description varchar(100),
         matchflag char(1)
       )
     ;

Всякий раз, когда я пытаюсь скомпилировать из WebSphere, я получаю

SQL1103: позиция 24 столбца определения для таблицы STVRECONWK в QTEMP не найден.

Проблема в том, что таблица не существует, если я создаю таблицу из сеанса терминала, а затем компилирую (также из терминала), она работает, потому что компилятор может проверить таблицу, поскольку они выполняются в одном задании .

Как я могу сделать это в WebSphere?

Ответы [ 2 ]

1 голос
/ 04 апреля 2014

Файл, созданный в QTEMP, но также доступ к нему как к «внешне описанному» файлу компилятором, должен быть создан как дубликат файла «модели». Любая программа, которая должна ссылаться на описание внешнего файла, должна быть скомпилирована для ссылки на файл «модель», который должен существовать всегда. Модель предоставляет все необходимые атрибуты для компилятора. Переопределение обеспечивает доступ к дубликату для программы во время выполнения. «Модель» - это просто описание файла, которое находится во время компиляции в библиотеке в списке библиотек.

В последних версиях компилятора переопределение не требуется. Для RPG F-спецификация может включать ключевое слово EXTDESC () или EXTFILE (), чтобы указать либо файл 'model', либо файл времени выполнения.

В большинстве случаев «модель» дублируется в файл QTEMP с другим именем, чтобы избежать конфликтов.

0 голосов
/ 24 марта 2011

По умолчанию WebSphere запускает каждую команду в новом задании. Вы можете изменить это в окне-> предпочтения-> iseries-> выполнение команды и снять галочку 'compile in batch'

...