Category Archives: OCIML

Quick histograms

Having come back to actively working on OCI*ML recently, it’s time I cracked on with some more features (I have been promising LOBs for a long time, sorry to anyone who’s still waiting). Just to get warmed up, inspired by … Continue reading

Posted in Ocaml, OCIML, Operation Foothold, Random thoughts | Leave a comment

OCaml 4 beta

OCaml 4 beta 2 has been released, and so I quickly tested OCI*ML with it. Only a couple of minor tweaks were necessary, due to the following changes: Some .cmi for toplevel internals that used to be installed in`ocamlc -where` … Continue reading

Posted in Haskell, Ocaml, OCIML | Leave a comment

Stacks and other stuff

An interesting coincidence: I happened to mention Forth in my last post, and I have also been looking at Tenacious C, a new (sadly Windows-only for now) C IDE with some innovative visualization of a program’s memory use. They’ve a … Continue reading

Posted in Ocaml, OCIML, Operation Foothold, Oracle, Random thoughts | Leave a comment

Why

A few thoughts on why I decided to start working on an open source project: I enjoy working in OCaml (functional languages in general, in fact), and need a project to work on that I can take in any direction … Continue reading

Posted in Ocaml, OCIML, Oracle, Python, Random thoughts | Leave a comment

OCI*ML: Ref Cursors and Raw Messages

A few more additions to OCI*ML: Support for ref cursors and binding OUT variables by name as well as by position (see below) Support for type RAW in AQ (see below) oci_version function returns a tuple of (major version, minor … Continue reading

Posted in Ocaml, OCIML, Oracle | 1 Comment

OCI*ML: 100× Faster with Bulk Operations

Continuing with my fixation on reducing the number of network roundtrips in OCI*ML I have enhanced the orabindexec function to perform bulk DML, that is to say, batching many similar INSERT, UPDATE or DELETE statements on the same table into … Continue reading

Posted in Ocaml, OCIML, Oracle | Leave a comment

OCI*ML: Support for RETURNING

First a quick recap for non-DBAs: in database programming it is a common, nearly universal, pattern to assign a unique identifier to each row of the database independent of the data actually stored in the row – this is called … Continue reading

Posted in Ocaml, OCIML, Oracle | 1 Comment

OCI*ML: Minor updates

A few minor updates to OCI*ML: oraprefetch to set rows pre-fetched and buffered by OCI. This is set per-statement handle, with a default for newly-created handles set in .ocamlinit. oradeqtime to set the number of seconds to wait on oradequeue … Continue reading

Posted in Ocaml, OCIML, Oracle | 3 Comments

OCI*ML new feature: AQ

Many organizations make heavy use of message-oriented middleware, such as Oracle AQ. An interesting thing about message buses is that so long as a program can participate in the sending and receiving of messages it doesn’t matter what language it … Continue reading

Posted in Ocaml, OCIML, Oracle | 7 Comments

OCaml as a SQL*Plus replacement?

Just re-read the Jane Street article OCaml as a scripting language†, and added an interactive toplevel to OCI*ML and a first stab at a make install task, but I still have to do: $ ocimlsh -I <directory where ociml.cma and … Continue reading

Posted in Ocaml, OCIML, Oracle | 4 Comments