2016-06-22 3 views
0

PreparedStatement를 사용하여 ORACLE dbdb에 삽입하려고 할 때 문제가 있습니다. 해당 처리하는 것보다 Blob 데이터 형식에 관련된 것으로 보인다. 이 링크 changing type에서 해결책은 Blob에서 String으로 데이터 유형을 변경하는 것이 었습니다. 그러나 이것은 제가 찾고있는 것이 아닙니다. 테이블에 Blob을 삽입해야합니다. 내가 권한을 가지고 있는지 확인 및 구문에 대한도 확신ORA-00942 받기 : Java에서 Blob을 사용하여 테이블 또는 뷰가 존재하지 않습니다.

public void insert(Connection conn , String id, String imageName, byte[] image) throws Exception { 

    PreparedStatement ps = null; 

    Blob img = conn.createBlob(); 
    img.setBytes(1, image); 

    try { 

     String sql = "INSERT INTO MY_OWNER.IMAGE_TABLE " 
       + "(ID, IMAGE_NAME, BLOB_IMAGE) " 
       + "VALUES (?, ?, ?) "; 

     ps = conn.prepareStatement(sql); 

     ps.setString(1, id); 
     ps.setString(2, imageName); 
     ps.setBlob(3, img); 

     ps.executeUpdate(); 

     conn.commit(); 

    } catch (Exception e) { 

     conn.rollback(); 
     throw new Exception (e); 

    } finally { 

     if (ps != null) { 
      ps.close(); 
     } 
     if (conn != null) { 
      conn.close(); 
     } 

    } 

} 

:

여기 내 코드입니다. 내가 말했듯이, 나는 그것이 블로블이라고 믿는다.

java.lang.Exception: java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist 

에 의해 발생 : java.sql.SQLSyntaxErrorException : ORA-00942 : 여기

는 오류가 테이블 또는 뷰가

at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:440) 
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396) 
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:837) 
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:445) 
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:191) 
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:523) 
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207) 
at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:1010) 
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1315) 
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3576) 
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3657) 
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:1350) 

는 모든 무엇인지 어떤 생각을 가지고 있습니까 존재하지 않습니다 약?

감사합니다 !!! 오라클 오류가 보조금에 대해이었다로

답변

0

나는, 정말 미안 동료 - P 끝에

해요, 그것은 DDBB에 대한 연결이 때문에 나는 그것을 실현하지 않았다 ... 보조금 문제였다 다른 사용자를 사용하여 연결하십시오. 해결책은 분명히이 사용자에게 적절한 보조금을 제공하는 것이 었습니다.

죄송합니다.

관련 문제