X

The leading edge of scripting languages and Oracle Database brought to you by the Data Access Development team

Python cx_Oracle 6.4 Brings a World Cup of Improvements

cx_Oracle 6.4, the extremely popular Oracle Database interface for Python, is now Production on PyPI. cx_Oracle is an open source package that covers the Python Database API specification with many additions to support Oracle advanced features. At a nicely busy time of year, cx_Oracle 6.4 has landed. To keep it brief I'll point you to the release notes since there have been quite a number of improvements. Some of those will significantly help your apps A few things to note: Impro...

Tuesday, July 3, 2018 | python | Read More

Demo: GraphQL with Oracle Database and node-oracledb

Some of our node-oracledb users recently commented they have moved from REST to GraphQL so I thought I'd take a look at what it is all about. I can requote the GraphQL talking points with the best of them, but things like "Declarative Data Fetching" and "a schema with a defined type system is the contract between client and server" are easier to undstand with examples. In brief, GraphQL: Provides a single endpoint that responds to queries. No need to create multiple endpoints...

Thursday, June 21, 2018 | node.js | Read More

Node-oracledb 2.3 with Continuous Query Notifications is on npm

Release announcement: Node-oracledb 2.3.0, the Node.js module for accessing Oracle Database, is on npm. Top features: Continuous Query Notifications. Heterogeneous Connection Pools.     Our 2.x release series continues with some interesting improvements: Node-oracledb 2.3 is now available for your pleasure. Binaries for the usual platforms are available for Node.js 6, 8, and 10; source code is available on GitHub. We are not planning on releasing binaries for Node.js 4 or 9 due...

Friday, June 8, 2018 | node.js | Read More

ODPI-C 2.4 has been released

Release 2.4 of Oracle Database Programming Interface for C (ODPI-C) is now available on GitHub. ODPI-C is an open source library of C code that simplifies access to Oracle Database for applications written in C or C++. Top features: Better database notification support. New pool timeout support.   I'll keep this brief. See the Release Notes for all changes. Support for Oracle Continuous Query Notification and Advanced Queuing notifications was improved. Notably replacement...

Wednesday, June 6, 2018 | General | Read More

Demo: Oracle Database Continuous Query Notification in Node.js

Native Oracle Database Continuous Query Notification (CQN) code has landed in the node-oracledb master branch on GitHub. If you want to play with it, but don't want to wait for the next binary node-oracledb release, you can compile node-oracledb yourself and play with this demo. [Update: node-oracledb 2.3 has been released and binaries are now available.]     Some of you may already be using CQN via its PL/SQL APIs. The new, native support in node-oracledb makes it all so much...

Saturday, June 2, 2018 | node.js | Read More

Python and cx_Oracle RPMs are available from yum.oracle.com

This is worth cross posting: Getting Started with Python Development on Oracle Linux Our Oracle Linux group has made Python and cx_Oracle RPMs available for a while. They recently launched a new landing page with nice, clear instructions on how to install various versions of Python, and how to install the cx_Oracle interface for Oracle Database. Check the link above.

Wednesday, May 30, 2018 | python | Read More

A node-oracledb Web Service in Docker

This post shows how to run a node-oracledb application in a Docker Container. For bonus points, the application connects to an Oracle Database running in a second container. The steps are the 'show notes' from a recent talk at Oracle Code. The demo app is a simple Express web service that accepts REST calls.   DOCKER Oracle Docker images are available from https://store.docker.com/ and also mirrored on https://container-registry.oracle.com If you're not familiar with Docker, it...

Thursday, May 17, 2018 | node.js | Read More

Efficient and Scalable Batch Statement Execution in Python cx_Oracle

    Today's guest post is by Oracle's Anthony Tuininga, creator and lead maintainer of cx_Oracle, the extremely popular Oracle Database interface for Python.       Introduction This article shows how batch statement execution in the Python cx_Oracle interface for Oracle Database can significantly improve performance and make working with large data sets easy. In many cx_Oracle applications, executing SQL and PL/SQL statements using the method cursor.execute() is perfect. But if you...

Friday, April 27, 2018 | python | Read More

Python cx_Oracle 6.3 Supports DML RETURNING for Batch Statement Execution

cx_Oracle 6.3, the extremely popular Oracle Database interface for Python, is now Production on PyPI. cx_Oracle is an open source package that covers the Python Database API specification with many additions to support Oracle advanced features. Top Feature: Cursor.executemany() support for OUT bind variables in DML RETURNING statements.   This release contains a number of bug fixes and useful improvements. For the full list, see the Release Notes, but I wanted to highlight a few...

Friday, April 27, 2018 | python | Read More

ODPI-C 2.3.1 is now on GitHub

Release 2.3.1 of Oracle Database Programming Interface for C (ODPI-C) is now available on GitHub.  ODPI-C is an open source library of C code that simplifies access to Oracle Database for applications written in C or C++.     Today a minor patch update release of ODPI-C was pushed to GitHub. Check the Release Notes for details on the handful of fixes that landed. ODPI-C References Home page: https://oracle.github.io/odpi/ Code: https://github.com/oracle/odpi Documentation: https://ora...

Wednesday, April 25, 2018 | General | Read More

ODPI-C 2.3 is now on GitHub

Release 2.3 of Oracle Database Programming Interface for C (ODPI-C) is now available on GitHub.  ODPI-C is an open source library of C code that simplifies access to Oracle Database for applications written in C or C++. Top features: Improve Batch Statement Execution   ODPI-C 2.3 improves support for Batch Statement execution with dpiStmt_executeMany(). To support DML RETURNING producing multiple rows for each iteration, a new function dpiVar_getReturnedData() was added,...

Tuesday, April 3, 2018 | General | Read More

Node-oracledb 2.2 with Batch Statement Execution (and more) is out on npm

Release announcement: Node-oracledb 2.2, the Node.js module for accessing Oracle Database, is on npm. Top features: Batch Statement Execution In the six-or-so weeks since 2.1 was released, a bunch of new functionality landed in node-oracledb 2.2. This shows how much engineering went into the refactored lower abstraction layer we introduced in 2.0, just to make it easy to expose Oracle features to languages like Node.js. The top features in node-oracledb 2.2 are: Added oracledb.edi...

Monday, April 2, 2018 | node.js | Read More

Python cx_Oracle questions? Ask us live online at March 13 at 20:00-20:30 UTC

Join me, @AnthonyTuininga, and @OraBlaineOS for the first Python and cx_Oracle monthly 'Office Hours' session tomorrow, March 13 at 20:00-20:30 UTC. The theme for this month is 'Connections' but we're open to any other cx_Oracle questions. Join the video feed or go audio-only. All the details are on the Python and Oracle Database Office Hours page.  

Monday, March 12, 2018 | Read More

Python cx_Oracle 6.2 is out on PyPI

cx_Oracle 6.2, the extremely popular Oracle Database interface for Python, is now Production on PyPI. cx_Oracle is an open source package that covers the Python Database API specification with many additions to support Oracle advanced features. This release: Adds support for creating temporary CLOBs, BLOBs or NCLOBs via a new method Connection.createlob(). Adds support for binding a LOB value directly to a cursor. Adds support for closing the connection when reaching the end of a...

Tuesday, March 6, 2018 | python | Read More

ODPI-C 2.2 Release: Powering Oracle Database Access

ODPI-C 2.2.1 has been tagged for release. Oracle Database Programming Interface for C (ODPI-C) is an open source library of C code that simplifies the use of common Oracle Call Interface (OCI) features for Oracle Database drivers and user applications. The ODPI-C project is open source and maintained by Oracle Corp. ODPI-C is used as a data access layer in drivers for Node.js, Python, Ruby, Go, Rust, Haskell and more. Changes in ODPI-C 2.2 from 2.1 include: Open statements and...

