@@ -60,9 +60,13 @@ def create_user_tablespace
6060 )
6161 end
6262
63+ def database_users
64+ DATABASE_USERS . inject ( [ ] ) { |array , user | array << [ user . upcase , user ] }
65+ end
66+
6367 def cleanup_database_users
6468 return unless connection
65- DATABASE_USERS . each do |db |
69+ database_users . each do | db , _ |
6670 execute_statement ( <<-STATEMENT
6771 DECLARE
6872 v_count INTEGER := 0;
@@ -72,12 +76,12 @@ def cleanup_database_users
7276 SELECT COUNT (1)
7377 INTO v_count
7478 FROM dba_users
75- WHERE username = UPPER( '#{ db } ') ;
79+ WHERE username = '#{ db } ';
7680
7781 IF v_count != 0 THEN
7882 FOR x IN (SELECT *
7983 FROM v$session
80- WHERE username = UPPER( '#{ db } ') )
84+ WHERE username = '#{ db } ')
8185 LOOP
8286 EXECUTE IMMEDIATE 'ALTER SYSTEM DISCONNECT SESSION ''' || x.sid || ',' || x.serial# || ''' IMMEDIATE';
8387 END LOOP;
@@ -92,7 +96,7 @@ def cleanup_database_users
9296
9397 def setup_database_users
9498 return unless connection
95- DATABASE_USERS . each do |db |
99+ database_users . each do | db , passwd |
96100 execute_statement ( <<-STATEMENT
97101 DECLARE
98102 v_count INTEGER := 0;
@@ -101,10 +105,10 @@ def setup_database_users
101105 SELECT COUNT (1)
102106 INTO v_count
103107 FROM dba_users
104- WHERE username = UPPER ( '#{ db } ') ;
108+ WHERE username = '#{ db } ';
105109
106110 IF v_count = 0 THEN
107- EXECUTE IMMEDIATE ('CREATE USER #{ db } IDENTIFIED BY #{ db } DEFAULT TABLESPACE TBS_USERS QUOTA 10m ON TBS_USERS');
111+ EXECUTE IMMEDIATE ('CREATE USER #{ db } IDENTIFIED BY #{ passwd } DEFAULT TABLESPACE TBS_USERS QUOTA 10m ON TBS_USERS');
108112 EXECUTE IMMEDIATE ('GRANT create session, create table, create sequence, create procedure, create type, create view, create synonym TO #{ db } ');
109113 END IF;
110114 END;
0 commit comments