Provides Oracle database access support for Dart via an API that is similar to OCCI.
Dependencies
- GCC
- Oracle SDK (libs and header files)
- Environment variable
ORACLE_HOME
set to the root of your Oracle libraries
Instructions
- Add
oracle
to your dependencies list in yourpubspec.yaml
file.
dependencies:
oracle: any
dev_dependencies:
grinder: any
- Run
pub get
to download Dart dependencies - Run
pub run grind
to build the binaries for your platform
If grind succeeds you should be good to go. If it fails you may need to check your system dependencies or environment variables
Dart garbage collected OCCI wrappers for many commonly used classes.
Support for:
- Basic types (strings, numbers, etc...)
- Date and Timestamps as Dart
DateTime
type - BLOBs
- CLOBs
Free as in freedom softwares.
LGPL v3. See LICENSE.
import 'package:oracle/oracle.dart' as oracle;
oracle.Environment env = new oracle.Environment();
oracle.Connection conn = env.createConnection(username, password, connString);
oracle.Statement stmt = conn.execute('SELECT test_int FROM test_table WHERE test_date=:bind', {':bind' : new DateTime(2012, 12, 19, 34, 35, 36)});
oracle.ResultSet results = stmt.getResultSet();
while(results.next())
assert(results.row()['TEST_INT'] == 12);
import 'package:oracle/oracle.dart' as oracle;
oracle.Environment env = new oracle.Environment();
oracle.Connection conn = env.createConnection("username", "password", "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.1)(PORT=1521))(CONNECT_DATA=(SID=XE)))");
oracle.Statement stmt = conn.createStatement("INSERT INTO test_table (test_int INT) VALUES (:bind)");
stmt.setInt(1, 12);
stmt.execute();
stmt = conn.createStatement("SELECT test_int from test_table");
oracle.ResultSet results = stmt.executeQuery();
results.next();
int i = results.getInt(1);
print(i) // 12
// garbage collection will cleanup
# Set environment variables
$ export DART_SDK=/path/to/dart-sdk
$ export PATH=$PATH:$DART_SDK/bin
$ export ORACLE_INCLUDE=/usr/include/oracle/12.1/client64
$ export ORACLE_LIB=/usr/lib/oracle/12.1/client64/lib
# Get dependencies and setup grinder
$ cd oracle.dart
$ pub get
$ pub global activate grinder
# To build
$ grind
# To unit test
$ export DB_USERNAME=username
$ export DB_PASSWORD=password
$ export DB_CONN_STR="(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SID=XE)))"
$ grind test