mirror of
				https://github.com/postgres/postgres.git
				synced 2025-10-29 22:49:41 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			73 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
| #!/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);
 | |
| 
 |