2018年6月10日日曜日

haskellでoracle databaseへつなぐ

oracle databaseへhaskellから簡単につなぐライブラリを探してたところ、odpic-rawなるものを発見。

これ、ODPI-Cのライブラリに依存しているのでそれもいれる。

そして、どっかのドキュメントへ書かれていたサンプルでつないでみる


{-# LANGUAGE OverloadedStrings #-}

import Database.Dpi

user = "testdb"
passwd = "xxxxxxxxxx"
host  = "192.168.253.13:1521/orcl"

main :: IO ()
main = do
    withContext $ \cxt ->
        withPool cxt user passwd host "utf-8" "utf-8" 2 $ \pool ->
            withPoolConnection pool $ \conn ->
                withStatement conn False "SELECT SYSDATE FROM DUAL" $ \st -> do
                    r <- executeStatement st ModeExecDefault
                    f <- fetch st
                    mapM (getQueryValue st) [1..r] >>= print
やってみる

Prelude> :load "/home/cuomo/Code/haskell/odpic/Odpic.hs"                                                                                                                                                                                                                        
[1 of 1] Compiling Main             ( /home/cuomo/Code/haskell/odpic/Odpic.hs, interpreted )
Ok, one module loaded.
*Main> main
[DataLocalTime 2018-06-10 17:52:42]

つながった...

パッケージの方は、gentoo-haskellの方へpull request送っておきました。

0 件のコメント:

コメントを投稿