The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/bin/env perl -w
# -*- mode: cperl -*-
# $Id: 01-createTable.t,v 1.9 2005-07-28 03:09:35 ezra Exp $

BEGIN {
  unless(grep /blib/, @INC) {
    chdir 't' if -d 't';
    unshift @INC, '../lib' if -d '../lib';
  }
}

use Oracle::SQLLoader;
use strict;
use Test;
use Cwd;

BEGIN {
 plan tests => 3
}


my $testTableName = "SQLLOADER_TEST_TABLE";
my $ddlFile = getcwd() . "/$testTableName.sql";
my $sqlplus = $^O =~/win32/i ? 'sqlplus.exe' : 'sqlplus';

ok(($sqlplus = Oracle::SQLLoader->findProgram($sqlplus)));

ok(generateSQL());

ok(createTable());

cleanup();


sub generateSQL {
  open (DDL, ">$ddlFile") || return 0;
  print "generateSQL to file $ddlFile\n";
  print DDL "
drop table $testTableName;\n
create table $testTableName (
  char_col     char(10),
  varchar_col  varchar2(10),
  int_col      number(10),
  float_col    number(15,5),
  largetext_col varchar2(4000),
  date_col     date
);\n exit;\n";
  close DDL;
  return 1;
}


sub createTable {
  return 0 unless exists $ENV{'ORACLE_USERID'};
  return 0 unless exists $ENV{'ORACLE_SID'};
  my $userId = $ENV{'ORACLE_USERID'}. '@' .$ENV{'ORACLE_SID'};
  my $exe = "$sqlplus $userId \@$testTableName.sql";
  print "Creating table with command \"$exe\"\n";
  my $resLog = `$exe`;
  return 1 if $resLog =~ /Table created\./;
  return 0;
}

sub cleanup {
  unlink $ddlFile;
}