2013-03-06 20 views
2

我無法解決我與本地Oracle數據庫的問題。 我是tryong連接到我的本地Oracle數據庫(Oracle數據庫11g速成版) 稍後我將使用JNDI到另一個Oracle數據庫,但我認爲這應該仍然有效。 驅動:ojdbc6.jar在/ lib目錄使用Oracle數據庫播放框架 - 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" 

所以我知道我連接到數據庫,但錯誤的是,它說,該表不存在。我甚至不創建或查詢表格(沒有模型存在 - 但我已經嘗試過使用模型,同樣的錯誤)。一開始似乎是錯誤的,我不知道如何調試。

錯誤:

**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) 

當讀到它,我才發現,我可能沒有權限對一些表,但事情是,我使用了相同的登錄Oracle SQL Developer中和它的作品。

+0

您使用的是什麼版本的Play? – 2013-03-06 14:55:00

+0

玩版本2.1.0 – J2B 2013-03-06 15:58:39

回答

5

嘗試手動創建一個play_evolutions表具有以下的列(通過調整類型Oracle使用的那些):

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

這是,如果你不需要演變 (跟蹤模式更改)。