Monday, March 5, 2018 | General | Read More

Installing the Oracle ODBC Driver on macOS

A bonus for today is a guest post by my colleague Senthil Dhamotharan. He shares the steps to install the Oracle Instant Client ODBC driver and the unixODBC Driver Manager on macOS. ODBC is an open specification for accessing databases. The Oracle ODBC driver for Oracle Database enables ODBC applications to connect to Oracle Database. In addition to standard ODBC functions, users can leverage Oracle specific features for high performance data access. Install the unixODBC...

Friday, February 23, 2018 | General | Read More

Installing XAMPP on Windows for PHP and Oracle Database

Today's guest post comes from Tianfang Yang who's been working with the Oracle Database extensions for PHP. This post shows how to install XAMPP on Windows to run PHP applications that connect to a remote Oracle Database. XAMPP is an open source package that contains Apache, PHP and many PHP 'extensions'. One of these extension is PHP OCI8 which connects to Oracle Database. To install XAMPP: Download "XAMPP for Windows" and follow the installer wizard. I installed into my D:...

Friday, February 23, 2018 | php | Read More

node-oracledb 2.1 is now available from npm

Release announcement: Node-oracledb 2.1.0, the Node.js module for accessing Oracle Database, is on npm. Top features: Privileged connections such as SYSDBA. A new 'queryStream()' Stream 'destroy()' method After the big refactoring of node-oracledb 2.0, we're pleased to push node-oracledb forward with the release of 2.1.0.   Changes in node-oracledb 2.1.0 include: Support for SYSDBA, SYSOPER, SYSASM, SYSBACKUP, SYSDG, SYSKM, and SYSRAC privileges in standalone connections. You can...

Wednesday, February 14, 2018 | node.js | Read More

PHP and Oracle DB: RPMs for Easy Install on Linux

The Oracle Linux team is now making updated PHP RPMs available on yum.oracle.com.  The good news: an RPM for the PHP OCI8 extension is included.  Yay!  My colleague, Sergio, has a blog post Connect PHP 7.2 to Oracle Database 12c using Oracle Linux Yum Server with the details.

Wednesday, February 7, 2018 | php | Read More

Node-oracledb v2 Query Methods and Fetch Tuning

  For our Node.js node-oracledb v2 add-on for Oracle Database we revamped its lower data access layer and made it into a standalone project ODPI-C, which is being reused by several other language APIs. ODPI-C gave us a reason and opportunity to simplify some of internal query handling code in node-oracledb. To recap, node-oracledb has four ways to execute queries against an Oracle Database. These are the same in version 1 and version 2: Direct Fetches - these are non-ResultSet,...

Thursday, December 14, 2017 | node.js | Read More

node-oracledb 2.0 with pre-built binaries is on npm

Release announcement: Node-oracledb 2.0.15, the Node.js add-on for Oracle Database, is now on npm for general use. Top features: Pre-built binaries, Query fetch improvements It's time to shake things up. Node-oracledb version 1 has been stable for a while. Our tight, hard working team is now proud to deliver node-oracledb 2 to you. With improvements throughout the code and documentation, this release is looking great. There are now over 3000 functional tests, as well as solid...

Thursday, December 14, 2017 | node.js | Read More

cx_Oracle 6.1 with Oracle Database Sharding Support is now Production on PyPI

cx_Oracle 6.1, the extremely popular Oracle Database interface for Python, is now Production on PyPI. cx_Oracle is an open source package that covers the Python Database API specification with many additions to support Oracle advanced features. In the words of the creator and maintainer, Anthony Tuininga: The cx_Oracle 6.1 release has a number of enhancements building upon the release of 6.0 made a few months ago. Topping the list is support for accessing sharded databases via...

Tuesday, December 12, 2017 | python | Read More

ODPI-C 2.1 is now available for all your Oracle Database Access Needs

ODPI-C Anthony Tuininga has just released version 2.1 of the Oracle Database Programming Interface for C (ODPI-C) on GitHub. ODPI-C is an open source library of C code that simplifies access to Oracle Database for applications written in C or C++. Key new feature: support for accessing sharded databases.   In the words of Anthony: This release has a number of small enhancements intended to build upon the release of 2.0 made a few months ago. Topping the list is support for...

Tuesday, December 12, 2017 | General | Read More

Oracle Instant Client 12.2 for macOS is Available

Oracle Instant Client 12.2 for macOS can now be downloaded for free from OTN. This release is for 64 bit only. It supports: MAC OS X 10.13, High Sierra MAC OS X 10.12, Sierra MAC OS X 10.11, El-Capitan Install instructions are at the end of the download page. Instant Client contains libraries and tools allowing applications to connect to a local or remote Oracle Database for development and production deployment. And if you haven't caught up with the news, Instant Client 12.2 now...

Thursday, October 26, 2017 | General | Read More

Python cx_Oracle RPMs for Oracle Linux 6 and Oracle Linux 7

The Oracle Linux group is starting to roll out RPMs for language interfaces like Python cx_Oracle.  Check out their blog posts on the available cx_Oracle RPMs:  cx_Oracle RPMs have landed on Oracle Linux Yum Server Using cx_Oracle With Software Collection Library and What Those Different Versions Are For Ruby-oci8 is also available for OL6 and OL7; more on that later.  

Friday, September 29, 2017 | Read More

What's on at Oracle OpenWorld for Developers using Python, Node.js, PHP, R, C and C++

The Oracle OpenWorld in San Francisco is approaching and it's time to plan your schedule.  The sessions that I'm tracking are all listed on the official schedule page Application Development with Node.js, Python, PHP, R, C and C++. Bookmark that link! And make sure to visit our Demo booth ("SOA-042") in Moscone West.   Conference Sessions Oracle Net Services 12c: Best Practices for Database Performance and Scalability [CON6718]Monday, Oct 02, 4:45 p.m. - 5:30 p.m. | Moscone...

Tuesday, September 26, 2017 | General | Read More

Ruby and Ruby on Rails Recognized by Oracle Technology Network

I'm really pleased that two key contributors to the Ruby and Ruby on Rails communities for Oracle Database have been honored. Takehiro Kubo and Yasuo Honda have both become Oracle ACEs. The Oracle Technology Network's Oracle ACE program describes itself as recognizing Oracle evangelists and enthusiasts. Both Takehiro and Yasuo fit this description exactly. To me, Takehiro Kubo is most visible in his work on the ruby-oci8 gem. Ruby-oci8 is a Ruby interface for Oracle Database....

Wednesday, August 30, 2017 | General | Read More

Oracle Instant Client 12.2 now has SQL*Loader and Data Pump

This is a guest post by Jim Stenoish, Senior Director of Software Development, whose products include all tools used for the high speed movement, transformation, and loading of data and metadata for Oracle Database. Oracle Instant Client 12.2 now includes SQL*Loader as well as the Data Pump command line utilities expdp and impdp, and the traditional Export/Import utilities exp and imp.Previously, these tools were only available with a 'full' client installation, or in a...

Tuesday, August 22, 2017 | General | Read More

PHP OCI8 2.1.7 for Oracle Database is now on PECL

PHP 7 compatible OCI8 2.1.7 for Oracle Database is now on PECL. This version of OCI8 will also be bundled in PHP 7.0.23 and PHP 7.1.9 (and is already in PHP 7.2.0beta2). Older PHP 7 installations can be brought up to date using the PECL bundle. The highlight of this release is Transparent Application Failover (TAF) callback support: In a configured Oracle Database system, TAF occurs when the PHP application detects that the database instance is down or unreachable. It...

