All Projects → mikra01 → nimodpi

mikra01 / nimodpi

Licence: MIT License
Oracle ODPI-C wrapper for Nim

Programming Languages

nim
578 projects

Projects that are alternatives of or similar to nimodpi

oracle-commerce-cli
A simple CLI to help with your daily Oracle Commerce Cloud (OCC) development.
Stars: ✭ 18 (+5.88%)
Mutual labels:  oracle
transferdb
TransferDB 支持异构数据库 schema 转换、全量数据导出导入以及增量数据同步功能( Oracle 数据库 -> MySQL/TiDB 数据库)
Stars: ✭ 30 (+76.47%)
Mutual labels:  oracle
development-best-practices
程序员开发规范,其中包括Java、JavaScript、CSS、Oracle、MySQL的开发编码规范和规约
Stars: ✭ 14 (-17.65%)
Mutual labels:  oracle
Odapter
C# code generator for Oracle packages
Stars: ✭ 16 (-5.88%)
Mutual labels:  oracle
thinkorm
A flexible, lightweight and powerful Object-Relational Mapper for Node.js. Support TypeScript!!
Stars: ✭ 33 (+94.12%)
Mutual labels:  oracle
webgui
Web Technologies based Crossplatform GUI Framework with Dark theme
Stars: ✭ 81 (+376.47%)
Mutual labels:  nim-lang
apex-plugin-ig simple checkbox
Oracle APEX Item Plugin - IG Simple Checkbox
Stars: ✭ 21 (+23.53%)
Mutual labels:  oracle
docker-apex-stack
Utility scripts for creating an Oracle Application Express stack as a Docker container.
Stars: ✭ 67 (+294.12%)
Mutual labels:  oracle
nim-telegram-bot
Nim Telegram Bot.
Stars: ✭ 18 (+5.88%)
Mutual labels:  nim-lang
LatexDSL
A mini DSL to generate LaTeX from Nim
Stars: ✭ 22 (+29.41%)
Mutual labels:  nim-lang
nim magic
Nim cell magic for JupyterLab or Juypter Python Notebooks.
Stars: ✭ 41 (+141.18%)
Mutual labels:  nim-lang
docker
collection of docker / docker-compose files, dind, gitlab, jenkins, mongo, mysql, oracle, rabbitmq, redis, sonarqube
Stars: ✭ 25 (+47.06%)
Mutual labels:  oracle
TradingMachine
TradingMachine is a mini-trading system simulation, whose components (market data and order feeds, FIX acceptor and initiator, back-end for filled orders) interact by queues and topics.
Stars: ✭ 26 (+52.94%)
Mutual labels:  oracle
AssmentTools
对于等保测评实施的现场测评工具
Stars: ✭ 18 (+5.88%)
Mutual labels:  oracle
Neel
A Nim library for making Electron-like HTML/JS GUI apps, with full access to Nim capabilities.
Stars: ✭ 144 (+747.06%)
Mutual labels:  nim-lang
json-sql-builder2
Level Up Your SQL-Queries
Stars: ✭ 59 (+247.06%)
Mutual labels:  oracle
terraform-examples
Terraform Examples for Oracle Cloud Infrastructure and Platfrom
Stars: ✭ 34 (+100%)
Mutual labels:  oracle
oci-ansible-collection
Oracle Cloud Infrastructure Ansible Collection provides an easy way to provision and manage resources in Oracle Cloud using Ansible.
Stars: ✭ 106 (+523.53%)
Mutual labels:  oracle
container-images
Oracle Linux container images
Stars: ✭ 93 (+447.06%)
Mutual labels:  oracle
db-oracle
Oracle Database support for Yii
Stars: ✭ 21 (+23.53%)
Mutual labels:  oracle

nimodpi

Oracle ODPI-C wrapper for Nim

Oracle ODPI-C Documentation

dependencies

  • Oracle Instant Client (see ODPI-C Documentation for details)
  • nimterop

how to install

clone this project directly or use "nimble install nimodpi". then import the module "db_oracle" within your project. the dependent ODPI-C source is directly included into your project (via nimterop)

See the "isMainModule" section at the end of the module for some examples.

Besides the abstraction layer you can also consume the raw ODPI-C API if something is missing ( or PR me your solution ).

See /demo/demo.nim for some direct ODPI-C examples. The subdir /demo also contains an example how sqlplus could be utilised for script execution.

Remarks

upgraded to Nim Compiler Version devel (should also work with latest release), ODPI-C 4.3.0 and nimterop 0.6.11. The ODPI-C version is hardcoded within the static section of nimodpi.nim (nimterop control file) - don't forget to flush nimcache when changing the version between compile runs. The NIM-API could be subject of change.

Oracle XE installation

For testing just install a local copy of the oracle xe: https://www.oracle.com/database/technologies/appdev/xe.html

The oracle instant client is already included.

Tests only against windows 10 OS - if you face problems while installing xe onto your machine: the installer logs everything under the program files directory within the subdirectory /Oracle/Inventory/logs. Before installing make sure a third party virus scanner is disabled. (I faced no problems with the windows defender).

My database was created with the nls_character set "AL32UTF8"

To check your database characterset you could query for:

select DECODE(parameter, 'NLS_CHARACTERSET', 'CHARACTER SET',
'NLS_LANGUAGE', 'LANGUAGE',
'NLS_TERRITORY', 'TERRITORY') name,
value from v$nls_parameters
WHERE parameter IN ( 'NLS_CHARACTERSET', 'NLS_LANGUAGE', 'NLS_TERRITORY')
/

If you like to browse the schemas use Oracle SQL Developer for instance. Future examples will be based on the HR schema. This user is locked by default so the examples will only work if you use sysdba for the connecting user.

demo

before running the demo, adjust "/demo/democredentials.nim" (login and connection_string) for the database you like to connect to. No ddl is executed.

run the raw ODPI-C demo with "nimble demo".

run the nim demo with "nimble db_oracle". this demo executes some DDL and performs a cleanup.

Todo

direct bindings almost completed except SODA/BLOB/VARRAY; the nimish abstraction layer (db_oracle) is functional but more examples needed. next steps would be provide documented examples.

Comments, bug reports and PR´s appreciated.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].