NAME
Oracle::DML::Common - Perl class for creating Oracle triggers
SYNOPSIS
use Oracle::DML::Common;
my %cfg = ('conn_string'=>'usr/pwd@db', 'table_name'=>'my_ora_tab');
my $ot = Oracle::DML::Common->new;
# or combine the two together
my $ot = Oracle::DML::Common->new(%cfg);
my $sql= $ot->prepare(%cfg);
$ot->execute(); # actually create the audit table and trigger
DESCRIPTION
This class contains methods to create audit tables and triggers for Oracle tables.
new ()
Input variables:
%ha - any hash array containing initial parameters
Variables used or routines called:
None
How to use:
my $obj = new Oracle::DML::Common; # or
my $obj = Oracle::DML::Common->new;
Return: new empty or initialized Oracle::DML::Common object.
This method constructs a Perl object and capture any parameters if specified.
METHODS
The following are the common methods, routines, and functions used by other classes.
Connection Methods
The :db_conn tag includes sub-rountines for creating and managing database connections.
use Oracle::DML::Common qw(:db_conn);
It includes the following sub-routines:
get_dbh($con, $dtp)
Input variables:
$con - Connection string for
Oralce: usr/pwd@db (default)
CSV: /path/to/file
ODBC|SQL: usr/pwd@DSN[:approle/rolepwd]
$dtp - Database type: Oracle, CSV, etc
Variables used or routines called:
DBI
DBD::Oracle
Win32::ODBC
How to use:
$self->get_dbh('usr/pwd@dblk', 'Oracle');
$self->get_dbh('usr/pwd@dblk:approle/rpwd', 'SQL');
Return: database handler
If application role is provided, it will activate the application role as well.
is_object_exist($dbh,$tn,$tp)
Input variables:
$dbh - database handler, required.
$tn - table/object name, required.
schema.table_name is allowed.
Variables used or routines called:
echoMSG - display messages.
How to use:
# whether table 'emp' exist
$yesno = $self->is_object_exist($dbh,'emp');
Return: 0 - the object does not exist; 1 - the object exist;
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
HISTORY
Version 0.1
This versionwas contained in Oracle::Trigger class.
Version 0.2
04/29/2005 (htu) - extracted common routines from Oracle::Trigger class and formed Oracle::DML::Common.
SEE ALSO (some of docs that I check often)
Data::Describe, Oracle::Loader, CGI::Getopt, File::Xcopy, Oracle::Trigger, perltoot(1), perlobj(1), perlbot(1), perlsub(1), perldata(1), perlsub(1), perlmod(1), perlmodlib(1), perlref(1), perlreftut(1).
AUTHOR
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)
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 467:
You forgot a '=back' before '=head1'