C# Dijkstra

Implementation

Uses the HeapPriorityQueue.
Code on Github

Graph Classes

C# PriorityQueue with fast Update operation

Implementation

Uses a heap for fast retrieval of the smallest element as well as a dictionary for a fast access to an element which is already in the data strucutre. This priority queue is not too bad for implementing a Dijkstra (a fibonacci heap would be perfect…).
Code on Github

Helper Class

Test

C# PriorityQueue

Implementation

It is a simple implementation of a priority queue which is based on a SortedDictionary. This makes the implementation quite small.
Code on Github

Small Test

Oracle: Exporting/Importing tables containing CLOB data

Exporting the table using SQLWorkbench

Imagine you have a table images with a character column filename and a clob column image_data

First you need to install the SQL-Workbench. Install does just mean to extract the archive in that case.

The following command exports the table into a textfile. It does also generate the loader file which can be used with sqlldr. The CLOB data is exported as files with the name image_data_0, image_data_1, … and will be in the same directory. Those files are referenced in the textfile.

Importing the table using sqlldr

To import the table you need to have the generated control file (image_data.ctl), the textfile (image_data.txt) and all the clob data files (image_data_*).

The command is easy:

The above command assumes that we have a user named user which has the password password. And we assume that there is the server address OURORA configured in the tnsnames.ora

Possible errors

If you get that error delete the ORACLE_HOME environment variable then it should work…