takusen-oracle alternatives and similar packages
Based on the "Database" category.
Alternatively, view takusen-oracle alternatives based on common mentions on social networks and blogs.
-
erd
Translates a plain text description of a relational database schema to a graphical entity-relationship diagram. -
persistent-redis
Persistence interface for Haskell allowing multiple storage methods. -
postgresql-simple
Mid-level client library for accessing PostgreSQL from Haskell -
acid-state
Add ACID guarantees to any serializable Haskell data structure -
squeal-postgresql
Squeal, a deep embedding of SQL in Haskell -
esqueleto
Bare bones, type-safe EDSL for SQL queries on persistent backends. -
HDBC-session
This repository includes a joined query generator based on typefull relational algebra, and mapping tools between SQL values list and Haskell record type. -
groundhog
This library maps datatypes to a relational model, in a way similar to what ORM libraries do in OOP. See the tutorial https://www.schoolofhaskell.com/user/lykahb/groundhog for introduction -
hw-kafka-client
Kafka client for Haskell, including auto-rebalancing consumers -
mysql-simple
A mid-level client library for the MySQL database, intended to be fast and easy to use. -
postgresql-simple-migration
PostgreSQL Schema Migrations for Haskell -
direct-sqlite
Low-level binding to SQLite3. Includes UTF8 and BLOB support. -
vcache
large, persistent, memcached values and structure sharing for Haskell -
dbmigrations
A library for the creation, management, and installation of schema updates for relational databases. -
vcache-trie
large, persistent, memcached values and structure sharing for Haskell -
haskelldb
A library for building re-usable and composable SQL queries. -
postgresql-tx
[Moved to: https://github.com/Simspace/postgresql-tx] -
postgresql-typed
Haskell PostgreSQL library with compile-time type inference -
ampersand
Build database applications faster than anyone else, and keep your data pollution free as a bonus. -
postgresql-orm
An Haskell ORM (Object Relational Mapping) and migrations DSL for PostgreSQL. -
persistent-database-url
Parse DATABASE_URL into configuration types for Persistent
Clean code begins in your IDE with SonarLint
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of takusen-oracle or a related project?
README
Takusen Oracle is an Oracle access library. Like HSQL and HDBC, it supports arbitrary SQL statements (currently strings, extensible to anything that can be converted to a string). Takusen's unique selling point is safety and efficiency. We statically ensure all acquired database resources - such as cursors, connections, and statement handles - are released, exactly once, at predictable times. Takusen Oracle can avoid loading the whole result set in memory, and so can handle queries returning millions of rows in constant space. Takusen also supports automatic marshalling and unmarshalling of results and query parameters. These benefits come from the design of query result processing around a left-fold enumerator.
Installing
Prerequisites: GHC >= 7.6.3, Cabal >= 1.16
Using i.e. Writing data access code
There are extensive instructions and examples in the Haddock docs for module Database.Enumerator:
http://hackage.haskell.org/packages/archive/takusen-oracle/0.9.1/doc/html/Database-Enumerator.html
This should give you most, if not all, of the information you need to create a program that uses Takusen.
Here's a little hello-world test case that uses Oracle:
{-# LANGUAGE ScopedTypeVariables #-}
module Main where
import Database.Oracle.Enumerator
import Control.Monad.Trans (liftIO)
main = flip catchDB reportRethrow $
withSession (connect "system" "system" "localhost/XE") (do
let iter (s::String) (_::String) = result s
result <- doQuery (sql "select 'Hello world.' from DUAL") iter ""
liftIO (putStrLn result)
)
If this is Main.hs, then
$ ghc --make Main -o hello
should build a "hello" executable.
Paths, GHCi & runhaskell
Just as with ensuring that your path is correctly set when building Takusen, you must also ensure it is correctly set when building your programs. If it is not correct, then you are likely to see linker errors.
For successful building of the library, you should set Extra-Lib-Dirs
to your Oracle home lib directory.
Oracle gotchas on Windows
Some users have reported linker errors because their Oracle bin contains hsbase.dll, which is an Oracle library related to Heterogenous Services. This DLL overrides GHC's HSbase.dll, and therefore causes linker errors.
If you can control your Oracle client installation then either
- don't choose Heterogenous Services when you install, or re-run the installer and remove it, or
- rename hsbase.dll in Oracle bin.