Tuesday, August 15, 2017 | php | Read More

Python cx_Oracle 6 Production Release: Hitting A Six

cx_Oracle 6.0, the extremely popular Oracle Database interface for Python, is now Production on PyPI. cx_Oracle is an open source package that covers the Python Database API specification with many additions to support Oracle advanced features. It was begun by Anthony Tuininga in 1998 in the era of Oracle Database 8i and Python 1.5. Since then there have been over 30 releases covering up to Oracle Database 12c and Python 3. Anthony joined Oracle relatively recently. In his time...

Monday, August 14, 2017 | python | Read More

Open Source Library Drives Powerful Oracle Database Applications

ODPI-C The production release of Oracle Database Programming Interface for C (ODPI-C) is now available on GitHub.  ODPI-C is an open source library of C code that simplifies access to Oracle Database for applications written in C or C++.   ODPI-C: exposes a C API in a readily consumable way to C and C++ developers writing applications for Oracle Database. is aimed at language interfaces and applications where speed of development is important, and where special-case Oracle...

Monday, August 14, 2017 | General | Read More

Python cx_Oracle 6.0 RC 2 is on PyPI

Python cx_Oracle is the Python interface for Oracle Database Anthony Tuininga has released the second (and probably final) Release Candidate of Python cx_Oracle 6.0 on PyPI. It's now full steam ahead towards the production release, so keep on testing. Issues can be reported on GitHub or the mailing list. To take a look, use the '--pre' option to pip to install this pre-release: python -m pip install cx_Oracle --upgrade --pre You will also need Oracle client libraries, such as...

Monday, July 24, 2017 | General | Read More

ODPI-C 2.0.0 RC2 is released on GitHub

ODPI-C 2.0.0 Release Candidate 2 is now available on GitHub. What is ODPI-C? It is an open source library of C code that simplifies the use of common Oracle Call Interface (OCI) features for Oracle Database drivers and user applications. It sits on top of OCI and requires Oracle client libraries. The 2.0.0 RC2 release notes are here. Along with bug fixes, you can see some defensive coding improvements, and some error message tweaks to help improve the user experience. These may...

Thursday, July 20, 2017 | General | Read More

Ever Evolving SQL*Plus 12.2.0.1 Adds New Performance Features

This is a guest post by Luan Nim, Senior Development Manager at Oracle. SQL*Plus 12.2.0.1 has introduced a number of features to improve the performance and ease of use in general. These features can be enabled with SET commands, or via the command line. New Oracle SQL*Plus 12.2.0.1 features include: SET MARKUP CSV This option lets you generate output in CSV format. It also lets you choose the delimiter character to use and enable quotes ON or OFF around data. The benefit of...

Wednesday, July 12, 2017 | General | Read More

Updated PHP 7.2 PDO_OCI install 'configure' syntax

Frank Yang at Oracle has updated the PHP 7.2 'configure' option for PDO_OCI and added some of the heuristics previously only in the PHP OCI8 extension configure option. This has allowed the two extension option syntaxes to be aligned. PDO_OCI is PHP's PDO driver for Oracle Database. PHP 7.2 is in Alpha status. In common with most other database PDO drivers, the PDO_OCI driver is part of the PHP bundle and is not on PECL. The new PHP 7.2 PDO_OCI 'configure' syntax is like: --with-...

Monday, July 3, 2017 | php | Read More

Node-oracledb 2.0.13-Development is now on GitHub

Node-oracledb 2.0.13-Development is now on GitHub. Node-oracledb is the Node.js interface for Oracle Database. Top features: Version 2 is based on the new ODPI-C abstraction layer. Additional data type support. The full Changelog is here. The node-oracledb 2.0.13-Development documentation is here. I'd recommend testing and reporting any issues as early as possible during the 2.0 Development release cycle. This is a development release so we are aware of some rough edges....

Monday, June 19, 2017 | node.js | Read More

Python cx_Oracle 6.0 RC 1 is now on PyPI

Release Candidate 1 of Python cx_Oracle 6.0 in now on PyPI. Test now and report any feedback. Python cx_Oracle is the Python Instant for Oracle Database. Version 6 is based on the new ODPI-C abstraction layer, which is now also in Release Candidate phase. This layer has allowed cx_Oracle code itself to be greatly simplified. There are a few small tweaks in cx_Oracle RC1 since the final Beta. Read about them in the Release Notes. A couple of the changes are that the...

Monday, June 19, 2017 | python | Read More

ODPI-C 2.0.0 RC1 released on GitHub

The ODPI-C 2.0 abstraction layer for Oracle Database applications has just entered Release Candidate phase. You know what this means - it's seriously time you should do some testing and report any issues. What is it? ODPI-C is an open source library of C code that simplifies the use of common Oracle Call Interface (OCI) features for Oracle Database drivers and user applications. It sits on top of OCI and requires Oracle client libraries. Download ODPI-C from here. Documentation...

Monday, June 19, 2017 | General | Read More

Python cx_Oracle 6.0b2 is available

Python cx_Oracle 6.0b2 has been released to GitHub and PyPI. Anthony Tuininga has released Python cx_Oracle 6.0b2 with (surprise, surprise) some improvements and fixes. You can install it from PyPI by using: python -m pip install cx_Oracle --pre Without the "--pre" option you will get the current production version cx_Oracle 5.3 instead. If you are upgrading a previous cx_Oracle installation use: python -m pip install cx_Oracle --upgrade --pre The full Release Notes list all...

Wednesday, May 24, 2017 | python | Read More

ODPI-C 2.0.0-beta.4 released: More & Better-er

ODPI-C 2.0.0-beta.4 has been released to GitHub. ODPI-C is an abstraction layer for Oracle Call Interface OCI. This release has incremental improvements, based on user feedback and as a result of continued testing. There was some discussion around best practice number handling, and how to make use of ODPI-C 'variable' structures without requiring a DB connection. These have resulted in a few tweaks. See the release notes for all changes. The highlights in this release are: Adde...

Wednesday, May 24, 2017 | General | Read More

Heading to Tokyo

It's all set and I'm ready to go.  I'll be speaking on Python and Oracle Database at the Oracle Code Conference in Tokyo this week.  My abstract is "The past year has been big for the Python cx_Oracle driver. In this session see how existing and new features of the cx_Oracle API for Oracle Database can be used to build functional, high-performance apps that make best use of database functionality and resources." After a proposed vacation to Japan this year had to be postponed,...

Monday, May 15, 2017 | python | Read More

Whoa! Release News for PHP OCI8, node-oracledb, Python cx_Oracle, Instant Client and ODPI-C

I'm just catching up on some releases that happened prior/during my vacation. Here are some things you may have missed tweets on: PHP OCI8 2.1.4 for PHP 7 was released to PECL. This version corresponds to the OCI8 code in PHP 7.0.18 and 7.1.4. If you are on earlier versions, you should upgrade to avoid an uninitialized memory issue, which is bound to cause random things when you least want them. Node-oracledb 1.13.1 was released, fixing a regression binding NULL to...

Wednesday, May 10, 2017 | General | Read More

Scripting Languages and Oracle Database Cloud: How To Do it

Oracle Cloud is a great fit for your application deployment.  Say no more! I've just published some how-to's on using scripting languages like Node.js, Python, PHP, R and Ruby with Oracle Database Cloud and with the PaaS "Oracle Database Express Cloud Service".  You can use any of the mentioned languages, use other OCI or OCCI-based languages, or take advantage of the Application Container Cloud Service to deploy of Node.js and PHP applications: Using On-Premise Scripting...

Friday, May 5, 2017 | General | Read More

Welcome to the new OPAL look & feel

