HeliosDB Full’s Oracle compatibility module covers a large part of Oracle’s SQL and PL/SQL feature surface, at the maturity levels shown below. Through the Oracle listener today, table definitions, INSERT/UPDATE/DELETE and common queries run unchanged, while Oracle-specific syntax, most built-in functions and PL/SQL need rewriting; see Oracle compatibility for in-house applications for results by usage area and how to assess your own application. It is not a drop-in replacement.
Category
Maturity
Hardened
Core SQL
Supported
Yes
DDL Statements
Supported
Yes
DML Statements
Supported
Yes
PL/SQL Core
Beta
Limited
PL/SQL Packages
Beta
No
DBMS Packages
Partial
Limited
Hierarchical Queries
Supported
Yes
Analytic Functions
Supported
Yes
JSON Functions
Supported
Yes
XML Functions
Alpha
No
Object Types
Alpha
No
Collections
Beta
Limited
Triggers
Beta
Limited
Large Objects
Beta
Limited
SQL Language Support
Data Definition Language (DDL)
Statement
Result
Notes
CREATE TABLE
Supported
Most options supported
CREATE TABLE AS SELECT
Supported
Basic CTAS
ALTER TABLE
Supported
Common alterations
DROP TABLE
Supported
CASCADE, PURGE
TRUNCATE TABLE
Supported
REUSE STORAGE partial
CREATE INDEX
Supported
B-tree, basic bitmap
CREATE UNIQUE INDEX
Supported
DROP INDEX
Supported
CREATE VIEW
Supported
WITH CHECK OPTION
CREATE OR REPLACE VIEW
Supported
DROP VIEW
Supported
CREATE MATERIALIZED VIEW
Partial
Basic refresh only
CREATE SEQUENCE
Supported
CACHE, NOCACHE
ALTER SEQUENCE
Supported
Basic modifications
DROP SEQUENCE
Supported
CREATE SYNONYM
Supported
PUBLIC, PRIVATE
DROP SYNONYM
Supported
CREATE TYPE
Partial
Simple object types
CREATE PROCEDURE
Supported
See PL/SQL section
CREATE FUNCTION
Supported
See PL/SQL section
CREATE PACKAGE
Partial
See PL/SQL section
CREATE TRIGGER
Partial
Row-level triggers
CREATE CLUSTER
Not Supported
CREATE CONTEXT
Not Supported
CREATE DATABASE LINK
Not Supported
CREATE DIRECTORY
Partial
Limited I/O
COMMENT ON
Supported
GRANT
Supported
Basic privileges
REVOKE
Supported
Basic privileges
Data Manipulation Language (DML)
Statement
Result
Notes
SELECT
Supported
See query features
INSERT
Supported
Single and multi-row
INSERT ALL
Partial
Conditional limited
INSERT FIRST
Partial
UPDATE
Supported
DELETE
Supported
MERGE
Supported
Basic merge operations
SELECT FOR UPDATE
Supported
NOWAIT, WAIT n
LOCK TABLE
Partial
Basic modes
Query Features
Feature
Result
Notes
Basic SELECT
Supported
WHERE clause
Supported
ORDER BY
Supported
NULLS FIRST/LAST
GROUP BY
Supported
GROUP BY ROLLUP
Supported
GROUP BY CUBE
Partial
GROUP BY GROUPING SETS
Partial
HAVING
Supported
DISTINCT
Supported
Table aliases
Supported
Column aliases
Supported
Subqueries
Supported
Correlated supported
Scalar subqueries
Supported
WITH clause (CTEs)
Supported
Recursive CTEs
Partial
Basic recursion
UNION
Supported
UNION ALL
Supported
INTERSECT
Supported
MINUS
Supported
INNER JOIN
Supported
LEFT/RIGHT OUTER JOIN
Supported
FULL OUTER JOIN
Supported
CROSS JOIN
Supported
NATURAL JOIN
Partial
USING clause
Supported
Oracle (+) syntax
Partial
Prefer ANSI joins
FETCH FIRST n ROWS
Supported
Oracle 12c+
OFFSET n ROWS
Supported
ROWNUM
Supported
See limitations
Hierarchical Query Features
Feature
Result
Notes
CONNECT BY
Supported
START WITH
Supported
PRIOR
Supported
LEVEL
Supported
CONNECT_BY_ROOT
Supported
SYS_CONNECT_BY_PATH
Supported
CONNECT_BY_ISLEAF
Supported
CONNECT_BY_ISCYCLE
Partial
NOCYCLE
Supported
ORDER SIBLINGS BY
Partial
Advanced Query Features
Feature
Result
Notes
PIVOT
Partial
Static pivot
UNPIVOT
Partial
MODEL clause
Not Supported
Planned
MATCH_RECOGNIZE
Not Supported
Flashback queries
Partial
AS OF timestamp
SAMPLE clause
Partial
XMLTABLE
Partial
JSON_TABLE
Supported
Lateral inline views
Partial
CROSS APPLY
Partial
OUTER APPLY
Partial
PL/SQL Support
Language Constructs
Construct
Result
Notes
Anonymous blocks
Supported
DECLARE/BEGIN/END
Variables
Supported
Most scalar types
Constants
Supported
%TYPE
Supported
%ROWTYPE
Supported
IF-THEN-ELSE
Supported
CASE statement
Supported
Simple and searched
Simple LOOP
Supported
WHILE LOOP
Supported
FOR LOOP
Supported
Numeric ranges
Cursor FOR LOOP
Supported
EXIT/EXIT WHEN
Supported
CONTINUE
Supported
GOTO
Partial
Limited support
NULL statement
Supported
RETURN
Supported
Nested blocks
Supported
Labels
Partial
Procedures and Functions
Feature
Result
Notes
CREATE PROCEDURE
Supported
CREATE FUNCTION
Supported
CREATE OR REPLACE
Supported
IN parameters
Supported
OUT parameters
Supported
IN OUT parameters
Partial
DEFAULT values
Supported
NOCOPY hint
Ignored
Syntax accepted
DETERMINISTIC
Partial
Hint only
RESULT_CACHE
Not Supported
AUTHID CURRENT_USER
Partial
AUTHID DEFINER
Partial
Named notation
Supported
Positional notation
Supported
Mixed notation
Partial
Packages
Feature
Result
Notes
Package specification
Partial
Package body
Partial
Package variables
Partial
Session state limited
Package constants
Partial
Package types
Partial
Package cursors
Partial
Package initialization
Partial
Overloading
Partial
PRAGMA SERIALLY_REUSABLE
Not Supported
Package state
Limited
Per-session state
Cursors
Feature
Result
Notes
Explicit cursors
Supported
OPEN
Supported
FETCH
Supported
CLOSE
Supported
%FOUND
Supported
%NOTFOUND
Supported
%ROWCOUNT
Supported
%ISOPEN
Supported
Cursor parameters
Partial
REF CURSOR
Partial
Weak cursors
SYS_REFCURSOR
Partial
Cursor variables
Partial
Cursor expressions
Partial
Implicit cursors
Supported
SQL%* attributes
Exception Handling
Feature
Result
Notes
EXCEPTION block
Supported
WHEN…THEN
Supported
WHEN OTHERS
Supported
NO_DATA_FOUND
Supported
TOO_MANY_ROWS
Supported
DUP_VAL_ON_INDEX
Supported
INVALID_CURSOR
Supported
CURSOR_ALREADY_OPEN
Supported
VALUE_ERROR
Supported
ZERO_DIVIDE
Supported
INVALID_NUMBER
Supported
LOGIN_DENIED
Partial
PROGRAM_ERROR
Partial
SQLCODE
Supported
SQLERRM
Supported
RAISE
Supported
RAISE_APPLICATION_ERROR
Supported
User-defined exceptions
Supported
EXCEPTION_INIT
Partial
Bulk Operations
Feature
Result
Notes
BULK COLLECT
Partial
Simple cases
BULK COLLECT LIMIT
Partial
FORALL
Partial
FORALL INDICES OF
Partial
FORALL VALUES OF
Partial
SAVE EXCEPTIONS
Partial
SQL%BULK_EXCEPTIONS
Partial
SQL%BULK_ROWCOUNT
Partial
Collections
Feature
Result
Notes
Nested tables
Partial
VARRAYs
Partial
Associative arrays
Partial
INDEX BY PLS_INTEGER
Supported
INDEX BY VARCHAR2
Partial
Collection methods
Partial
COUNT, FIRST, LAST
EXISTS
Partial
COUNT
Partial
FIRST/LAST
Partial
NEXT/PRIOR
Partial
EXTEND
Partial
TRIM
Partial
DELETE
Partial
Nested table operators
Not Supported
Triggers
Feature
Result
Notes
BEFORE INSERT
Supported
AFTER INSERT
Supported
BEFORE UPDATE
Supported
AFTER UPDATE
Supported
BEFORE DELETE
Supported
AFTER DELETE
Supported
FOR EACH ROW
Supported
Statement-level
Partial
:new/:old
Supported
WHEN clause
Partial
INSTEAD OF
Partial
Views only
COMPOUND triggers
Not Supported
System triggers
Not Supported
DDL triggers
Not Supported
Advanced PL/SQL
Feature
Result
Notes
Autonomous transactions
Not Supported
Planned
Pipelined functions
Not Supported
Parallel enable
Not Supported
PRAGMA RESTRICT_REFERENCES
Ignored
PRAGMA INLINE
Ignored
Native compilation
Not Supported
Conditional compilation
Partial
Object types in PL/SQL
Partial
Dynamic SQL (EXECUTE IMMEDIATE)
Partial
DBMS_SQL
Partial
See package section
DBMS Packages
DBMS_OUTPUT
Function/Procedure
Result
Notes
PUT_LINE
Supported
Full
PUT
Supported
Full
NEW_LINE
Supported
Full
GET_LINE
Supported
GET_LINES
Partial
ENABLE
Supported
DISABLE
Supported
DBMS_LOB
Function/Procedure
Result
Notes
GETLENGTH
Supported
SUBSTR
Supported
INSTR
Supported
APPEND
Supported
COPY
Partial
ERASE
Partial
TRIM
Partial
WRITE
Partial
READ
Partial
COMPARE
Partial
CREATETEMPORARY
Partial
FREETEMPORARY
Partial
ISTEMPORARY
Partial
LOADFROMFILE
Not Supported
LOADBLOBFROMFILE
Not Supported
LOADCLOBFROMFILE
Not Supported
CONVERTTOBLOB
Partial
CONVERTTOCLOB
Partial
DBMS_SQL
Function/Procedure
Result
Notes
OPEN_CURSOR
Supported
PARSE
Supported
BIND_VARIABLE
Partial
Scalar types
BIND_ARRAY
Not Supported
DEFINE_COLUMN
Partial
EXECUTE
Supported
EXECUTE_AND_FETCH
Partial
FETCH_ROWS
Partial
COLUMN_VALUE
Partial
VARIABLE_VALUE
Partial
CLOSE_CURSOR
Supported
IS_OPEN
Supported
LAST_ROW_COUNT
Partial
LAST_ERROR_POSITION
Partial
DESCRIBE_COLUMNS
Not Supported
DESCRIBE_COLUMNS2
Not Supported
TO_REFCURSOR
Not Supported
TO_CURSOR_NUMBER
Not Supported
DBMS_UTILITY
Function/Procedure
Result
Notes
FORMAT_ERROR_BACKTRACE
Supported
FORMAT_ERROR_STACK
Supported
FORMAT_CALL_STACK
Partial
GET_TIME
Supported
Centiseconds
GET_CPU_TIME
Partial
COMMA_TO_TABLE
Supported
TABLE_TO_COMMA
Supported
NAME_RESOLVE
Partial
NAME_TOKENIZE
Partial
DB_VERSION
Partial
CURRENT_INSTANCE
Partial
EXEC_DDL_STATEMENT
Partial
COMPILE_SCHEMA
Not Supported
ANALYZE_SCHEMA
Not Supported
DBMS_METADATA
Function/Procedure
Result
Notes
GET_DDL
Partial
Tables, indexes
GET_DEPENDENT_DDL
Partial
SET_TRANSFORM_PARAM
Partial
OPEN
Partial
SET_FILTER
Partial
SET_COUNT
Partial
FETCH_DDL
Partial
CLOSE
Partial
DBMS_SCHEDULER
Function/Procedure
Result
Notes
CREATE_JOB
Partial
Basic jobs
DROP_JOB
Supported
ENABLE
Supported
DISABLE
Supported
RUN_JOB
Supported
STOP_JOB
Supported
CREATE_SCHEDULE
Partial
DROP_SCHEDULE
Partial
CREATE_PROGRAM
Partial
DROP_PROGRAM
Partial
CREATE_CHAIN
Not Supported
CREATE_WINDOW
Not Supported
SET_ATTRIBUTE
Partial
DBMS_STATS
Function/Procedure
Result
Notes
GATHER_TABLE_STATS
Partial
Basic statistics
GATHER_INDEX_STATS
Partial
GATHER_SCHEMA_STATS
Partial
GATHER_DATABASE_STATS
Not Supported
DELETE_TABLE_STATS
Partial
DELETE_INDEX_STATS
Partial
SET_TABLE_STATS
Partial
GET_TABLE_STATS
Partial
CREATE_STAT_TABLE
Not Supported
EXPORT_TABLE_STATS
Not Supported
IMPORT_TABLE_STATS
Not Supported
UTL_FILE
Function/Procedure
Result
Notes
FOPEN
Partial
Limited modes
FCLOSE
Supported
FCLOSE_ALL
Supported
GET_LINE
Supported
PUT
Supported
PUT_LINE
Supported
NEW_LINE
Supported
FFLUSH
Supported
FSEEK
Not Supported
FGETPOS
Not Supported
IS_OPEN
Partial
FCOPY
Not Supported
FGETATTR
Not Supported
FREMOVE
Partial
FRENAME
Partial
DBMS_RANDOM
Function/Procedure
Result
Notes
INITIALIZE
Supported
SEED
Partial
RANDOM
Partial
VALUE
Supported
VALUE (range)
Supported
STRING
Supported
NORMAL
Partial
TERMINATE
Supported
Other Packages
Package
Result
Notes
DBMS_SESSION
Partial
SET_IDENTIFIER only
DBMS_APPLICATION_INFO
Partial
SET_MODULE, SET_ACTION
DBMS_CRYPTO
Partial
Basic encryption
DBMS_LOCK
Not Supported
DBMS_PIPE
Not Supported
DBMS_ALERT
Not Supported
DBMS_AQ
Not Supported
DBMS_AQADM
Not Supported
DBMS_JOB
Deprecated
Use DBMS_SCHEDULER
DBMS_PARALLEL_EXECUTE
Not Supported
DBMS_FLASHBACK
Not Supported
Use MVCC
DBMS_REDEFINITION
Not Supported
DBMS_XA
Not Supported
UTL_HTTP
Not Supported
UTL_SMTP
Not Supported
UTL_TCP
Not Supported
UTL_RAW
Partial
UTL_ENCODE
Partial
Data Types
Scalar Data Types
Type
Result
Notes
NUMBER
Supported
Full precision
NUMBER(p)
Supported
NUMBER(p,s)
Supported
INTEGER
Supported
Maps to NUMBER(38)
SMALLINT
Supported
DECIMAL
Supported
FLOAT
Supported
BINARY_FLOAT
Supported
IEEE 754
BINARY_DOUBLE
Supported
IEEE 754
VARCHAR2(n)
Supported
Up to 32767
NVARCHAR2(n)
Supported
Unicode
CHAR(n)
Supported
Fixed length
NCHAR(n)
Supported
Unicode
CLOB
Supported
NCLOB
Supported
Unicode
BLOB
Supported
BFILE
Partial
Read-only
RAW(n)
Supported
LONG
Supported
Deprecated
LONG RAW
Supported
Deprecated
DATE
Supported
TIMESTAMP
Supported
TIMESTAMP WITH TIME ZONE
Supported
TIMESTAMP WITH LOCAL TIME ZONE
Partial
INTERVAL YEAR TO MONTH
Supported
INTERVAL DAY TO SECOND
Supported
ROWID
Supported
Different format
UROWID
Partial
BOOLEAN (PL/SQL)
Supported
PLS_INTEGER
Supported
BINARY_INTEGER
Supported
SIMPLE_INTEGER
Partial
SIMPLE_FLOAT
Partial
SIMPLE_DOUBLE
Partial
Complex Types
Type
Result
Notes
Object types
Partial
Simple structures
Nested tables
Partial
VARRAYs
Partial
REF types
Not Supported
Opaque types
Not Supported
XML Types
Type
Result
Notes
XMLType
Partial
Basic operations
createXML
Partial
extract
Partial
XPath
extractValue
Partial
existsNode
Partial
XMLQuery
Partial
XMLTable
Partial
XMLELEMENT
Partial
XMLFOREST
Partial
XMLAGG
Partial
JSON Types
Type
Result
Notes
JSON
Supported
Native JSON type
JSON_VALUE
Supported
JSON_QUERY
Supported
JSON_TABLE
Supported
JSON_EXISTS
Supported
JSON_OBJECT
Supported
JSON_ARRAY
Supported
JSON_OBJECTAGG
Supported
JSON_ARRAYAGG
Supported
IS JSON
Supported
JSON_SERIALIZE
Partial
JSON_MERGEPATCH
Partial
JSON_TRANSFORM
Not Supported
Built-in Functions
String Functions
Function
Result
Oracle Behavior Preserved
CONCAT
Supported
Yes
SUBSTR
Supported
Yes (negative position)
LENGTH
Supported
Yes
INSTR
Supported
Yes (nth occurrence)
UPPER
Supported
Yes
LOWER
Supported
Yes
INITCAP
Supported
Yes
LPAD
Supported
Yes
RPAD
Supported
Yes
LTRIM
Supported
Yes (trim set)
RTRIM
Supported
Yes (trim set)
TRIM
Supported
Yes
REPLACE
Supported
Yes
TRANSLATE
Supported
Yes
REVERSE
Supported
Yes
ASCII
Supported
Yes
CHR
Supported
Yes
SOUNDEX
Partial
Approximate
REGEXP_LIKE
Supported
Most patterns
REGEXP_REPLACE
Supported
Most patterns
REGEXP_SUBSTR
Supported
Most patterns
REGEXP_INSTR
Partial
Basic patterns
REGEXP_COUNT
Partial
Basic patterns
NVL
Supported
Yes
NVL2
Supported
Yes
DECODE
Supported
Yes
COALESCE
Supported
Yes
NULLIF
Supported
Yes
LNNVL
Partial
NANVL
Partial
Numeric Functions
Function
Result
Notes
ABS
Supported
CEIL
Supported
FLOOR
Supported
ROUND
Supported
TRUNC
Supported
MOD
Supported
POWER
Supported
SQRT
Supported
EXP
Supported
LN
Supported
LOG
Supported
SIGN
Supported
SIN, COS, TAN
Supported
ASIN, ACOS, ATAN
Supported
SINH, COSH, TANH
Supported
GREATEST
Supported
NULL propagation
LEAST
Supported
NULL propagation
WIDTH_BUCKET
Partial
REMAINDER
Supported
BITAND
Supported
Date/Time Functions
Function
Result
Notes
SYSDATE
Supported
SYSTIMESTAMP
Supported
CURRENT_DATE
Supported
Session TZ
CURRENT_TIMESTAMP
Supported
Session TZ
LOCALTIMESTAMP
Supported
DBTIMEZONE
Partial
SESSIONTIMEZONE
Supported
ADD_MONTHS
Supported
Month-end handling
MONTHS_BETWEEN
Supported
Fractional
LAST_DAY
Supported
NEXT_DAY
Supported
ROUND (date)
Supported
Format models
TRUNC (date)
Supported
Format models
EXTRACT
Supported
TO_DATE
Supported
Format models
TO_CHAR
Supported
Format models
TO_TIMESTAMP
Supported
TO_TIMESTAMP_TZ
Partial
TO_DSINTERVAL
Partial
TO_YMINTERVAL
Partial
FROM_TZ
Partial
NEW_TIME
Partial
TZ_OFFSET
Partial
Aggregate Functions
Function
Result
Notes
COUNT
Supported
Including DISTINCT
SUM
Supported
AVG
Supported
MIN
Supported
MAX
Supported
LISTAGG
Supported
MEDIAN
Partial
PERCENTILE_CONT
Partial
PERCENTILE_DISC
Partial
STDDEV
Supported
STDDEV_POP
Supported
STDDEV_SAMP
Supported
VARIANCE
Supported
VAR_POP
Supported
VAR_SAMP
Supported
COVAR_POP
Partial
COVAR_SAMP
Partial
CORR
Partial
REGR_*
Partial
Basic regression
STATS_*
Not Supported
COLLECT
Partial
XMLAGG
Partial
Analytic Functions
Function
Result
Notes
ROW_NUMBER
Supported
RANK
Supported
DENSE_RANK
Supported
NTILE
Supported
LAG
Supported
LEAD
Supported
FIRST_VALUE
Supported
LAST_VALUE
Supported
NTH_VALUE
Partial
CUME_DIST
Partial
PERCENT_RANK
Partial
RATIO_TO_REPORT
Partial
FIRST/LAST
Partial
KEEP
Partial
FIRST/LAST only
OVER clause
Supported
PARTITION BY
Supported
ORDER BY
Supported
ROWS/RANGE
Supported
UNBOUNDED
Supported
CURRENT ROW
Supported
Conversion Functions
Function
Result
Notes
TO_CHAR
Supported
Most formats
TO_NUMBER
Supported
TO_DATE
Supported
Most formats
TO_TIMESTAMP
Supported
TO_CLOB
Partial
TO_BLOB
Partial
TO_LOB
Partial
CAST
Supported
Most conversions
CONVERT
Partial
Character sets
HEXTORAW
Supported
RAWTOHEX
Supported
ROWIDTOCHAR
Partial
CHARTOROWID
Partial
Advanced Features
Flashback Support
Feature
Result
Notes
AS OF TIMESTAMP
Partial
Uses MVCC
AS OF SCN
Not Supported
VERSIONS BETWEEN
Not Supported
Flashback Table
Not Supported
Flashback Drop
Not Supported
Flashback Database
Not Supported
Partitioning
Feature
Result
Notes
Range partitioning
Partial
Basic
List partitioning
Partial
Basic
Hash partitioning
Partial
Basic
Composite partitioning
Not Supported
Interval partitioning
Not Supported
Reference partitioning
Not Supported
Partition pruning
Partial
Advanced Security
Feature
Result
Notes
Virtual Private Database
Not Supported
Label Security
Not Supported
Transparent Data Encryption
Not Supported
Use HeliosDB encryption
Data Masking
Not Supported
Database Vault
Not Supported
Audit Vault
Not Supported
Known Limitations
Not Supported Features
Feature
Alternative
Oracle RAC
HeliosDB native clustering
Data Guard
HeliosDB replication
ASM
Standard filesystem storage
Streams/GoldenGate
HeliosDB CDC (connectors planned)
Oracle Spatial (SDO_*)
Not available
Oracle Text
HeliosDB full-text search
Java stored procedures
Use PL/pgSQL or external
APEX
Web UI alternatives
Oracle Forms
Web UI alternatives
SQL Limitations
ROWNUM: Works in simple cases but complex ROWNUM usage may behave differently
MODEL clause: Not supported; use application logic
MATCH_RECOGNIZE: Pattern matching not available
CONNECT BY: Limited to 1000 levels by default
Recursive CTEs: Basic recursion only
PL/SQL Limitations
These apply to the planned PL/SQL support (see PL/SQL Support):
Autonomous transactions: Not supported
Pipelined functions: Not supported
Package state: Limited session state management
Native compilation: Interpreted only
Complex object types: Basic structures only
Behavioral Differences
NULL Handling
Oracle empty strings are treated as NULL; HeliosDB distinguishes empty strings from NULL
Use NVL() or COALESCE() for consistent behavior
ROWID Format
HeliosDB uses a different internal ROWID format
ROWID values are not portable between systems
Sequence Behavior
Caching behavior may differ slightly
CURRVAL requires NEXTVAL to be called first in the same session