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 BY hierarchical query support via the connect_by, connect_by_nocycle, start_with, and order_siblings_by resultset attributes.

  • PRIOR operator 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

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.