Oracle::Schema - Perl class for Oracle Schema Information and


Oracle-Schema documentation  | view source Contained in the Oracle-Schema distribution.

Index


NAME

Top

Oracle::Schema - Perl class for Oracle Schema Information and Management

SYNOPSIS

Top

  use Oracle::Schema;

  my %cfg = ('conn_string'=>'usr/pwd@db');
  my $os = Oracle::Schema->new;
  # or combine the two together
  my $os = Oracle::Schema->new('cs'=>'usr/pwd@db');
  $os->display_objects; 




DESCRIPTION

Top

This class includes methods to query (find, retrieve, and compare) objects in an Oracle schema and to manage (create, drop, update, merge, and move) Oracle objects.

new (cs=>'usr/pwd@db',tn=>'my_table')

Input variables:

  $cs  - Oracle connection string in usr/pwd@db
  $tn  - Oracle table name without schema

Variables used or routines called:

  None

How to use:

   my $obj = new Oracle::Schema;      # or
   my $obj = Oracle::Schema->new;     # or
   my $cs  = 'usr/pwd@db';
   my $tn  = 'my_table'; 
   my $obj = Oracle::Schema->new(cs=>$cs,tn=>$tn); # or
   my $obj = Oracle::Schema->new('cs',$cs, 'tn',$tn); 

Return: new empty or initialized Oracle::Schema object.

This method constructs a Perl object and capture any parameters if specified. It creates and defaults the following variables:

  $self->{conn_string} = "";       # or $self->{cs}
  $self->{table_name}  = "";       # or $self->{tn}  

METHODS

Top

The following are the common methods, routines, and functions defined in this class.

Exported Tag: All

The :all tag includes all the methods or sub-rountines defined in this class.

  use Oracle::Schema qw(:all);

It includes the following sub-routines:

Table Methods

The :table tag includes sub-rountines for creating, checking and manipulating tables.

  use Oracle::DML::Common qw(:table);

It includes the following sub-routines:

get_table_definition($dbh,$tn,$cns,$otp)

Input variables:

  $dbh - database handler, required.
  $tn  - table/object name, required.
         schema.table_name is allowed.
  $cns - column names separated by comma.
         Default is null, i.e., to get all the columns.
         If specified, only get definition for those specified.
  $otp - output array type:
         AR|ARRAY        - returns ($cns,$df1,$cmt)
         AH1|ARRAY_HASH1 - returns ($cns,$df2,$cmt)
         HH|HASH         - returns ($cns,$df3,$cmt)
         AH2|ARRAY_HASH2 - returns ($cns,$df4,$cmt)

Variables used or routines called:

  echoMSG - display messages.

How to use:

  ($cns,$df1,$cmt) = $self->getTableDef($dbh,$table_name,'','array');
  ($cns,$df2,$cmt) = $self->getTableDef($dbh,$table_name,'','ah1');
  ($cns,$df3,$cmt) = $self->getTableDef($dbh,$table_name,'','hash');
  ($cns,$df4,$cmt) = $self->getTableDef($dbh,$table_name,'','ah2');

Return:

  $cns - a list of column names separated by comma.
  $df1 - column definiton array ref in [$seq][$cnn].
    where $seq is column sequence number, $cnn is array
    index number corresponding to column names:
          0 - cname,
          1 - coltype,
          2 - width,
          3 - scale,
          4 - precision,
          5 - nulls,
          6 - colno,
          7 - character_set_name.
  $df2 - column definiton array ref in [$seq]{$itm}.
    where $seq is column number (colno) and $itm are:
          col - column name
          seq - column sequence number
          typ - column data type
          wid - column width
          max - max width
          min - min width
          dec - number of decimals
          req - requirement: null or not null
          dft - date format
          dsp - description or comments
  $df3 - {$cn}{$itm} when $otp = 'HASH'
    where $cn is column name in lower case and
          $itm are the same as the above
  $df4 - [$seq]{$itm} when $otp = 'AH2'
    where $seq is the column number, and $itm are:
          cname     - column name (col)
          coltype   - column data type (typ)
          width     - column width (wid)
          scale     - column scale (dec)
          precision - column precision (wid for N)
          nulls     - null or not null (req)
          colno     - column sequence number (seq)
          character_set_name - character set name
  $cmt - {$cn}: contains comments for each column 

HISTORY

Top

* Version 0.01

This version is to set the framework and move the get_table_definition from Oracle:;DML::Common.

* Version 0.02

Added table tag for export.

SEE ALSO (some of docs that I check often)

Top

Data::Describe, Oracle::Loader, CGI::Getopt, File::Xcopy, perltoot(1), perlobj(1), perlbot(1), perlsub(1), perldata(1), perlsub(1), perlmod(1), perlmodlib(1), perlref(1), perlreftut(1).

AUTHOR

Top

Copyright (c) 2005 Hanming Tu. All rights reserved.

This package is free software and is provided "as is" without express or implied warranty. It may be used, redistributed and/or modified under the terms of the Perl Artistic License (see http://www.perl.com/perl/misc/Artistic.html)


Oracle-Schema documentation  | view source Contained in the Oracle-Schema distribution.