Welcome to the new look & feel of blogs.oracle.com/opal As you can probably guess, this is really just a test post!

Wednesday, May 3, 2017 | General | Read More

Oracle blogging platform infrastructure change; normal transmission will resume shortly

The software driving blogs.oracle.com is undergoing a huge upgrade. There are spreadsheets of detailed plans and dates and training videos floating around. Yay! I'll refrain from posting over the next couple of weeks until the content freeze is finished and my cutover is complete. My 'opal' URL will remain the same. New followers may not know the history behind the name. This blog was started when I was in the Linux group working solely on PHP. The OPAL acronym stood...

Thursday, April 13, 2017 | General | Read More

ODPI-C 2.0.0 Beta 2 is out with runtime client linking

Anthony Tuininga just released ODPI-C 2.0.0-beta.2 on GitHub. The release notes list all changes. ODPI-C is an open source library of C code that simplifies the use of common Oracle Call Interface (OCI) features for Oracle Database drivers and user applications. It sits on top of OCI and requires Oracle client libraries. The big change in this release is the addition of runtime dynamic linking of the Oracle client libraries. It was initiated by a comment from Vincent Rogier,...

Tuesday, March 28, 2017 | General | Read More

Node-oracledb 1.13.0 is available on npm

Node-oracledb 1.13.0, the Node.js add-on for Oracle Database, is on npm. Top node-oracledb feature: a fetchAsBuffer mode for fetching BLOBs. A side note: Oracle Database 12.2 is also here! And Oracle Instant Client 12.2 is available too. Node-oracledb works with 12.2 client libraries (as well as 11.2 and 12.1). With 12.2 client, you can connect to 11.2, 12.1 and 12.2 databases, using Oracle's cross version interoperability which allows Oracle clients to connect to older (or...

Thursday, March 16, 2017 | node.js | Read More

Python cx_Oracle 5.3 for Oracle Database Released

Today we are pleased to announce the release of cx_Oracle 5.3, the extremely popular Python interface for Oracle Database. Binary and source bundles can be installed from PyPi, as normal. cx_Oracle 5.3 works with Python version 2.7, and with versions 3.4 and higher. You can use cx_Oracle with Oracle 11.2, 12.1 and 12.2 client libraries, allowing connection to multiple Oracle Database versions. Oracle's standard client-server version interoperability allows connection to both...

Friday, March 10, 2017 | python | Read More

node-oracledb Session at DeveloperWeek, San Francisco 2017

I just finished my session on node-oracledb at DeveloperWeek on Pier 27 in sunny, fantastic San Francisco. I'm in my old neighborhood, enjoying a familar view of the Bay Bridge from the speaker room window. There is a big hum around me from sessions and demo booths as developers are networking and learning. If you missed my session you can check out the slides. (They should be available for a month or so). I've added some slides that didn't fit into the 40 minute session, but...

Tuesday, February 14, 2017 | node.js | Read More

New Product Launch: Oracle Database Programming Interface for C (ODPI-C)

Today Oracle released a great new GitHub project - Oracle Database Programming Interface for C. It sits on top of OCI and offers an alternative programming experience. ODPI-C is a C library that simplifies the use of common Oracle Call Interface (OCI) features for Oracle Database drivers and user applications. ODPI-C Goal ODPI-C's goal is to expose common OCI functionality in a readily consumable way to the C or C++ developer. OCI's API is extremely flexible and is highly efficient. It gives a lot of fine-grained control to the developer and has a very wide range of use cases. ODPI-C is also flexible but is aimed primarily at language driver creators. These creators are programming within the confines of a scripting language's type system and semantics. The languages often expose simplified data access to users through cross-platform, 'common-denominator' APIs. Therefore it makes sense for ODPI-C to provide easy to use functionality for common data access, while still allowing the power of Oracle Database to be used. Of course ODPI-C isn't just restricted to driver usage. If ODPI-C has the functionality you need for accessing Oracle Database, you can add it to your own custom projects. ODPI-C is a refactored and greatly enhanced version of the "DPI" data access layer used in our very successful node-oracledb driver. Releasing ODPI-C as a new, standalone project means its code can be consumed and reused more easily. For database drivers it allows Oracle features to be exposed more rapidly and in a consistent way. This will allow greater cross-language driver feature compatibility, which is always useful in today's multi-language world. ODPI-C Features Oracle's Anthony Tuininga has been leading the ODPI-C effort, making full use of his extensive driver knowledge as creator and maintainer of the extremely popular, and full featured, Python cx_Oracle driver. The ODPI-C feature list currently includes all the normal calls you'd expect to manage connections and to execute SQL and PL/SQL efficiently. It also has such gems as SQL and PL/SQL object support, scrollable cursors, Advanced Queuing, and Continuous Query Notification. The full list in this initial Beta release, in no particular order, is: 11.2, 12.1 and 12.2 Oracle Client support SQL and PL/SQL execution REF cursors Large objects (CLOB, NCLOB, BLOB, BFILE) Timestamps (naive, with time zone, with local time zone) JSON objects PL/SQL arrays (index-by integer tables) Objects (types in SQL, records in PL/SQL) Array fetch Array bind/execute Array DML Row Counts Standalone connections Connections via Session pools (homogeneous and non-homogeneous) Session Tagging in session pools Database Resident Connection Pooling (DRCP) Connection Validation (when acquired from session pool or DRCP) Proxy authentication External authentication Statement caching (with tagging) Scrollable cursors DML RETURNING clause Privileged connection support (SYSDBA, SYSOPER, SYSASM, PRELIM_AUTH) Database Startup/Shutdown End-to-end tracing, mid-tier authentication and auditing (action, module, client identifier, client info, database operation) Batch Errors Query Result Caching Application Continuity (with some limitations) Query Metadata Password Change OCI Client Version and Server Version Implicit Result Sets Continuous Query Notification Advanced Queuing Edition Based Redefinition Two Phase Commit In case you want to access other OCI calls without having to modify ODPI-C code, there is a call to get the underlying OCI service context handle. ODPI-C applications can make full advantage of OCI features which don't require API access, such as the oraaccess.xml configuration for enabling statement cache auto-tuning. Similarly, Oracle Database features controlled by SQL and PL/SQL, such as partitioning, can be used in applications, as you would expect. Communication to the database is handled by Oracle Net, so features such as encrypted communication and LDAP can be configured. ODPI-C's API makes memory and resource management simpler, particularly for 'binding' and 'defining'. A reference counting mechanism adds resiliency by stopping applications destroying in-use OCI resources. To offer an alternative programming experience from OCI, the ODPI-C API uses a multiple getter/setter model for handling attributes. Using ODPI-C ODPI-C is released as source-code on GitHub. The code makes OCI calls and so requires an Oracle client, which must be installed separately. Version 11.2 or later of the client is required. This allows applications to connect to Oracle Database 9.2 or later. The free Oracle Instant Client is the standard way to obtain standalone Oracle client libraries and header files. The project is licensed under the Apache 2.0 and/or the Oracle UPL licenses, so the code is readily available for adoption into your own projects. ODPI-C code can be included in your C or C++ applications and compiled like any OCI application. Or if you want to use ODPI-C as a shared library, a sample Makefile for building on Linux, OS X and Windows is provided Support for ODPI-C is via logging GitHub Issues only - but this does have the advantage of giving you direct access to ODPI-C developers. Also remember the underlying OCI libraries (which do all the hard work) are extremely widely used, tested and supported. If you want to do more than view the code, you can build ODPI-C as a library using the sample Makefile, and then build the current standalone sample programs. These show a number of ODPI-C features. ODPI-C Plans The ODPI-C release today is 2.0.0-beta.1, indicating we're happy with the general design but want to get your wider review. We also need to complete some testing and add some polish. We aim to stabilize ODPI-C relatively quickly and then continue adding functionality, such as support for the new Oracle Database 12.2 Sharding feature. Future Node.js node-oracledb and Python cx_Oracle drivers will use ODPI-C. There is active work on these updates. I know Kubo Takehiro, who does a fantastic job maintaining the ruby-oci8 driver, has been keen to see what ODPI-C can do for his driver. I look forward to seeing how he uses it. I think you'll be pleased with the direction and plans for scripting languages in 2017. We really welcome your feedback on this big step forward. ODPI-C References Home page is: https://oracle.github.io/odpi/ Code is at https://github.com/oracle/odpi Documentation is at https://oracle.github.io/odpi/doc/index.html Issues and comments are be reported at https://github.com/oracle/odpi/issues

