NAME
    CGI::AppBuilder::PLSQL - Oracle PL/SQL Procedures

SYNOPSIS
      use CGI::AppBuilder::Tasks;

      my $sec = CGI::AppBuilder::PLSQL->new();
      my ($sta, $msg) = $sec->exe_sql($ar);

DESCRIPTION
    This class provides methods for reading and parsing configuration files.

  new (ifn => 'file.cfg', opt => 'hvS:')
    This is a inherited method from CGI::AppBuilder. See the same method in
    CGI::AppBuilder for more details.

  disp_usr_task($q,$ar)
    Input variables:

      $q    - CGI class
      $ar   - array ref containing the following variables:

    Variables used or routines called:

      None

    How to use:

    Return: None

  
    sub form_input_name { my ($s, $ar, $id,$tsk) = @_;

      my $fmt = "<input type=\"hidden\" name=\"%s\" value=\"%s\" />\n";
      my $fi2 = "<input name=\"%s\" value=\"%s\" size=5 />\n";
      my $t   = "";
      $t .= sprintf $fmt,"pid", $ar->{pid}     if exist $ar->{pid} && $ar->{pid}; 
      $t .= sprintf $fmt,"sel_sn1", $ar->{sid} if exist $ar->{sid} && $ar->{sid}; 
      $t .= sprintf $fmt, "task", $tsk; 
      $t .= sprintf $fmt, $id, $ar->{$id}      if exists $ar->{$id} && $ar->{$id};
  
      if (exists $ar->{$id} && $ar->{$id}) {
        $t .= sprintf $fi2, "sel_sn2", "$ar->{$id}:";
      } else {
        $t .= sprintf $fi2, "sel_sn2", "";
      }

    }

  disp_cpsj($q,$ar)
    Input variables:

      $q    - CGI class
      $ar   - array ref containing the following variables:
            pid             : project id such as ckpt, owb, dba, etc.
            task            : task name required such as task1,task2,etc.
            target(sel_sn1) : select one (DB/server name) defining sid
            args(sel_sn2)   : select two (Arguments)
            task_fn         : task file name containing all the tasks defined
            svr_conn        : host/server connection info
            db_conn         : db connection info for each target/server
            task_conn       : special connection for tasks. 
                              It overwrites db_conn for the task

    Variables used or routines called:

      None

    How to use:

    Return: $pr will contain the parameters adn output from running the
    PL/SQL.

  disp_task_form($q,$ar,$txt)
    Input variables:

      $q    - CGI class
      $ar   - array ref containing the following variables:
            pid             : project id such as ckpt, owb, dba, etc.
            task            : task name required such as task1,task2,etc.
            target(sel_sn1) : select one (DB/server name) defining sid
            args(sel_sn2)   : select two (Arguments)
            task_fn         : task file name containing all the tasks defined
            svr_conn        : host/server connection info
            db_conn         : db connection info for each target/server
            task_conn       : special connection for tasks. 
                              It overwrites db_conn for the task

    Variables used or routines called:

      None

    How to use:

    Return: $pr will contain the parameters adn output from running the
    PL/SQL.

    sub disp_task_form { my ($s, $q, $ar, $txt, $ret) = @_;

      my $fmn = 'fm1';
         $fmn = $ar->{form_name}
           if exists $ar->{form_name} && $ar->{form_name};
      my %fr = (-name => $fmn, -method=>uc $ar->{method},
          -action=>"$ar->{action}?", -enctype=>$ar->{encoding} );
      if (exists $ar->{hr_form} && $ar->{hr_form}) {
        my $fr_hr = (ref($ar->{hr_form}) =~ /^HASH/) ? 
                    $ar->{hr_form} : eval $ar->{hr_form}; 
        foreach my $k (keys %{$fr_hr}) { $fr{$k} = $fr_hr->{$k}; }
      }
      my $t = ""; 
      $t .= $q->start_form(%fr);
      my $hvs = $s->set_param('vars_keep', $ar);
      if ($hvs) {
          foreach my $k (split /,/, $hvs) {
              my $v = $s->set_param($k, $ar);
              next if $v =~ /^\s*$/;
              $t .= $q->hidden($k,$v);
          }
      }
      $t .= "$txt\n";
      $t .= $q->end_form . "\n";
      print  $t if !$ret; 
      return $t if ($ret);
    }

HISTORY
    *   Version 0.10

        This version extracted from jp2.pl on 09/08/2010.

    *   Version 0.20

          09/08/2010 (htu): 
            1. start this PM

SEE ALSO (some of docs that I check often)
    Oracle::Loader, Oracle::Trigger, CGI::AppBuilder, File::Xcopy,
    CGI::AppBuilder::Message

AUTHOR
    Copyright (c) 2009 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)

POD ERRORS
    Hey! The above document had some coding errors, which are explained
    below:

    Around line 736:
        You forgot a '=back' before '=head1'

