Unable to read data from Oracle Database

24 views
Skip to first unread message

DEEPAK GUPTA

unread,
Mar 23, 2017, 1:20:08 AM3/23/17
to Slick / ScalaQuery
Hi I am new to Slick. My requirement is to stream large Dataset from Source DB  to Target DB with in between transformation using Akka Stream.
As slick supports reactive stream. I wanted to explore slick before Akka Stream.
The below code works fine for less than 1k records but fails if the volume is high. Can you please help me on this.
I am using Slick 3.2.0



import scala.concurrent._
import scala.concurrent.duration._
import scala.concurrent.ExecutionContext.Implicits.global
import slick.jdbc.OracleProfile.api._



import scala.slick.ast.ColumnOption.Nullable;


object  Test2 extends App{

  case class D_COMPANY( D_COMP_ID:Int,
                        D_CLIENT_ID: Option[Int]=None,
                        COMP_NM : Option[String]=None,
                        STR_ADDRESS: Option[String]=None,
                        CITY:Option[String]=None,
                        STATE:Option[String]=None,
                        ZIP: Option[String]=None,
                        PHONE : Option[String]=None,
                        FAX : Option[String]=None,
                        SRC_LST_UPDT_DT : Option[String]=None,
                        D_COMPANY_SID : Option[Int]=None,
                        BUSNS_TYP_CD : Option[String]=None,
                        EFFECTIVE_DT : Option[String]=None
                      )

  class DCompanyTable(tag: Tag) extends Table[D_COMPANY](tag, "D_COMPANY") {
    def D_COMP_ID = column[Int]("D_COMP_ID")
    def D_CLIENT_ID  = column[Int]("D_CLIENT_ID")
    def COMP_NM = column[String]("COMP_NM")
    def STR_ADDRESS = column[String]("STR_ADDRESS")
    def CITY = column[String]("CITY")
    def STATE = column[String]("STATE")
    def ZIP = column[String]("ZIP")
    def PHONE = column[String]("PHONE")
    def FAX = column[String]("FAX")
    def SRC_LST_UPDT_DT = column[String]("SRC_LST_UPDT_DT")
    def D_COMPANY_SID = column[Int]("D_COMPANY_SID")
    def BUSNS_TYP_CD = column[String]("BUSNS_TYP_CD")
    def EFFECTIVE_DT = column[String]("EFFECTIVE_DT")

    def * = (D_COMP_ID,D_CLIENT_ID.?,COMP_NM.?,STR_ADDRESS.?,CITY.?,STATE.?,ZIP.?,PHONE.?,FAX.?,
      SRC_LST_UPDT_DT.?,D_COMPANY_SID.?,BUSNS_TYP_CD.?,EFFECTIVE_DT.?) <> (D_COMPANY.tupled, D_COMPANY.unapply)
  }



  lazy val resultSet = TableQuery[DCompanyTable]

  val selectAction = resultSet.result



  implicit val db = Database.forURL("jdbc:oracle:thin:username/password@hostname:1521/service_name",
    driver = "oracle.jdbc.driver.OracleDriver")

  

  def exec[T](action: DBIO[T]): T =
    Await.result(db.run(action), 10 seconds)


  exec(selectAction).foreach(println)



}
Reply all
Reply to author
Forward
0 new messages