Tuesday, January 31, 2017 | General | Read More

node-oracledb 1.12: Working with LOBs as String and Buffer. Connection Pinging.

Node-oracledb 1.12, the Node.js add-on for Oracle Database, is now on NPM. Top features: LOBs as JavaScript Strings and Buffers. Pool connection 'aliveness' checking. The two main features of node-oracledb 1.12 add functionality that aids usability. You may not even notice one working in the background, silently re-establishing pooled connections after network outages. The other is a 'no brainer' that makes working with large objects (LOBs) easier. You'll probably use it and...

Wednesday, December 21, 2016 | node.js | Read More

node-oracledb 1.12.1-dev can fetch CLOBs as JavaScript String

A preview of node-oracledb 1.12.1-dev is available on GitHub and can be installed with: npm install oracle/node-oracledb.git#v1.12.1-dev Node-oracledb is the Node.js add-on for Oracle Database. The 1.12.1-dev release introduces fetchAsStringsupport for CLOBs. Now, when CLOB columns are queried, they can be returned directly as JavaScript Strings, without the need to use Streams. To test this in the dev release make sure node-oracledb is linked with Oracle 12c client...

Monday, December 19, 2016 | node.js | Read More

node-oracledb 1.12.0-dev available for preview

A preview of node-oracledb 1.12.0-dev is available on GitHub and can be installed with: npm install oracle/node-oracledb.git#v1.12.0-dev Node-oracledb is the Node.js add-on for Oracle Database. The key things to look at are all the LOB enhancements - we want feedback. There are a couple more LOB enhancements we want to make before we go production, but I know you'll like the direction. Drop us a line via GitHub or email with your comments. This release also has a connection...

Monday, December 5, 2016 | node.js | Read More

Fast Generation of CSV and JSON from Oracle Database

Want a fast way to spool CSV or JSON from Oracle Database? Check out the new SQL*Plus 12.2 SET MARKUP CSV option and the new Oracle Database 12.2 JSON_OBJECT operator. You can try Oracle Database 12.2 now using Oracle Cloud Database Service. Fast, Easy CSV with SQL*Plus and Oracle Database First, let's see CSV ("comma separated values") output in SQL*Plus 12.2. Start with this script, t.sql: set feedback off select department_id, department_name from departments where...

Thursday, November 10, 2016 | General | Read More

Application Development at Oracle OpenWorld, San Francisco, September 2016

Well, there is certainly a lot going on at Oracle OpenWorld this September. You can browse the session catalog for interesting talks. Update If you need just one link, use our "Focus on Document" to guide your session choice. Here are a few highlights in my area: Python and Oracle Database: Tips, Tricks, and the Best New Features [CON6543] Room: Park Central - Concordia Monday 19th September, 03:00pm - 03:45pm Best Practices for Application Performance and...

Thursday, August 25, 2016 | General | Read More

Node-oracledb 1.11 Released to NPM

We've pushed out a release of node-oracledb to GitHub and NPM. Top feature: Connection Pool Cache The node-oracledb driver connects Node.js to Oracle Database for fast and functional applications. The changes in node-oracledb 1.11 are: Added a connection pool cache feature allowing pools to be given a string alias at creation. This makes pools easier to use. Pools are typically created in one file and later used in other files. Giving a pool a string alias allows these other...

Friday, August 19, 2016 | node.js | Read More

PHP OCI8 2.1.2 and OCI8 2.0.12 released on PECL

PHP OCI8 2.1.2 (for PHP 7) and OCI8 2.0.12 (for PHP 5.2+) have been uploaded to PECL. The OCI8 extension allows PHP applications to connect to Oracle Database. Use pecl install oci8 to install PHP OCI8 2.1 for PHP 7. Use pecl install oci8-2.0.12 to install PHP OCI8 2.0 for PHP 5.2 - PHP 5.6. Note: PHP 5.6 is the oldest release which the PHP community is maintaining. As well as being available from PECL, PHP OCI8 is also included in the base PHP bundles. OCI8 2.0.12 will be...

Friday, August 19, 2016 | php | Read More

Node-oracledb 1.10.1 Released to NPM

We've pushed out a patch release of node-oracledb to GitHub and NPM. It has a bind fix that didn't land in time for 1.10.0. A memory leak regression with REF CURSORs was also fixed, as was a pre-existing memory leak in the unexpected case of a REF CURSOR failure. The changes in node-oracledb 1.10.1 are: Fixed a bug that prevented a null value being passed from JavaScript into an IN OUT bind. Fixed a memory leak introduced in 1.10 with REF CURSORs. Fixed an existing memory leak...

Thursday, July 21, 2016 | node.js | Read More

Node-oracledb 1.10 has Enhanced Metadata

Top feature: Enhanced Metadata The changes in node-oracledb 1.10 are: Enhanced query metadata thanks to a Pull Request from Leonardo. He kindly allowed us to take over and fine tune the implementation. Additional metadata for query and REF CURSOR columns is available in the metaData object when the new boolean oracledb.extendedMetaData attribute or corresponding execute() option attribute extendedMetaData are true. For example, if the DEPARTMENTS table is like: SQL> desc...

Friday, July 8, 2016 | node.js | Read More

Using Oracle on OS X? Instant Client 12.1 is here

Oracle Instant Client 12.1 for OS X was just released and is now available for free download from OTN for 32-bit and 64-bit applications. Update: the bundles were re-released 14 June 2016 with a connectivity fix. Instant Client provides libraries and tools for connecting to Oracle Database. Among other uses, languages such as C, Python, PHP, Ruby, Perl and Node.js can use Instant Client for database connectivity. In addition to having Oracle 12.1 client features like...

Sunday, May 29, 2016 | General | Read More

Node-oracledb 1.9.1 with Promises and Node 6 Support is on NPM

Top features: Promise support. Node 6 support. The new node-oracledb 1.9.1 release adds Promise support, it now supports the new Node 6 (as well as previous releases), and it has some welcome stability fixes. Other nice goodies are mentioned below. Thanks to everyone who gave feedback on our 1.9.0 development branch - we couldn't have done it without you. node-oracledb 1.9.1 is now available on NPM. Installation instructions are here. Documentation is here. The changes in...

Wednesday, May 18, 2016 | node.js | Read More

Emoji? Look at the Oracle New Gen Developers

Forget emoji, look at the Oracle New Gen Developers!

Friday, May 13, 2016 | php | Read More

Getting a C++11 compiler for Node 4, 5 and 6 on Oracle Linux 6

A newer compiler is needed on Oracle Linux 6 when you want to use add-ons like node-oracledb with Node 4 or later. This is because add-ons for those versions need to be built with a C++11 compatibile compiler. The default compiler on OL 6 doesn't have this support. OL 7 does have such a compiler, so these instructions are not needed for that version. For OL 6 the easist way to get a new compiler is from the Software Collection Library (SCL). You enable the software collection...

