SQL::Translator::Producer::Oracle man page on Fedora

Man page or keyword search:  
man Server   31170 pages
apropos Keyword Search (all sections)
Output format
Fedora logo
[printable version]

SQL::Translator::ProduUser:Contributed PerSQL::Translator::Producer::Oracle(3)

NAME
       SQL::Translator::Producer::Oracle - Oracle SQL producer

SYNOPSIS
	 use SQL::Translator;

	 my $t = SQL::Translator->new( parser => '...', producer => 'Oracle' );
	 print $translator->translate( $file );

DESCRIPTION
       Creates an SQL DDL suitable for Oracle.

producer_args
       delay_constraints
	   This option remove the primary key and other key constraints from
	   the CREATE TABLE statement and adds ALTER TABLEs at the end with
	   it.

       quote_field_names
	   Controls whether quotes are being used around column names in
	   generated DDL.

       quote_table_names
	   Controls whether quotes are being used around table, sequence and
	   trigger names in generated DDL.

NOTES
   Autoincremental primary keys
       This producer uses sequences and triggers to autoincrement primary key
       columns, if necessary. SQLPlus and DBI expect a slightly different
       syntax of CREATE TRIGGER statement. You might have noticed that this
       producer returns a scalar containing all statements concatenated by
       newlines or an array of single statements depending on the context
       (scalar, array) it has been called in.

       SQLPlus expects following trigger syntax:

	   CREATE OR REPLACE TRIGGER ai_person_id
	   BEFORE INSERT ON person
	   FOR EACH ROW WHEN (
	    new.id IS NULL OR new.id = 0
	   )
	   BEGIN
	    SELECT sq_person_id.nextval
	    INTO :new.id
	    FROM dual;
	   END;
	   /

       Whereas if you want to create the same trigger using "do" in DBI, you
       need to omit the last slash:

	   my $dbh = DBI->connect('dbi:Oracle:mysid', 'scott', 'tiger');
	   $dbh->do("
	       CREATE OR REPLACE TRIGGER ai_person_id
	       BEFORE INSERT ON person
	       FOR EACH ROW WHEN (
		new.id IS NULL OR new.id = 0
	       )
	       BEGIN
		SELECT sq_person_id.nextval
		INTO :new.id
		FROM dual;
	       END;
	   ");

       If you call this producer in array context, we expect you want to
       process the returned array of statements using DBI like "deploy" in
       DBIx::Class::Schema does.

       To get this working we removed the slash in those statements in version
       0.09002 of SQL::Translator when called in array context. In scalar
       context the slash will be still there to ensure compatibility with
       SQLPlus.

CREDITS
       Mad props to Tim Bunce for much of the logic stolen from his
       "mysql2ora" script.

AUTHORS
       Ken Youens-Clark <kclark@cpan.org>, Alexander Hartmaier
       <abraxxa@cpan.org>, Fabien Wernli <faxmodem@cpan.org>.

SEE ALSO
       SQL::Translator, DDL::Oracle, mysql2ora.

perl v5.14.2			  2011-05-SQL::Translator::Producer::Oracle(3)
[top]

List of man pages available for Fedora

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net