Guest User

Untitled

a guest
Jan 25th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.84 KB | None | 0 0
  1. require 'oci8'
  2.  
  3. class Stractor
  4.  
  5. def initialize( db_user, db_password, db_name )
  6.  
  7. @db_user = db_user
  8. @db_password = db_password
  9. @db_name = db_name
  10.  
  11. end
  12.  
  13. def extract_ddl( object_type, object_name )
  14.  
  15. ddl_sql = %q{
  16. SELECT dbms_metadata.get_ddl( :object_type, :object_name ) ddl_clob FROM dual
  17. }
  18.  
  19. db_connection = OCI8.new( @db_user, @db_password, @db_name )
  20.  
  21. ddl = ""
  22.  
  23. db_connection.exec( ddl_sql, object_type, object_name ) do |result|
  24. ddl << result[0].read
  25. end
  26.  
  27. db_connection.logoff
  28.  
  29. return ddl.delete( 34.chr ).gsub( Regexp.new( @db_user << '\.' ), '' ).strip << ";"
  30.  
  31. end
  32.  
  33. def extract_into_file( object_type, object_name, file_name )
  34.  
  35. ddl = extract_ddl( object_type, object_name )
  36. File.open(file_name, 'w') {|f| f.write( ddl )}
  37.  
  38. end
  39.  
  40. end
Add Comment
Please, Sign In to add comment