Попытка вставить комбинацию нестатических переменных и полученных значений в таблицу - PullRequest
0 голосов
/ 06 марта 2019

Итак, я пытаюсь вставить коллекцию нестатических переменных и значений, извлеченных из другой таблицы, в таблицу с помощью подзапроса.Мой код выглядит так:

INSERT INTO SCHEMA.TAB_REQ(TABLE_I, RUN_I, CODE, ORG_ALS, TAB_CRT_S, TAB_LST_UPD_S)
SELECT :tableKey, :runKey, :code, :org, TAB.CRT_S, TAB.LST_UPD_S
FROM   SCHEMA.TABLE TAB
WHERE  TAB.KEY = :tableKey

Получаемые значения, TAB.CRT_S и TAB.LST_UPD_S, оба будут временными метками.Так что «3.12.2009 12:00:01» в качестве примера.Ни одно из этих значений не должно быть нулевым.Они автоматически генерируются всякий раз, когда вставляется новая строка.

Предоставленные переменные будут представлять собой две строки целых чисел (: tableKey и: runKey), а затем две строки (: code и: org).Они предоставляются приложением Java, и если они отсутствуют, значит, что-то пошло не так.Сейчас я вручную ввожу значения для каждой переменной при выполнении запроса.

Оператор select должен возвращать только одну строку, поскольку: tableKey - это автоматически генерируемый уникальный идентификатор.

Myтекущий код выдает следующую ошибку:

ERROR [42610] [IBM][DB2] SQL0418N  The statement was not processed because the statement contains an invalid use of one of the following: an untyped parameter marker, the DEFAULT keyword, or a null value.

Возможно ли это, или мне нужно два отдельных запроса?

1 Ответ

0 голосов
/ 07 марта 2019

Я нашел гораздо более простой способ сделать то, что мне было нужно. Вместо того, чтобы пытаться собрать все данные, которые мне нужны, в одном запросе, я написал два простых оператора select и использовал их для вставки дополнительных параметров в мою переменную java до того, как она заполнила переменные в этом операторе SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...