Я настраиваю SQL вставки, сгенерированный hibernate, и столкнулся с проблемой. Когда Hibernate генерирует запрос сам по себе, он вставляет данные в первые два столбца таблицы, но это вызывает ошибку базы данных, поскольку все четыре столбца таблицы не обнуляются. Чтобы вставка выполнялась правильно, она должна вставить те же данные в два столбца новой записи. Это означает, что мне нужен Hibernate для привязки одних и тех же данных к двум различным параметрам в запросе (подготовленном операторе), который я пишу.
Существует ли какой-либо синтаксис SQL, позволяющий мне ссылаться на анонимные параметры, связанные с подготовленным оператором, в порядке, отличном от того, с которым они связаны?
Детали
REF_USER_PAGE_XREF
----------------------------------------
PK FK1 | NETWORK_ID | VARCHAR2(100)
PK FK1 | PAGE_PATH | VARCHAR2(1000)
| USER_LAST_UPDT | VARCHAR2(100)
| TMSP_LAST_UPDT | DATE
insert into
REF_USER_PAGE_XREF(
NETWORK_ID,
PAGE_PATH,
TMSP_LAST_UPDT,
USER_LAST_UPDT)
values (
?, /* want to insert the same data here */
?,
?, /* and here */
(select
to_char(sysdate, 'DD-MON-YY')
from
dual)
Я хочу вставить те же данные в первый и третий анонимные параметры.
Окончательный ответ (на основе ответа @mdma)
insert into
REF_USER_PAGE_XREF(
NETWORK_ID,
PAGE_PATH,
USER_LAST_UPDT,
TMSP_LAST_UPDT)
select
Param1,
Param2,
Param1,
(select
to_char(sysdate, 'DD-MON-YY')
from
dual)
from
(select
? as Param1,
? as Param2
from
dual) params