2013-03-06 3 views
2

로컬 Oracle 데이터베이스에서 문제를 해결할 수 없습니다. 로컬 Oracle 데이터베이스 (Oracle Database 11g Express Edition)에 연결하려고합니다. 나중에 JNDI를 다른 Oracle Database에 사용 하겠지만, 여전히 작동해야합니다. 드라이버 :/lib에Oracle Database를 사용하는 Play Framework - ORA-00942 : 테이블 또는 뷰가 존재하지 않습니다.

db.default.driver=oracle.jdbc.driver.OracleDriver 
db.default.url="jdbc:oracle:thin:@localhost:1521:xe" 
db.default.user="user" 
db.default.pass="pass" 

에서 ojdbc6.jar 그래서 나는 데이터베이스에 연결합니까 알고 있지만 오류는 테이블이 존재하지 않는다고 말한다는 것이다. 나는 심지어 테이블을 만들거나 쿼리하지도 않는다. (모델은 존재하지 않는다. 뭔가 처음에는 잘못 된 것 같아요. 디버깅하는 방법을 모르겠습니다.

오류 :

**java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist** 
oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:457) 
oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:400) 
oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:926) 
oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:476) 
oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:200) 
oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:543) 
oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:197) 
oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:1213) 
oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1492) 
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1710) 
oracle.jdbc.driver.OracleStatement.executeQuery(OracleStatement.java:2006) 
oracle.jdbc.driver.OracleStatementWrapper.executeQuery(OracleStatementWrapper.java:1709) 
com.jolbox.bonecp.StatementHandle.executeQuery(StatementHandle.java:503) 
play.api.db.evolutions.Evolutions$.executeQuery(Evolutions.scala:118) 
play.api.db.evolutions.Evolutions$.databaseEvolutions(Evolutions.scala:334) 
play.api.db.evolutions.Evolutions$.evolutionScript(Evolutions.scala:306) 
play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1$$anonfun$apply$1.apply$mcV$sp(Evolutions.scala:435) 
play.api.db.evolutions.EvolutionsPlugin.withLock(Evolutions.scala:478) 
play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1.apply(Evolutions.scala:434) 
play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1.apply(Evolutions.scala:432) 
scala.collection.immutable.List.foreach(List.scala:309) 
play.api.db.evolutions.EvolutionsPlugin.onStart(Evolutions.scala:432) 
play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:63) 
play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:63) 
scala.collection.immutable.List.foreach(List.scala:309) 
play.api.Play$$anonfun$start$1.apply$mcV$sp(Play.scala:63) 
play.api.Play$$anonfun$start$1.apply(Play.scala:63) 
play.api.Play$$anonfun$start$1.apply(Play.scala:63) 

나는 단지 내가 어떤 테이블에 대한 권한이 없을 수 있습니다 것으로 나타났습니다 그것에 대해 읽고,하지만 일이 나는 오라클 SQL Developer에서 동일한 로그인을 사용하고 작동한다는 것입니다.

+0

사용중인 Play의 버전은 무엇입니까? –

+0

재생 버전 2.1.0 – J2B

답변

5

봅니다 수동으로 (오라클에서 사용하는 것과 유형을 적용하여) 다음과 같은 열이있는 play_evolutions 테이블을 만들려면 다음

id int not null primary key, hash varchar(255) not null, 
applied_at timestamp not null, 
apply_script text, 
revert_script text, 
state varchar(255), 
last_problem text 
7

nico_ekito가 썼던 것처럼, 당신은 수동으로 테이블을 작성해야합니다.

이 사람은 나를 위해 작동 :

CREATE TABLE play_evolutions 
(
    id Number(10,0) Not Null Enable, 
    hash VARCHAR2(255 Byte), 
    applied_at Timestamp Not Null, 
    apply_script clob, 
    revert_script clob, 
    state Varchar2(255), 
    last_problem clob, 
    CONSTRAINT play_evolutions_pk PRIMARY KEY (id) 
); 
2

conf/application.conf에서

다음 행을 취소-댓글 : 에볼루션 필요하지 않은 경우

evolutionplugin=disabled

입니다 (스키마 변경 사항 추적).

관련 문제