문제

데이터베이스를 PostgreSQL에서 Oracle 11G로 변경하고 있습니다. 자바와 스트럿과 함께 최대 3.0을 사용하고 있습니다.

PostgreSQL과 함께 모든 것이 잘 작동합니다.

Hibernate.cfg.xml 파일에서 다음을 변경했습니다.

<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
    <property name="hibernate.connection.password">mypassword</property>
    <property name="hibernate.connection.url">jdbc:Oracle:thin:@192.168.1.1:1521/mydb</property>
    <property name="hibernate.connection.username">my_user</property>
    <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>

다른 모든 것은 PostgreSQL과 동일합니다.

나는 ojdbc5.jar를 사용하고 있습니다

이제 페이지를 실행하면 다음 오류가 발생합니다.

ORA-00903 : 유효하지 않은 테이블 이름

아무도 문제에 관해 나를 도울 수 있습니까?

감사.

도움이 되었습니까?

해결책

두 가지 경우 중 하나 일 가능성이 높습니다.

  1. 테이블의 소유자 이외의 사용자로 연결하고 이름을 해결할 수 없습니다.
  2. 코드의 테이블 이름을 참조하거나 실제 이름을 참조하는 경우 사례 감도에 문제가 있습니다.

테이블의 소유자가 아니지만 액세스 할 수있는 보조금이있는 경우 MyTable에 대한 참조를 _actual_owner.mytable로 변환하는 Oracle 동의어가 있어야하거나 코드에서 스키마 예선을 직접 참조해야합니다.

두 번째 사례는 가능성이 적지 만 때로는 테이블 제작 스크립트가 객체 이름 주위에 이중 인용문이있는 Oracle에서 객체를 생성 할 수 있습니다. 혼합 사례 문자열에 의해 참조됩니다.

추가 정보를 제공하려면 애플리케이션과 동일한 사용자와 일종의 Ad-Hoc SQL 도구와 연결하고 결과를 게시하십시오.

All_tables에서 소유자, table_name을 선택하십시오.

다른 팁

DPBRADLEY는 아마도 맞지만 11G와 최대 절전 모드로 다음 문제를 해결했습니다 .- Oracle 11G는 30 자 미만의 이름의 테이블을 정의 할 수 있습니다. 그러나 실제로 SQL에서 해당 테이블을 참조 할 수는 없습니다. 이름이 너무 길기 때문에 진술.

  • 최대 절전 모드 자동 생성 된 DDL은 DDL을 생성 할 때 신경 쓰거나 경고하지 않는 것 같습니다.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top