#!/usr/bin/perl
#------------------------------------------------------------------------------
# Project  : Oracle2Postgresql
# Name     : ora2pg.pl
# Language : 5.006 built for i686-linux
# OS       : linux RedHat 6.2 kernel 2.2.14-5
# Author   : Gilles Darold, gilles@darold.net
# Copyright: Copyright (c) 2000 : Gilles Darold - All rights reserved -
# Function : Script used to convert Oracle Database schema to PostgreSQL
#------------------------------------------------------------------------------
# Version  : 1.1
#------------------------------------------------------------------------------

BEGIN {
        $ENV{ORACLE_HOME} = '/usr/local/oracle/oracle816';
}

use strict;

use Ora2Pg;

# Initialyze the database connection
my $dbsrc = 'dbi:Oracle:host=test.mydomain.com;sid=TEST;port=1521';
my $dbuser = 'system';
my $dbpwd = 'manager';

# Create an instance of the XSD::DBISchema perl module
my $schema = new Ora2Pg (
	datasource => $dbsrc,		# Database DBD datasource
	user => $dbuser,		# Database user
	password => $dbpwd,		# Database password
	debug => 1,			# Verbose mode
	schema => 'APPS',		# Extract only APPS schema
	type => 'TABLE',		# Extract table
#	type => 'PACKAGE',		# Extract PACKAGE information
#	type => 'DATA',			# Extract data with output as INSERT statement
#	type => 'COPY',			# Extract data with output as COPY statement
#	type => 'VIEW',			# Extract views
#	type => 'GRANT',		# Extract privileges
#	type => 'SEQUENCE',		# Extract sequences
#	type => 'TRIGGER',		# Extract triggers
#	type => 'FUNCTION',		# Extract functions
#	type => 'PROCEDURE',		# Extract procedures
#	tables => [('FND_USER_PREFERENCES')],	# unique index + users
#	tables => [('CUSTOMER_DATA')],		# Unique and primary key
#	tables => [('TX_DATA')],		# simple indexes
#	tables => [('NDW_BROWSER_ATTRIBUTES')],	# view
#	tables => [('TRIP_DATA')],	# Foreign key
#	showtableid => 1,		# Display only table indice during extraction
#	min => 1,			# Extract begin at indice 3
#	max => 10,			# Extract ended at indice 5
#	data_limit => 1000,		# Extract all data by dump of 1000 tuples
#	data_limit => 0,		# Extract all data in one pass. Be sure to have enougth memory
);

# Just export data of the following fields from table 's_txcot'
#$schema->modify_struct('s_txcot','dossier', 'rub', 'datapp');

# Function to use for extraction when type option is set to DATA or COPY
	# Send exported data to a PostgreSQL database
	#$schema->send_to_pgdb('dbi:Pg:dbname=template1;host=localhost;port=5432','test','test');

	# Output the data extracted from Oracle DB to a file or to STDOUT if no argument.
	# If you set the send_to_pgdb() method the output is given to PG database. See above
	#$schema->export_data("output.sql");

# Function to use ifor extraction with other type
	# Create the POSTGRESQL representation of all objects in the database
	$schema->export_schema("output.sql");

exit(0);