A Go database/sql driver for Oracle Database using ODPI-C, enabling Go applications to connect to Oracle DB.
godror is a Go database driver for Oracle Database that implements the standard database/sql/driver interface. It enables Go applications to connect to and interact with Oracle databases using Oracle's ODPI-C library, providing support for advanced Oracle features like stored procedures, PL/SQL arrays, and LOB handling while maintaining Go idioms.
Go developers building applications that need to connect to Oracle databases, especially those requiring advanced Oracle-specific features like stored procedures, PL/SQL, or precise numeric handling.
Developers choose godror because it's the most feature-complete and reliable Go driver for Oracle Database, offering full support for Oracle's advanced capabilities while maintaining compatibility with Go's standard database/sql interface and leveraging Oracle's official ODPI-C library for optimal performance.
GO DRiver for ORacle DB
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements Go's database/sql/driver interface, allowing seamless integration with existing Go database code, as highlighted in the README under 'Full database/sql Support'.
Supports stored procedures with OUT parameters, PL/SQL arrays, LOBs, and REF CURSORs, making it ideal for complex Oracle workflows, as detailed in the 'Advanced Oracle Features' section.
Transfers Oracle NUMBER types as strings to preserve all 38 decimal digits, avoiding data loss in precise calculations, a key feature mentioned in the 'Precision Handling' part of the README.
Leverages Oracle's official ODPI-C library for reliable and performant connectivity, ensuring high compatibility with Oracle databases, as noted in the 'OCI Integration' feature.
Requires CGO_ENABLED=1 and a C compiler, making cross-compilation difficult and adding setup overhead, as explicitly warned in the 'Build-time Requirements' section.
Demands Oracle Client libraries at runtime, which adds deployment steps and version management challenges, per the 'Run-time Requirements' in the README.
Does not support sql.NullString and has issues with TIMESTAMP arrays, requiring workarounds like string conversion, as admitted in the 'Caveats' section under sql.NullString and TIMESTAMP.
Handling LOBs and cursors requires careful statement lifecycle management to avoid invalid handles, leading to potential errors like ORA-00000, as detailed in the 'CLOB, BLOB' and cursor examples.