제가 여기 계시글을 아무리 뒤져도 쉽게 찾을수 없어..
이렇게 글 올립니다.
오라클의 4000바이트의 제약을 뛰어넘기 위해 Long형을 썻습니다. Clob등은 쓰다가 실패..ㅡ.ㅡ
아래는 JDBC 2.0 이상에서 해당됩니다.
prepareStatement 을 선언하구요
Connection 객체를 conn 이라 치고..
content 이 컬럼이 Long 형입니다.
-- 에러 --
PreparedStatement ps = null;
String no = "1";
String title = "제목";
String content = "4000바이트 이상의 문자";
String query = "INSERT INTO YBC VALUES (no, title, content) VALUES (?,?,?)";
ps = conn.prepareStatement( query );
ps .setString(1, no );
ps .setString(2, title );
ps .setString(3, content );
ps.execute();
이렇게 썻던것을 아래처럼 바꿉니다... ㅡ.ㅡ
-- 정상 --
PreparedStatement ps = null;
String no = "1";
String title = "제목";
String content = "4000바이트 이상의 문자";
String query = "INSERT INTO YBC VALUES (no, title, content) VALUES (?,?,?)";
ps = conn.prepareStatement( query );
ps .setString(1, no );
ps .setString(2, title );
StringReader sr = new StringReader(content ); // 달랑 요기 1
ps.setCharacterStream(3, sr, content.length()); // 달랑 요기 2
ps.execute();
이것은 Insert, Update 시에 사용되구요
Select 는 기존처럼 ResultSet 에서 getString 으로 무난히 불러 올수 있습니다.
단. "SELECT NO, TITLE, CONTENT FROM YBC WHERE NO = '1'" 에서
String n = ResultSet객체.getString("NO");
String t = ResultSet객체.getString("TITLE");
String c =ResultSet객체.getString("CONTENT ");
이런식으로 select 문에 던진 컬럼들 순서대로 3번째에 getString("CONTENT") 을 가져와야 합니다.
아니면 제일 처음 즉
String c =getString("CONTENT ");
String n = getString("NO");
String t = getString("TITLE");
이런식으로 가져오시던가요..(테이블에 Long형이 하나일때..)
그이유는.. 시간관계상 자세히 파보지 않아서 모르겠습니다..캬캬캬
지금은 다들 잘 알고 계시리라 믿지만 저처럼 찾아 헤멘 분들을 위하여
다른 설명은 없이 소스만 적었습니다..
나중에 까먹으면 다시 와서 보고 가야지.. ^^ 즐거운 저녁 되세요~