Comparison of application development capabilities

Databases are a foundation of today’s data-driven enterprise, and applications are increasingly data intensive. Vendors in turn work to continually enhance their database solutions to support the needs of application developers who seek the flexibility to make choices and simple ways for executing complex tasks. For example, databases that can provide support for multiple server-side languages for triggers, functions, and stored procedures give developers the option to choose their language for both client, middle-tier, and database server programming. Object-oriented capabilities like user-defined object types allow the database to store real-world representations of data, thus making development easier, quicker, and more understandable.

Application developmentOracle EnterpriseEDB Postgres Advanced Server
IDEYes
SQL Developer
Yes
Postgres Enterprise Manager
Database server programming languageYes
PL/SQL (block structured language)
Yes
EDB SPL (PL/SQL compatible) (block structured language)
Additional programming languages for database server stored procedures, triggers, and functionsYes
Java, C, .NET (C#, Visual Basic)
Yes
PL/pgSQL (PostgreSQL’s procedural language), C, C++, PL/Perl, Python, PL/Tcl
JDBC supportYesYes
EDB JDBC Connector
ODBC supportYesYes
EDB ODBC Connector
.NET supportYesYes
EDB .NET Connector
OCI supportYesYes ✓
EDB OCL Connector
PL/SQL debuggerYes
SQL Developer
Yes
Postgres Enterprise Manager
Stored proceduresYesYes ✓
Named parameter notation for stored proceduresYesYes ✓
TriggersYesYes ✓
REF cursorsYesYes ✓
Anonymous blocksYesYes ✓
Bulk collect/bindYesYes ✓
Associative arraysYesYes ✓
Nested tablesYesYes ✓
VARRAYSYesYes ✓
Hierarchical queriesYesYes ✓
Parallel queryYesYes ✓
PL/SQL supplied packagesYesYes
(See EDB Postgres Advanced Server-compatible package support)
PRAGMA RESTRICT_REFERENCESYesYes ✓
PRAGMA EXCEPTION_INITYesYes ✓
PRAGMA AUTONOMOUS_TRANSACTIONYesYes ✓
User-defined functionsYesYes
User-defined objectsYesYes
User-defined exceptionsYesYes ✓

EDB Postgres Advanced Server-compatible package support

EDB focuses on the most popular functions in packages. For some packages, not all Oracle functions are supported. For specific details, refer to the EDB Postgres Advanced Server documentation.

Package namePackage description
DBMS_ALERTFunctions that allow asynchronous notification of database events by way of an alert. Using this package and triggers, an application can notify itself whenever values of interest in the database are changed.
DBMS_AQDatabase-integrated asynchronous message queuing provides a flexible mechanism for integrating applications across the enterprise by communicating activities and exchanging a variety of information payloads.
DBMS_AQADMProvides procedures to create and manage queues and queue tables.
DBMS_CRYPTOProvides functions to encrypt and decrypt stored data.
DBMS_JOBWas replaced by DBMS_SCHEDULER but is included for compatibility with older Oracle applications.
DBMS_LOBFunctions that allow access to and manipulation of Large Object values.
DBMS_LOCKProvides a function interface to Lock Management services.
DBMS_MVIEWProvides procedures to manage and refresh materialized views and their dependencies.
DBMS_OUTPUTAllows sending messages from stored procedures, packages, and triggers for application or debugging use.
DBMS_PIPEFunctions that allow two or more sessions in the same database instance to communicate with one another.
DBMS_PROFILERProvides functions to profile stored procedure workloads and identify performance bottlenecks.
DBMS_RANDOMUseful functions to generate random text, numeric, and date values.
DBMS_REDACTRedaction prevents a user from seeing all or portions of sensitive data.
DBMS_RLSImplements row-level security functions in the database, blocking users from seeing each other’s data in the same application.
DBMS_SCHEDULERJob scheduler functions for creating and executing unattended repetitive tasks inside the database.
DBMS_SQLPermits the use of dynamic SQL in procedures to allow applications to run SQL statements with unknown parameters (such as table name) until runtime.
DBMS_SESSIONFunctions with the ability to enable and disable roles.
DBMS_UTILITYA collection of functions for getting information about various runtime operations and metadata from the database.
HTFA collection of functions for generating HTML tags.
HTPA collection of procedures for generating HTML tags.
UTL_ENCODEFunctions to perform Base64 encoding and decoding of data intended for transport between hosts.
UTL_FILEAllows database procedures to read and write operating system text files in an I/O stream fashion.
UTL_HTTPFunctions that enable you to make HTTP calls to access information on web servers.
UTL_MAILProvides functions to create, manage, and send email from the database including attachments, CC, and BCC.
UTL_RAWFunctions supporting manipulating raw data types.
UTL_SMTPProvides functions for sending email via SMTP according to the RFC821 specification.
UTL_TCPProvides procedures and functions to enable PL/SQL applications to communicate with external TCP/IP-based servers using TCP/IP.
UTL_URLFunctions for escaping and “unescaping” URL strings.

Could this page be better? Report a problem or suggest an addition!