NAME
DBIO::Oracle::SQLMaker - Oracle-specific SQL generation for DBIO
VERSION
version 0.900000
DESCRIPTION
DBIO::SQLMaker subclass for Oracle databases. Extends standard SQL generation with:
Oracle
CONNECT BY/START WITH/ORDER SIBLINGS BYhierarchical query support via theconnect_by,connect_by_nocycle,start_with, andorder_siblings_byresultset attributes.PRIORoperator support in WHERE clauses.Automatic identifier shortening to fit Oracle's 30-character limit, using an MD5-based suffix (requires Digest::MD5, Math::BigInt, Math::Base36).
Oracle-style
RETURNING ... INTO ?syntax for insert-returning.
Used automatically by DBIO::Oracle::Storage.
METHODS
apply_limit
Oracle has no native LIMIT keyword. Wrap the statement in a ROWNUM subquery via the inherited _RowNum dialect instead of the base LIMIT ? syntax.
_shorten_identifier
my $short = $sql_maker->_shorten_identifier($long_name, \@keywords);
Shortens an identifier to fit Oracle's 30-character limit. Uses camelCase compression of @keywords (or the identifier itself if none supplied), followed by a base-36 MD5 suffix to guarantee uniqueness.
_insert_returning
Generates Oracle RETURNING ... INTO ? SQL for insert-returning operations. The returned values are captured into scalar references in the returning_container option.
SEE ALSO
DBIO::Oracle::Storage - Oracle storage (uses this SQL maker)
DBIO::Oracle::SQLMaker::Joins - WHERE-clause join syntax for Oracle < 9
DBIO::SQLMaker - Base SQL maker class
AUTHOR
DBIO & DBIx::Class Authors
COPYRIGHT AND LICENSE
Copyright (C) 2026 DBIO Authors Portions Copyright (C) 2005-2025 DBIx::Class Authors Based on DBIx::Class, heavily modified.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.