Monday, May 2, 2016 | node.js | Read More

node-oracledb 1.9.0-Dev Branch with Promises is on GitHub

Top features: Promise support node-oracledb 1.9.0-Development is now available only as a development-only branch on GitHub. It adds Promise support and some other goodies mentioned below. The plan is to incorporate any user feedback, stabilize the features, improve documentation, improve test covereage, and run stress tests. Once this is all done, then a production release to npm will be made. Personally I think this will take 2-4 weeks, but it is totally dependent on what...

Tuesday, April 19, 2016 | node.js | Read More

PHP OCI8 2.0.11 and 2.1.1 are available on PECL

I've released PHP OCI8 2.0.11 (for supported PHP 5.x versions) and 2.1.1 (for PHP 7) to PECL. Windows DLLs on PECL been built by the PHP release team. The updated OCI8 code has also been merged to the PHP source branches and should land in the future PHP 5.6.21 and PHP 7.0.7 source bundles, respectively. PHP OCI8 2.1.1 fixes a bug triggered by using oci_fetch_all() with a query having more than eight columns. To install on PHP 7 via PECL, use pecl install oci8 PHP OCI8 2.0.11...

Monday, April 18, 2016 | php | Read More

Node-oracledb 1.8 has a streaming mode for queries (Node.js add-on for Oracle Database)

Node-oracledb 1.8.0, the Node.js add-on for Oracle Database, is on NPM. Top new changes: New Query Result Streaming. Use DRCP connect strings only with a connection pool. I want to start by saying thanks to all contributors past and current! It is the community that defines the product. Query Result Streaming Node Streams can now be used for queries after a pull request from Sagie Gur-Ari was merged. A new connection.queryStream() method returns a Readable Stream. Of course, if...

Thursday, March 24, 2016 | node.js | Read More

Using SQL*Plus Instant Client 11.2 on OS X El Capitan

The installation steps for using SQL*Plus 11.2 (Instant Client) and other OCI-based applications have necessarily changed since OS X El Capitan broke DYLD_LIBRARY_PATH. The updated instructions are given on the Instant Client Downloads for Mac OS X (Intel x86) page. Update: Instant Client 12.1 is out and installation is easier. Check out the above link for instructions Here are the 11.2 instructions repeated. The steps also work on earlier versions of OS X: Download the desired...

Thursday, March 3, 2016 | General | Read More

node-oracledb 1.7.0 has a connection pool queue (Node.js add-on for Oracle Database)

Node-oracledb 1.7.0, the Node.js add-on for Oracle Database, is on NPM. Top features: a new connection pool queue to make apps more resilient, and "Bind by position" syntax for PL/SQL Index-by array binds. This release has a couple of interesting changes as well as some small bind fixes. A few reported build warnings with some compilers were also squashed. Extended PL/SQL Index-by Array Bind Syntax To start with, a followup PR from @doberkofler completes his PL/SQL Index-by array...

Monday, February 29, 2016 | node.js | Read More

Node in the Cloud: Oracle DBaaS, App Container Cloud and node-oracle

The node-oracledb driver is pre-installed on the Oracle Application Container Cloud when you create a Node service! Yay! I've posted a video on deploying a Node application to the cloud and connecting to Oracle Database Cloud Service. (Blatent plug: subscribe to the YouTube channel!) The brief summary is that I developed a Node application in my local environment. I then created a database service, I zipped all the JavaScript files along with a manifest telling the...

Tuesday, February 9, 2016 | node.js | Read More

Node-oracledb: Avoiding "ORA-01000: maximum open cursors exceeded"

Developers starting out with Node have to get to grips with the 'different' programming style of JavaScript that seems to cause methods to be called when least expected! While you are still in the initial hacking-around-with-node-oracledb phase you may sometimes encounter the error ORA-01000: maximum open cursors exceeded. A cursor is "a handle for the session-specific private SQL area that holds a parsed SQL statement and other processing information" Here are things to do...

Friday, February 5, 2016 | node.js | Read More

node-oracledb 1.6.0 is on NPM (Node.js add-on for Oracle Database)

Node-oracledb 1.6.0, the Node.js add-on for Oracle Database, is on NPM. In this release a comprehensive pull request by Dieter Oberkofler adds support for binding PL/SQL Collection Associative Array (Index-by) types. Strings and numbers can now be bound and passed to and from PL/SQL blocks. Dieter tells us that nowadays he only gets to code for a hobby - keep it up Dieter! Using PL/SQL Associative Arrays can be a very efficient way of transferring database between an...

Saturday, January 30, 2016 | node.js | Read More

node-oracledb 1.5.0 is on NPM (Node.js add-on for Oracle Database)

Node-oracledb 1.5.0, the Node.js add-on for Oracle Database, is on NPM. A number of bugs have been squashed in this release. We now treat Oracle Database 'Success With Info' warnings as success. Thanks to Francisco Trevino for his pull request. After investigating and discussing, we decided for 1.5 to pick up the straightforward fix proposed. In a future release we will revisit allowing these warnings to be caught and handled. Extended rollback-on-connection-release with 11g...

Monday, December 21, 2015 | node.js | Read More

PHP 7 OCI8 2.1.0 available on PECL

I've released PHP 7 OCI8 2.1 on PECL and simultaneously made a patch release OCI8 2.0.10 which is compatible with PHP 5.2 - PHP 5.6. To install OCI8 for PHP 7 use: pecl install oci8 This installs OCI8 2.1 which, as I'm sure you can guess, had a lot of internal changes to make it compatible with the vastly changed internals of PHP 7. If you want to install OCI8 for PHP 5.2, 5.3, 5.4, or 5.6 use: pecl install oci8-2.0.10 Functionality in 2.0.10 and 2.1.0 is equivalent. They...

Saturday, December 12, 2015 | php | Read More

Major news: PHP 7.0.0 has been released

Congratulations to the PHP community - the whole community - on the release of PHP 7.0.0. Thanks also to the Oracle staff who have worked on the internal rewrite necessary to make the OCI8 and PDO_OCI extensions work with PHP 7's completely revamped Extension API. The Oracle Database OCI8 and PDO_OCI extensions are included in the PHP source distribution. The feature sets are unchanged. The equivalent standalone OCI8 package compatible with PHP 7 will be released as version 2.1...

Friday, December 4, 2015 | php | Read More

node-oracledb 1.4.0 supports Node 0.10, 0.12, 4.2 and 5 (Node.js add-on for Oracle Database)

Version 1.4 of node-oracledb, the add-on for Node.js that powers high performance Oracle Database applications, is available on NPM. Since the recent releases of Node 4 LTS and Node 5, after the reconciliation and merge of the io.js and Node.js forks, there has been strong interest in a compatible node-oracledb driver. This is now possible. Node-oracledb 1.4 works with Node.js 0.10, 0.12, 4.2, and 5.0. Thanks to everyone for their perseverance. The code change making this...

Tuesday, November 17, 2015 | node.js | Read More

Application Development with Node.js, Python, PHP, R, C, and C++ at OOW

The huge Oracle OpenWorld conference in San Francisco starts in a few days. We've put together some lists of sessions that we think app developers will be interested in. Application Development with Node.js, Python, PHP, R, C, and C++ .NET Development with Oracle Database Application Development for Oracle Database Development with a SQL focus These lists should help you work out a great schedule! Look out for the talks Enterprise App Development with Node.js, Python, and PHP...

Thursday, October 22, 2015 | General | Read More

Article on installing node-oracledb on Windows

