database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 3054 게시물 읽기
No. 3054
Re: 테스트 했는데 ... 저도 안되더군요...
작성자
김일형
작성일
2001-06-29 21:40
조회수
2,569

안녕하세요, 김일형입니다.

 

그리 경험이 많지 않아서 님의 설명과 프로그래머 매뉴얼을 보고 테스트를 해봤는데...

 

ps.setBinaryStream(2, fis, (int)file.length());

 

정확하게 여기서 예외가....

InputStream을 매개변수로 사용할 수 없다는 충격적인....

매뉴얼에도 분명되는 것으로 나오는데...말이죠...

 

단 한가지 님이 잊고 넘어가신 것은 ....

---------------------------------------------------------------------------

Important: For Postgres, you must access Large Objects within an SQL transaction. You would open a transaction by using the setAutoCommit() method with an input parameter of false:

 

Connection mycon;

...

mycon.setAutoCommit(false);

... // now use Large Objects

----------------------------------------------------------------------------

라고 매뉴얼에 나왔있슴당.... 거대객체는 SQL 트랜젝션 내에서만 이루어져야 한다는 것인데... 그러니가 제생각에는 커넥션을 얻은 다음에는 Auto Commit을 중지 시켜야한다는 것이죠.

 

그런데 그렇게 해도 여전히 예외가 떨어지던데요.... -__-;;;;

 

제가 시간이 없어서 오랫동안 삽질을 해보지는 않았는데요... 한번 계속 디벼보겠습니다.

 

죄송합니다. 도움이 못되어드려서...

 

김일형.

 

 

>>안상훈 님께서 쓰시길<<

 

:: 사용환경은

:: * Alzza Linux Kernel 2.2.12

:: * JDK1.3

:: * Postgresql7.1.2

::

:: 이렇게 설정되어 있습니다. 이중 large object를 사용하는 message라는 테이블구조는 아래와 같습니다.

::

::

:: CREATE TABLE message (

:: mid int PRIMARY KEY,

:: message oid

:: );

::

:: 여기서 Postgres.org 홈페이지에 있는 JDBC를 이용한 large object를 사용하는 샘플코드를 사용해 봤

:: 는데 실행시 에러가 납니다. 에러는 다음과 같습니다.

::

:: Connection successful!

:: InputStream as parameter not supported

:: at org.postgresql.jdbc2.PreparedStatement.setBinaryStream(PreparedStatem

:: ent.java:476)

:: at test.main(test.java:37)

::

:: 너무 안되어서 현재 개발버전인 7.2로도 테스트 해보았으나 마찬가지 에러가 납니다. 제가 작성한 샘

:: 플코드는 아래와 같습니다.

::

:: class test {

:: public static void main (String args[]) {

:: Connection connection = null;

::

:: File file;

:: FileInputStream fis;

::

:: try {

:: file = new File("headcut.jpg");

:: fis = new FileInputStream(file);

:: } catch (Exception e) {e.printStackTrace(); return;}

::

:: try {

:: Class.forName ("org.postgresql.Driver");

:: connection = DriverManager.getConnection("jdbc:postgresql:jdbcdb", "postgres", "

:: postgres");

:: System.out.println ("Connection successful!");

:: PreparedStatement ps = connection.prepareStatement("INSERT INTO message VALUES (

:: ?, ?)");

:: ps.setInt(1, 1000);

:: ps.setBinaryStream(2, fis, (int)file.length());

:: ps.executeUpdate();

:: ps.close();

:: } catch (Exception e){

:: e.printStackTrace();

:: return;

:: }

:: }

:: }

::

:: 아직 JDBC에서 지원이 안되는 것인가요? JDBC는 postgresql소스를 컴파일해서 얻었습니다. 여러 고수

:: 님들의 조언 부탁드립니다.

::

:: 감사합니다.

::

[Top]
No.
제목
작성자
작성일
조회
3050PostgreSQL 7.1.2를 설치후.. 많이 느려진 느낌이..
김대성
2001-06-29
2524
3056┕>Re: PostgreSQL 7.1.2를 설치후.. 많이 느려진 느낌이..
정재익
2001-06-30 10:35:40
2659
3048오라클의 sysdate와 같은 기능을 갖는 것은 없나요? [1]
김명수
2001-06-28
3725
3049┕>Re: 질문하시기 전에 메뉴얼을 먼저 찾아 보시기 바랍니다.
정재익
2001-06-28 22:06:27
2954
3046cpu가 mips 인 시스템에 올리려고 하는데요.
김남수
2001-06-28
2225
3047┕>Re: cpu가 mips 인 시스템에 올리려고 하는데요.
정재익
2001-06-28 14:16:56
2390
3045JDBC2 에서 large object 사용하는 법 좀 가르쳐 주세요..
안상훈
2001-06-27
2409
3054┕>Re: 테스트 했는데 ... 저도 안되더군요...
김일형
2001-06-29 21:40:46
2569
3055 ┕>Re: Re: 테스트 했는데 ... 저도 안되더군요...
정재익
2001-06-29 21:44:19
2734
3043postgres 연동 cgi 실행 에러(Solaris)
박서림
2001-06-27
2491
3044┕>Re: postgres 연동 cgi 실행 에러(Solaris)
정재익
2001-06-27 20:17:29
2332
3051 ┕>Re: Re: postgres 연동 cgi 실행 에러(Solaris)
박서림
2001-06-29 13:43:48
2341
3032오라클의 substr같은 기능은?
likered
2001-06-25
2488
3034┕>Re: 오라클의 substr같은 기능은?
정재익
2001-06-26 09:04:55
3543
3026libpq++ connect 질문에 대한 추가 질문 입니다.
이성한
2001-06-25
2246
3027┕>Re: libpq++ connect 질문에 대한 추가 질문 입니다.
정재익
2001-06-25 19:02:49
2370
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다