2012-05-16 2 views
0

나는이 catch 블록이 상승java.sql.SQLException의 [Microsoft] [ODBC SQL Server 드라이버] [SQL 서버] 잘못된 개체 이름 '테이블 이름'

try 
{ 
    ps=conn.prepareStatement("UPDATE products SET stock=? WHERE id=?"); 

    ps.setInt(1, prods.getStock()); 
    ps.setInt(2, prods.getId()); 

    int b = ps.executeUpdate(); 

    if(b!=0) 
    { 
     System.out.println("success"); 
    } 
    else 
    { 
     System.out.println("Fail"); 
    } 
} 
catch(SQLException e) 
{ 
    System.out.println(e); 
} 

JDBC ODBC 드라이버를 사용하는 경우 MSSQL에 자바를 연결하면 예외

java.sql.SQLException [Microsoft] [ODBC SQL Server Driver] 
    [SQL Server] Invalid object name 'products' 

나는이 부분을 지난 2 일 동안 작업하고 있습니다. 이 예외를 어떻게 해결할 것인가?

+1

데이터베이스에 테이블 제품이 있는지 확인하고 싶습니까? –

+0

[제품]을 (를) 업데이트하고 작동하는지 확인하십시오 – Satya

+0

잘못된 DB를 선택했을 수 있습니다? 연결이 어떻게 생성되는지 보여줄 수 있습니까? – hage

답변

5

이 오류 메시지는 테이블을 찾을 수 없을 때 발생합니다. 그것은 몇 가지 이유가있을 수 있습니다 :

  • 당신은 테이블이 삭제 된 다른 DB
  • 에 연결을
  • 테이블이 다른 DB 스키마에
  • 사용자가 해당 테이블에 대한 읽기 권한이없는 어떤 more
+0

테이블이 존재하고 데이터베이스도 동일하지만 오류가 발생하고 있습니다. – pardhu

+0

여기에 Windows 인증을 사용하고 있는데 문제가 있습니까? – pardhu

+0

@pardhu : 귀하의 Windows 사용자가 귀하의 MSSQL Server에 대한 권한을 갖고 있습니까? MS SQL Studio를 사용하여 해당 사용자와 귀하의 DB에 연결하고 필요한 테이블을 찾아보십시오. –

0

일반적으로이 예외는 테이블이 없거나 연결 문자열에 오류가있는 경우 발생합니다. 올바른 데이터베이스에 연결하지 않았습니까?

+0

여기에 Windows 인증을 사용하고 있는데 문제가 있습니까? – pardhu

1

난 당신의 연결 문자열에는 기본 데이터베이스가 없다는 것을 상상할 것입니다 - 당신은 아마 위의 데이터베이스와 쿼리를 정규화하여 본을 테스트 할 수 있습니다

작동하지 않습니다 경우에 '마스터'에 연결 스키마 이름 :

예 :

ps=conn.prepareStatement("UPDATE [YourDatabaseName].[schema].products SET stock=? WHERE id=?"); 

은 (표준 기본 스키마 'dbo가'예입니다. ProductsDatabase.dbo.products) 필요한 경우에 값을 넣어

을이 작동하는 경우 다음 연결 문자열 내가 비슷한으로 실행

+0

괜찮아요. 시도해 보겠습니다. – pardhu

+0

"master.dbo.products"라는 검색어를 사용하여 글을 작성했습니다. 동일한 error.please가 발생했습니다. – pardhu

+0

'master'데이터베이스 또는 다른 데이터베이스에 제품 테이블이 있습니까? 나는 당신이 master.dbo.products를 넣지 말고 .dbo.products - 당신은 당신의 연결 문자열을 보여줄 수 있습니까? – Charleh

0

잘못 발행물. 내 경우에는 문제의 원인은 보고서를 실행하는 사용자가 DEFAULT_DATABASE가 마스터 데이터베이스를 가리키고, 개체를 찾을 수 있었던 올바른 데이터베이스로 변경 한 것이기 때문입니다.

감사합니다.

관련 문제