在预准备语句中重用匿名参数

我正在自定义由hibernate生成的插入SQL并遇到了问题。 当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 

你可以写

 INSERT INTO REF_USER_ROLE_XRE SELECT Param1, Param2, Param1, (select to_char(sysdate, 'DD-MON-YY') from dual) FROM (SELECT ? AS Param1, ? AS Param2) params