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 development | Oracle Enterprise | EDB Postgres Advanced Server |
---|---|---|
IDE | Yes SQL Developer | Yes Postgres Enterprise Manager |
Database server programming language | Yes PL/SQL (block structured language) | Yes EDB SPL (PL/SQL compatible) (block structured language) |
Additional programming languages for database server stored procedures, triggers, and functions | Yes Java, C, .NET (C#, Visual Basic) | Yes PL/pgSQL (PostgreSQL’s procedural language), C, C++, PL/Perl, Python, PL/Tcl |
JDBC support | Yes | Yes EDB JDBC Connector |
ODBC support | Yes | Yes EDB ODBC Connector |
.NET support | Yes | Yes EDB .NET Connector |
OCI support | Yes | Yes ✓ EDB OCL Connector |
PL/SQL debugger | Yes SQL Developer | Yes Postgres Enterprise Manager |
Stored procedures | Yes | Yes ✓ |
Named parameter notation for stored procedures | Yes | Yes ✓ |
Triggers | Yes | Yes ✓ |
REF cursors | Yes | Yes ✓ |
Anonymous blocks | Yes | Yes ✓ |
Bulk collect/bind | Yes | Yes ✓ |
Associative arrays | Yes | Yes ✓ |
Nested tables | Yes | Yes ✓ |
VARRAYS | Yes | Yes ✓ |
Hierarchical queries | Yes | Yes ✓ |
Parallel query | Yes | Yes ✓ |
PL/SQL supplied packages | Yes | Yes (See EDB Postgres Advanced Server-compatible package support) |
PRAGMA RESTRICT_REFERENCES | Yes | Yes ✓ |
PRAGMA EXCEPTION_INIT | Yes | Yes ✓ |
PRAGMA AUTONOMOUS_TRANSACTION | Yes | Yes ✓ |
User-defined functions | Yes | Yes |
User-defined objects | Yes | Yes |
User-defined exceptions | Yes | Yes ✓ |
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 name | Package description |
---|---|
DBMS_ALERT | Functions 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_AQ | Database-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_AQADM | Provides procedures to create and manage queues and queue tables. |
DBMS_CRYPTO | Provides functions to encrypt and decrypt stored data. |
DBMS_JOB | Was replaced by DBMS_SCHEDULER but is included for compatibility with older Oracle applications. |
DBMS_LOB | Functions that allow access to and manipulation of Large Object values. |
DBMS_LOCK | Provides a function interface to Lock Management services. |
DBMS_MVIEW | Provides procedures to manage and refresh materialized views and their dependencies. |
DBMS_OUTPUT | Allows sending messages from stored procedures, packages, and triggers for application or debugging use. |
DBMS_PIPE | Functions that allow two or more sessions in the same database instance to communicate with one another. |
DBMS_PROFILER | Provides functions to profile stored procedure workloads and identify performance bottlenecks. |
DBMS_RANDOM | Useful functions to generate random text, numeric, and date values. |
DBMS_REDACT | Redaction prevents a user from seeing all or portions of sensitive data. |
DBMS_RLS | Implements row-level security functions in the database, blocking users from seeing each other’s data in the same application. |
DBMS_SCHEDULER | Job scheduler functions for creating and executing unattended repetitive tasks inside the database. |
DBMS_SQL | Permits the use of dynamic SQL in procedures to allow applications to run SQL statements with unknown parameters (such as table name) until runtime. |
DBMS_SESSION | Functions with the ability to enable and disable roles. |
DBMS_UTILITY | A collection of functions for getting information about various runtime operations and metadata from the database. |
HTF | A collection of functions for generating HTML tags. |
HTP | A collection of procedures for generating HTML tags. |
UTL_ENCODE | Functions to perform Base64 encoding and decoding of data intended for transport between hosts. |
UTL_FILE | Allows database procedures to read and write operating system text files in an I/O stream fashion. |
UTL_HTTP | Functions that enable you to make HTTP calls to access information on web servers. |
UTL_MAIL | Provides functions to create, manage, and send email from the database including attachments, CC, and BCC. |
UTL_RAW | Functions supporting manipulating raw data types. |
UTL_SMTP | Provides functions for sending email via SMTP according to the RFC821 specification. |
UTL_TCP | Provides procedures and functions to enable PL/SQL applications to communicate with external TCP/IP-based servers using TCP/IP. |
UTL_URL | Functions for escaping and “unescaping” URL strings. |
Could this page be better? Report a problem or suggest an addition!