2013-06-25 2 views
1

데이터베이스에 연결하는 Java 프로그램이 있는데 준비된 문과 매개 변수가있는 쿼리를 사용하여 데이터베이스에서 무언가를 업데이트하려고합니다. 나는 물음표 인수에두고있어 처음 몇 값이 1 계정, 2 ACCT 있습니다SQL 준비 문에서 매개 변수화 된 쿼리

updateValSetId = con.prepareStatement("UPDATE COLUMNNAME " + 
      "SET COLUMNDISPLAYNAME = ? + ' Value Set Identifier' " + 
      "WHERE COLUMNDISPLAYNAME = ? + 'VALSETID' and TABLENAME = ?"); 

, 세 번째는 중요하지 않습니다 : 여기 부분은 내 코드입니다. MY QUESTION IS ---> 물음표를 문자열 값과 결합시키는 방법이 있습니까?

나는 이런 식으로 뭔가에 내 코드를 변경 어떻게 그 오류가 의미 고개를 한 후 '

updateValSetId = con.prepareStatement("UPDATE COLUMNNAME " + 
      "SET COLUMNDISPLAYNAME = '? Value Set Identifier' " + 
      "WHERE COLUMNDISPLAYNAME = '?VALSETID' and TABLENAME = ?"); 

didn를 : 추가 기호 I 오류 "잘못된 번호를 ORA가 01722 ="를 얻을 작동하지 않습니다 어느 쪽이든 일하십시오. 그래서 다시 물음표와 문자열을 결합하는 방법이 있습니까?

감사합니다.

편집 ----------> 다음에 문자열 텍스트를 삭제하기로 결정했습니다.

updateValSetId.setString(1, f.getValue() + " Value Set Identifier"); 
       updateValSetId.setString(2, f.getKey() + "VALSETID"); 
       updateValSetId.setString(3, e.getKey()); 
       updateValSetId.executeUpdate(); 

이것은 값을 할당 할 때 준비된 문장 다음에 오는 것입니다. 매개 변수. 'f'와 'e'는 데이터가 저장된 hashmaps이며 getValue 및 getKey에서 값을 가져올 때 위의 코드가 작동하지 않는 이유가 궁금합니다. 어떤 오류도 발생하지 않고 컴파일되고 실행되지만 데이터베이스에서 원하는 값을 업데이트하지 않습니다. 예를 들어, ACCT가 첫 번째 키이고 Account가 첫 번째 값이므로 전달 될 때 getters 뒤에있는 문자열에 추가되어야하므로 데이터베이스가 ACCVALSETID를 계정 값 세트 식별자로 업데이트해야합니다 ? 내가 뭘 놓치고 있니?

감사합니다.

+0

코드가 작동하고 DB에 변경 사항이 표시되지 않으면 SQLException이 발생하거나 그렇지 않을 수 있습니다. 그것을 확인하십시오. – JosephChilberry

답변

0

내가 만든 편집은 실제로 정확한지, 내 코드의 다른 부분에서 오류를했다, 다음 코드는 작동 :

updateValSetId.setString(1, f.getValue() + " Value Set Identifier"); 
      updateValSetId.setString(2, f.getKey() + "VALSETID"); 
      updateValSetId.setString(3, e.getKey()); 
      updateValSetId.executeUpdate(); 

그래서 난 당신이에 문자열 값을 추가 할 수 없습니다 것 같아요? 매개 변수를 추가하는 경우와 동일하게 작동합니다.

관련 문제