Oracle 12cr1 데이터베이스를 사용하고 있습니다. ResultSet
열 이름이 소문자 인 경우 열 이름 을 사용하여 값을 가져올 수없는 것 같습니다 .
create table "Tab" (col number, "col" varchar2(10))
두 번째 열이 소문자가되도록 table을 만듭니다 . 전화 getString("col")
하면 첫 번째 열의 값을 얻습니다. 전화 getString("\"col\"")
하면 잘못된 열 이름 오류가 발생합니다.
그러나 열 인덱스를 사용하면 제대로 작동합니다.
ResultSet
(강조 내) 의 JDBC API 문서에서 :
getter 메소드에 대한 입력으로 사용되는 열 이름은 대소 문자를 구분하지 않습니다 . 열 이름으로 getter 메서드를 호출하고 여러 열의 이름이 같으면 일치하는 첫 번째 열의 값이 반환됩니다. 열 이름 옵션은 결과 집합을 생성 한 SQL 쿼리에서 열 이름이 사용될 때 사용되도록 설계되었습니다. 쿼리에서 명시 적으로 이름이 지정되지 않은 열의 경우 열 번호를 사용하는 것이 가장 좋습니다. 열 이름이 사용되는 경우 프로그래머는 의도 된 열을 고유하게 참조하도록주의해야합니다 . 이는 SQL AS 절로 보장 할 수 있습니다 .
즉, API의 경우 열 이름 (또는 더 정확하게는 열 레이블)은 대소 문자를 구분하지 않으므로 원하는 것이 불가능합니다. 열 레이블을 제공하여 열 레이블을 고유하게 만들 AS
거나 대신 인덱스별로 열을 가져와야합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다