Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Slick 3.2指定Oracle模式_Oracle_Scala_Slick 3.0 - Fatal编程技术网

使用Slick 3.2指定Oracle模式

使用Slick 3.2指定Oracle模式,oracle,scala,slick-3.0,Oracle,Scala,Slick 3.0,我有一个包含多个用户/模式的Oracle数据库,我想为特定用户自动生成灵活的模式。这就是我迄今为止所尝试的: import scala.concurrent.ExecutionContext.Implicits.global val profileInstance: JdbcProfile = Class.forName("slick.jdbc.OracleProfile$") .getField("MODULE$") .get(null).asInstanceOf[Jdb

我有一个包含多个用户/模式的Oracle数据库,我想为特定用户自动生成灵活的模式。这就是我迄今为止所尝试的:

import scala.concurrent.ExecutionContext.Implicits.global

val profileInstance: JdbcProfile =
  Class.forName("slick.jdbc.OracleProfile$")
    .getField("MODULE$")
    .get(null).asInstanceOf[JdbcProfile]

val db = profileInstance.api.Database
  .forURL("jdbc:oracle:thin:@//myhost:myport/servicename","user","pass")

val modelAction = OracleProfile.createModel(Some(OracleProfile.defaultTables))
val model = Await.result(db.run(modelAction), Duration.Inf)

model.tables.foreach(println)
这不会打印任何内容,我想我必须提供当前的模式来使用,但我不知道如何做到这一点

另一方面,我可以使用以下代码列出数据库的所有模式:

val resultSet = db.createSession().metaData.getSchemas.getStatement.getResultSet
while(resultSet.next()) {
  println(resultSet.getString(1))
}

我怎样才能指定我想在Slick中使用的模式呢?

我已经找到了方法。我没有使用
OracleProfile.defaultTable
而是手动定义了所需的表和视图,如下所示:

val modelAction = OracleProfile.createModel(
  Some(MTable.getTables(None, Some("MYSCHEMA"), None, Some(Seq("TABLE", "VIEW"))))
)