OTN has posted a detailed article on Installing node-oracledb on Microsoft Windows by Bill Christo (@bchr02). Check it out! You may also be interested in the research Bill is doing into pre-creating binaries so you don't need to compile yourself: github.com/oracle/node-oracledb/issues/18.

Thursday, October 22, 2015 | node.js | Read More

node-oracledb 1.3.0 is on NPM (Node.js add-on for Oracle Database)

Version 1.3 of node-oracledb, the add-on for Node.js that powers high performance Oracle Database applications, is available on NPM We kept the changes minimal in this release for several reasons. It has two small enhancements and a few bug fixes. A new oracledb.oracleClientVersion attributes gives the version of the Oracle client libraries that node-oracledb is linked with. A connection.oracleServerVersion attribute gives the Oracle Database version used by the connection. These...

Thursday, October 15, 2015 | node.js | Read More

node-oracledb 1.2.0 is on NPM (Node.js add-on for Oracle Database)

Version 1.2 of node-oracledb, the add-on for Node.js that powers high performance Oracle Database applications, is available on NPM A lot of good changes have been made. Our thanks to Bruno Jouhier from Sage for his work on adding RAW support and for fixes for LOB stability. Thanks also go to Bill Christo for pushing us on some Installation topics - look out for his full article on Windows Installation that OTN will be publishing soon. An annotated list of the changesin this...

Friday, September 25, 2015 | node.js | Read More

node-oracledb 1.1.0 is on NPM (Node.js add-on for Oracle Database)

Version 1.1 of node-oracledb, the add-on for Node.js that powers high performance Oracle Database applications, is available on NPM This is a stabilization release, with one improvement to the behavior of the local connection pool. The add-on now checks whether pool.release() should automatically drop sessions from the connection pool. This is triggered by conditions where the connection is deemed to have become unusable. A subsequent pool.getConnection() will, of...

Thursday, September 3, 2015 | node.js | Read More

Using DBMS_OUTPUT with Node.js and node-oracledb

The DBMS_OUTPUT package is the standard way to "print" output from PL/SQL. The way DBMS_OUTPUT works is like a buffer. Your Node.js application code turns on DBMS_OUTPUT buffering, calls some PL/SQL code that puts text into the buffer, and then later fetches from that buffer. Note: any PL/SQL code that calls DBMS_OUTPUT runs to completion before any output is available to the user. Also, other database connections cannot access your buffer. A basic way to fetch DBMS_OUTPUT with...

Monday, August 31, 2015 | node.js | Read More

How to install node-oracledb on Windows

Bill Christo, one of our valued community members, has created a great YouTube video showing how to install node-oracledb on Windows. The official installation manual is also handy. See Node-oracledb Installation on Windows. Update: also see Bill's article on Installing node-oracledb on Microsoft Windows on OTN.

Monday, August 17, 2015 | node.js | Read More

Node-oracledb goes 1.0: The Node.js add-on for Oracle Database

Announcement Today Oracle released node-oracledb 1.0, the Node.js add-on to enable high performance Oracle Database applications. Node-oracledb is available from npmjs.com and GitHub. Each month or so, since our first code bundle was pushed to GitHub earlier this year, we released a node-oracledb update with new functionality. The adoption has been exciting, with important applications already in production. This is our eighth release of node-oracledb and promises to be our best...

Monday, August 17, 2015 | node.js | Read More

Installing node-oracledb on OS X with Oracle Instant Client 11.2.0.4

----> This note and script is obsolete. The current node-oracledb OS X install instructions contain nicer solutions <----- . I've been hacking an Apple OS X shell script to install node-oracledb. You tell it where your Instant Client libraries and headers ZIP packages are. It then installs node-oracledb, resulting in an instantclient directory and a node_modules directory. This automates the instructions Node-oracledb Installation on OS X with Instant Client. My osxinstall.sh script can be seen here. [Now removed] I was investigating how to avoid needing to set DYLD_LIBRARY_PATH. I wanted to find how to replicate the use of rpath, which is available for node-oracledb on Linux. A standard install on OS X needs DYLD_LIBRARY_PATH set, otherwise Node.js will fail with the error: cjones@cjones-mac:~/n$ node select1.js /Users/cjones/n/node_modules/oracledb/lib/oracledb.js:28 throw err; ^ Error: dlopen(/Users/cjones/n/node_modules/oracledb/build/Release/oracledb.node, 1): Library not loaded: /ade/b/3071542110/oracle/rdbms/lib/libclntsh.dylib.11.1 Referenced from: /Users/cjones/n/node_modules/oracledb/build/Release/oracledb.node Reason: image not found at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (/Users/cjones/n/node_modules/oracledb/lib/oracledb.js:23:15) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) So, I was playing with osxinstall.sh to see how to circumvent this. Before running osxinstall.sh, edit it and set the paths to where the Instant Client 11.2.0.4 'basic' and 'sdk' ZIP files are located on your filesystem, see IC_BASIC_ZIP and IC_SDK_ZIP. (You can download Instant Client from OTN. Use the 64-bit packages). You also specify the target application directory you are using, see TARGET_DIR. This is where the components are installed into. Update https_proxy if you are behind a firewall, otherwise comment it out. If you have various node_modules directories around, then npm might end up installing oracledb in an unexpected place and the script will error. The key bit of osxinstall.sh that I was interested in is: # For Oracle Instant Client 11.2.0.4: these are the default paths we will change IC_DEF1=/ade/b/3071542110/oracle/rdbms/lib IC_DEF2=/ade/dosulliv_ldapmac/oracle/ldap/lib . . . # Warning: work in progress - may not be optimal chmod 755 $OCI_LIB_DIR/*dylib $OCI_LIB_DIR/*dylib.11.1 install_name_tool -id libclntsh.dylib.11.1 $OCI_LIB_DIR/libclntsh.dylib.11.1 install_name_tool -change $IC_DEF2/libnnz11.dylib $OCI_LIB_DIR/libnnz11.dylib \ $OCI_LIB_DIR/libclntsh.dylib.11.1 install_name_tool -id libnnz11.dylib $OCI_LIB_DIR/libnnz11.dylib install_name_tool -change $IC_DEF1/libclntsh.dylib.11.1 \ $OCI_LIB_DIR/libclntsh.dylib.11.1 $OCI_LIB_DIR/libociei.dylib install_name_tool -change $IC_DEF1/libclntsh.dylib.11.1 \ $OCI_LIB_DIR/libclntsh.dylib.11.1 $NODE_ORACLEDB_LIB chmod 555 $OCI_LIB_DIR/*dylib $OCI_LIB_DIR/*dylib.11.1 This changes the library install and identification names using install_name_tool. Note this tool cannot allocate more space for path names than currently exists. My code is a work in progress; I may work out a better way, perhaps using libtool. Comments & suggestions welcome. The script does more than most people probably need. In future even I might only run parts extracted from it. If you are new to node-oracledb, check out its install and API documentation on GitHub. You may also be interested in reading The Easiest Way to Install Oracle Database on Mac OS X.

Monday, July 27, 2015 | node.js | Read More

node-oracledb 0.7.0 now supports Result Sets and REF CURSORS

A new release of the Node.js driver for Oracle Database is now on npmjs.com and GitHub. node-oracledb 0.7 connects Node.js 0.10, Node.js 0.12, and io.js to Oracle Database. It runs on a number of platforms. For more information about node-oracledb see the node-oracledb GitHub page. The changes in 0.7 are: Added result set support for fetching large data sets. Rows from queries can now be fetched in batches using a ResultSet class. This allows large query results to be...

Monday, July 20, 2015 | node.js | Read More

Python cx_Oracle 5.2 driver for Oracle Database has been released

