使用HDBC连接到Haskell中的Oracle数据库

时间:2012-02-11 13:01:05

标签: oracle haskell odbc

我正在尝试使用Haskell的Oracle数据库,并遇到了这样的问题。 所以,有这个代码。     模块主要在哪里

import Database.HDBC
import Database.HDBC.ODBC

main :: IO ()

main = do
        let connectionString = "Driver={Microsoft ODBC for Oracle};Server=127.0.0.1;Uid=valera;Pwd=2562525;"
        let ioconn = connectODBC connectionString
        conn <- ioconn
        vals <- quickQuery conn "SELECT * FROM PERSONS_TEST" []
        print vals
        return ()

很简单,对吧?但那不行。使用此连接字符串时,错误为

*** Exception: SqlError {seState = "[\"HY090\"]", seNativeError = -1, seErrorMsg = "sqlGetInfo SQL_TXN_CAPABLE: [\"0: [Microsoft][ODBC driver for Oracle]\\65533...

然后65333重复多次。有了这个

Provider=msdaora;Data Source=127.0.0.1;User Id=valera;Password=2562525;

错误是

*** Exception: SqlError {seState = "[\"IM002\"]", seNativeError = -1, seErrorMsg = "connectODBC/sqlDriverConnect: [\"0: [Microsoft][\\65533...

和65333再次重复直至结束 我想,问题出在连接字符串中,但是我尝试了一大堆(我使用过http://www.connectionstrings.com/

我在Windows 7 64位上使用Haskell Platform 2011.4.0.0,GHC 7.0.4,Oracle Database XE 11.2。安装了Microsoft MDAC SDK。

1 个答案:

答案 0 :(得分:2)

\ 65533等等是您的语言环境(RU?)中的ODBC驱动程序错误消息字符串的符号。我找到了在英语语言环境系统中开发的最佳方法,因此ghci控制台中的错误信息以英语显示,可以阅读。