2010-05-27 3 views
1

최대 절전 모드로 생성 된 삽입 SQL을 사용자 지정하고 문제가 발생했습니다. Hibernate는 그 자체로 질의를 생성 할 때 테이블의 처음 두 열에 데이터를 삽입하지만, 테이블의 네 열 모두 null이 허용되지 않기 때문에 데이터베이스 오류가 발생한다. 삽입이 제대로 수행 되려면 새 레코드의 두 열에 동일한 데이터를 삽입해야합니다. 이것은 필자가 작성한 쿼리 (prepared statement)에서 두 개의 다른 매개 변수에 동일한 데이터를 바인딩하기 위해 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 

답변

1

당신은 쓸 수 있습니다 내가 찾던 정확히 무엇을

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 
+0

. 고마워. –

관련 문제