Anthony Tuininga just released an updated Python cx_Oracle 5.2 driver for Oracle Database. This release brings a number of enhancements, many of them for Oracle Database 12c features such as longer VARCHARS. cx_Oracle 5.2 is the first release Oracle has contributed code for (thanks Avinash!) so we're pretty happy all around. And a big thank you to all the other contributors and users who have made this release possible. The new code features are: Support for Oracle Database 12c...

Monday, June 22, 2015 | python | Read More

Scripting Languages & Oracle: Blogs to Follow

If you haven't come across them, keep an eye on the blogs of Blaine Carter and Dan McGhan. They will be posting mostly on developing with Python and Javascript, respectively. Blaine & Dan work at Oracle under the leadership of Steven Feuerstein who is well known in the Oracle PL/SQL world for his enthusiasm for application development.

Wednesday, June 17, 2015 | General | Read More

node-oracledb 0.6.0 is on NPM (Node.js driver for Oracle Database)

Node-oracledb 0.6.0 is now out on NPM. The Oracle Database Node.js driver powers high performance Node.js applications. There is one feature change in this release: node-oracledb now builds with Node.js 0.10, 0.12 and with io.js. Huge thanks to Richard Natal for his GitHub pull request that added support. For more information about node-oracledb see the node-oracledb GitHub page.

Tuesday, May 26, 2015 | node.js | Read More

node-oracledb 0.5.0 is on NPM (Node.js driver for Oracle Database)

It's been a long time between drinks so we are bringing out the 0.5.0 Preview Release version of the Node.js driver for Oracle Database, warts and all. Changed the isAutoCommit attribute name to autoCommit. Changed the isExternalAuth attribute name to externalAuth. These two small attribute name changes break backwards compatibility with node-oracledb 0.4.2. A simple search and replace in your code base is all that is needed to migrate to 0.5.0. We wanted to make these changes...

Friday, May 8, 2015 | node.js | Read More

Upcoming Webinar on April 15th about Node-oracledb driver for Node.js

Update:    Watch the recording on the Oracle Database Development Web Series YouTube channel Tomorrow I'll be giving a webinar covering node-oracledb, the Node.js driver for Oracle database. Date: Wednesday, April 15th Time: 9am (San Francisco time) Webex - No need to register. Session will be recorded. US Toll Free Audio (1-866-682-4770), with international numbers available (Meeting ID: 8232385# & PIN: 123456#) Speaker: Christopher Jones Topic: Introduction to node-oracledb:...

Tuesday, April 14, 2015 | node.js | Read More

node-oracledb 0.4.2 is on NPM (Node.js driver for Oracle Database)

The 0.4.2 version of the Node.js driver for Oracle Database is out. Node-oracledb is now officially on the npmjs.com repository. This simplifies the Install instructions by removing the need to manually clone or download from GitHub. Thanks to Tim Branyen for setting this up and handing over stewardship to us. Metadata support was added. Column names are now provided in the execute() callback result object. See the doc example. We saw a few people try to use strangely old...

Sunday, March 29, 2015 | node.js | Read More

node-oracledb 0.4.1 is on GitHub (Node.js driver for Oracle Database)

Just a few small changes in this update of the Node.js driver for Oracle Database. Support for External authentication was added This closes Issue #15. The isAutoCommit flags now works with query execution. This is useful in cases where multiple DML statements are executed followed by a SELECT statement. This can be used to avoid a round trip to the database that an explicit call to commit() would add. Added AIX build support to package.json. Thanks to Hannes Prirschl for...

Friday, March 13, 2015 | node.js | Read More

Running Carsten Czarski's node-oracledb WebSocket Example

My colleague Carsten Czarski recently presented on the node-oracledb driver for Node.js. One of his demos used WebSockets. It was a live demo, not captured in slides. I thought I'd explain how I got it to run in my Oracle Linux 64 bit environment. Download and extract the Node 0.10.36 bundle from here. (At time of writing, the node-oracle driver requires Node.js 0.10). Add the bin to your PATH, for example: $ export PATH=/opt/node-v0.10.36-linux-x64/bin:$PATH Download and...

Thursday, February 19, 2015 | node.js | Read More

node-oracledb 0.3.1 is on GitHub (Node.js driver for Oracle Database)

On behalf of the development team, I have merged some new features and fixes to node-oracledb Updates for node-oracledb 0.3.1 Added Windows build configuration. See Node-oracledb Installation on Windows. Thanks to Rinie Kervel for submitting a pull request, and thanks to all those that commented and tested. Added Database Resident Connection Pooling (DRCP) support. See API Documentation for the Oracle Database Node.js Driver "Database Resident Connection Pooling enables...

Monday, February 16, 2015 | node.js | Read More

A Personal Victory: Oracle Database Sample Schemas are on GitHub

For anyone who ever deleted a row from a table in Oracle's Sample HR schema and wanted it back, help is nearby. You no longer have to download the full "Oracle Database 12c Release 1 Examples" zip (499,228,127 bytes worth for the Linux bundle) and run the Oracle installer. Now you can clone our GitHub db-sample-schema repository and run the creation SQL scripts in SQL*Plus. This new repository installs these six sample schemas: HR: Human Resources OE: Order Entry PM: Product...

Friday, January 23, 2015 | General | Read More

Introducing node-oracledb - a Node.js driver for Oracle Database

When we announced we were working on a Node.js driver for Oracle Database, it was to a large, enthusiastic audience at Oracle OpenWorld. I'm excited to let you know we have just pushed node-oracledb to GitHub. Node.js is an upcoming, open source, cross-platform runtime environment for writing server-side and networking applications in JavaScript. What is node-oracledb? The node-oracledb driver connects to Oracle Database to make Node.js applications fast and functional....

Tuesday, January 20, 2015 | node.js | Read More

The Easiest Way to Install Oracle Database on Apple macOS / OS X

tl;dr Your OS X applications can connect to Oracle Database as if it was running natively on OS X if you simply run Oracle Database in a VirtualBox VM with port forwarding enabled (easy). To work backwards through the installation process: in the Network window of the VirtualBox GUI, I enable a NAT Network adapter. Then, under Networking -> Advanced -> Port Forwarding, I create a TCP rule with Host IP 127.0.0.1 and both the Host and Guest Port fields set to the port number that...

Monday, January 19, 2015 | php | Read More

How I Enable Autostarting of Oracle Database for Demonstrations and Development

Here are the steps I have been using to enable autostarting of Oracle Database Enterprise Edition 10g, 11g or 12c during boot time of Oracle Linux 5 and 6. I also use these steps with Oracle Linux 7. These steps are useful for the kinds of demonstration and development setups that I typically need. These steps are not needed for Oracle XE, since its install will prompt whether to autostart the DB and will configure the system automatically. Create a new service script Create a...

Monday, January 19, 2015 | General | Read More

We are looking to hire someone who loves working with open source developer communities.

We are looking to hire someone who loves working with open source developer communities. The ideal candidate would have experience with the Oracle Database and at least two or more open source developer environments. The successful candidate would join a team of people responsible for helping database app developers be more productive while using prominent open source development tools. That person would also help to represent the needs of the community back to Oracle...

Monday, January 12, 2015 | General | Read More

Video: Best Practices for Application Performance, Scalability, and Availability

Nancy Ikeda nails it in a great Oracle OpenWorld recording of her Best Practices for Application Performance, Scalability, and Availability session now viewable on the Oracle Call Interface page The session covered: Best practice coding samples and techniques show how to resolve connection management, statement execution, and data fetching inefficiencies in applications using APIs such as JDBC, OCI, ODBC, ODP.Net, or higher-level scripting languages. This session shows howthe...

Tuesday, December 9, 2014 | General | Read More