ruby-plsql 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  describe "Version" do
4
4
  it "should return ruby-plsql version" do
5
- PLSQL::VERSION.should == File.read(File.dirname(__FILE__)+'/../../VERSION').chomp
5
+ expect(PLSQL::VERSION).to eq(File.read(File.dirname(__FILE__)+'/../../VERSION').chomp)
6
6
  end
7
7
 
8
8
  end
@@ -44,15 +44,15 @@ describe "View" do
44
44
  describe "find" do
45
45
 
46
46
  it "should find existing view" do
47
- PLSQL::View.find(plsql, :test_employees_v).should_not be_nil
47
+ expect(PLSQL::View.find(plsql, :test_employees_v)).not_to be_nil
48
48
  end
49
49
 
50
50
  it "should not find nonexisting view" do
51
- PLSQL::View.find(plsql, :qwerty123456).should be_nil
51
+ expect(PLSQL::View.find(plsql, :qwerty123456)).to be_nil
52
52
  end
53
53
 
54
54
  it "should find existing view in schema" do
55
- plsql.test_employees_v.should be_instance_of(PLSQL::View)
55
+ expect(plsql.test_employees_v).to be_instance_of(PLSQL::View)
56
56
  end
57
57
 
58
58
  end
@@ -68,11 +68,11 @@ describe "View" do
68
68
  end
69
69
 
70
70
  it "should find synonym to view" do
71
- PLSQL::View.find(plsql, :test_employees_v_synonym).should_not be_nil
71
+ expect(PLSQL::View.find(plsql, :test_employees_v_synonym)).not_to be_nil
72
72
  end
73
73
 
74
74
  it "should find view using synonym in schema" do
75
- plsql.test_employees_v_synonym.should be_instance_of(PLSQL::View)
75
+ expect(plsql.test_employees_v_synonym).to be_instance_of(PLSQL::View)
76
76
  end
77
77
 
78
78
  end
@@ -80,11 +80,11 @@ describe "View" do
80
80
  describe "public synonym" do
81
81
 
82
82
  it "should find public synonym to view" do
83
- PLSQL::View.find(plsql, :user_tables).should_not be_nil
83
+ expect(PLSQL::View.find(plsql, :user_tables)).not_to be_nil
84
84
  end
85
85
 
86
86
  it "should find view using public synonym in schema" do
87
- plsql.user_tables.should be_instance_of(PLSQL::View)
87
+ expect(plsql.user_tables).to be_instance_of(PLSQL::View)
88
88
  end
89
89
 
90
90
  end
@@ -92,11 +92,11 @@ describe "View" do
92
92
  describe "columns" do
93
93
 
94
94
  it "should get column names for view" do
95
- plsql.test_employees_v.column_names.should == [:employee_id, :first_name, :last_name, :hire_date, :status]
95
+ expect(plsql.test_employees_v.column_names).to eq([:employee_id, :first_name, :last_name, :hire_date, :status])
96
96
  end
97
97
 
98
98
  it "should get columns metadata for view" do
99
- plsql.test_employees_v.columns.should == {
99
+ expect(plsql.test_employees_v.columns).to eq({
100
100
  :employee_id => {
101
101
  :position=>1, :data_type=>"NUMBER", :data_length=>22, :data_precision=>15, :data_scale=>0, :char_used=>nil,
102
102
  :type_owner=>nil, :type_name=>nil, :sql_type_name=>nil, :nullable => false, :data_default => nil},
@@ -112,7 +112,7 @@ describe "View" do
112
112
  :status => {
113
113
  :position=>5, :data_type=>"VARCHAR2", :data_length=>1, :data_precision=>nil, :data_scale=>nil, :char_used=>"B",
114
114
  :type_owner=>nil, :type_name=>nil, :sql_type_name=>nil, :nullable => true, :data_default => nil}
115
- }
115
+ })
116
116
  end
117
117
 
118
118
  end
@@ -120,22 +120,22 @@ describe "View" do
120
120
  describe "insert" do
121
121
  it "should insert a record in view" do
122
122
  plsql.test_employees_v.insert @employees.first
123
- plsql.test_employees_v.all.should == [@employees.first]
123
+ expect(plsql.test_employees_v.all).to eq([@employees.first])
124
124
  end
125
125
 
126
126
  it "should insert a record in view using partial list of columns" do
127
127
  plsql.test_employees_v.insert @employees.first.except(:hire_date)
128
- plsql.test_employees_v.all.should == [@employees.first.merge(:hire_date => nil)]
128
+ expect(plsql.test_employees_v.all).to eq([@employees.first.merge(:hire_date => nil)])
129
129
  end
130
130
 
131
131
  it "should insert default value from table definition if value not provided" do
132
132
  plsql.test_employees_v.insert @employees.first.except(:status)
133
- plsql.test_employees_v.all.should == [@employees.first.merge(:status => 'N')]
133
+ expect(plsql.test_employees_v.all).to eq([@employees.first.merge(:status => 'N')])
134
134
  end
135
135
 
136
136
  it "should insert array of records in view" do
137
137
  plsql.test_employees_v.insert @employees
138
- plsql.test_employees_v.all("ORDER BY employee_id").should == @employees
138
+ expect(plsql.test_employees_v.all("ORDER BY employee_id")).to eq(@employees)
139
139
  end
140
140
 
141
141
  end
@@ -143,32 +143,32 @@ describe "View" do
143
143
  describe "insert values" do
144
144
  it "should insert a record with array of values" do
145
145
  plsql.test_employees_v.insert_values @employees_all_values.first
146
- plsql.test_employees_v.all.should == [@employees.first]
146
+ expect(plsql.test_employees_v.all).to eq([@employees.first])
147
147
  end
148
148
 
149
149
  it "should insert a record with list of all fields and array of values" do
150
150
  plsql.test_employees_v.insert_values @employees_all_fields, @employees_all_values.first
151
- plsql.test_employees_v.all.should == [@employees.first]
151
+ expect(plsql.test_employees_v.all).to eq([@employees.first])
152
152
  end
153
153
 
154
154
  it "should insert a record with list of some fields and array of values" do
155
155
  plsql.test_employees_v.insert_values @employees_some_fields, @employees_some_values.first
156
- plsql.test_employees_v.all.should == [@employees.first.merge(@employee_default_values)]
156
+ expect(plsql.test_employees_v.all).to eq([@employees.first.merge(@employee_default_values)])
157
157
  end
158
158
 
159
159
  it "should insert many records with array of values" do
160
160
  plsql.test_employees_v.insert_values *@employees_all_values
161
- plsql.test_employees_v.all.should == @employees
161
+ expect(plsql.test_employees_v.all).to eq(@employees)
162
162
  end
163
163
 
164
164
  it "should insert many records with list of all fields and array of values" do
165
165
  plsql.test_employees_v.insert_values @employees_all_fields, *@employees_all_values
166
- plsql.test_employees_v.all.should == @employees
166
+ expect(plsql.test_employees_v.all).to eq(@employees)
167
167
  end
168
168
 
169
169
  it "should insert many records with list of some fields and array of values" do
170
170
  plsql.test_employees_v.insert_values @employees_some_fields, *@employees_some_values
171
- plsql.test_employees_v.all.should == @employees.map{|e| e.merge(@employee_default_values)}
171
+ expect(plsql.test_employees_v.all).to eq(@employees.map{|e| e.merge(@employee_default_values)})
172
172
  end
173
173
 
174
174
  end
@@ -179,20 +179,20 @@ describe "View" do
179
179
  end
180
180
 
181
181
  it "should select first record in view" do
182
- plsql.test_employees_v.select(:first, "ORDER BY employee_id").should == @employees.first
183
- plsql.test_employees_v.first("ORDER BY employee_id").should == @employees.first
182
+ expect(plsql.test_employees_v.select(:first, "ORDER BY employee_id")).to eq(@employees.first)
183
+ expect(plsql.test_employees_v.first("ORDER BY employee_id")).to eq(@employees.first)
184
184
  end
185
185
 
186
186
  it "should select all records in view" do
187
- plsql.test_employees_v.select(:all, "ORDER BY employee_id").should == @employees
188
- plsql.test_employees_v.all("ORDER BY employee_id").should == @employees
189
- plsql.test_employees_v.all(:order_by => :employee_id).should == @employees
187
+ expect(plsql.test_employees_v.select(:all, "ORDER BY employee_id")).to eq(@employees)
188
+ expect(plsql.test_employees_v.all("ORDER BY employee_id")).to eq(@employees)
189
+ expect(plsql.test_employees_v.all(:order_by => :employee_id)).to eq(@employees)
190
190
  end
191
191
 
192
192
  it "should select record in view using WHERE condition" do
193
- plsql.test_employees_v.select(:first, "WHERE employee_id = :1", @employees.first[:employee_id]).should == @employees.first
194
- plsql.test_employees_v.first("WHERE employee_id = :1", @employees.first[:employee_id]).should == @employees.first
195
- plsql.test_employees_v.first(:employee_id => @employees.first[:employee_id]).should == @employees.first
193
+ expect(plsql.test_employees_v.select(:first, "WHERE employee_id = :1", @employees.first[:employee_id])).to eq(@employees.first)
194
+ expect(plsql.test_employees_v.first("WHERE employee_id = :1", @employees.first[:employee_id])).to eq(@employees.first)
195
+ expect(plsql.test_employees_v.first(:employee_id => @employees.first[:employee_id])).to eq(@employees.first)
196
196
  end
197
197
 
198
198
  it "should select record in view using :column => nil condition" do
@@ -200,18 +200,18 @@ describe "View" do
200
200
  employee[:employee_id] = employee[:employee_id] + 1
201
201
  employee[:hire_date] = nil
202
202
  plsql.test_employees_v.insert employee
203
- plsql.test_employees_v.first("WHERE hire_date IS NULL").should == employee
204
- plsql.test_employees_v.first(:hire_date => nil).should == employee
203
+ expect(plsql.test_employees_v.first("WHERE hire_date IS NULL")).to eq(employee)
204
+ expect(plsql.test_employees_v.first(:hire_date => nil)).to eq(employee)
205
205
  end
206
206
 
207
207
  it "should count records in view" do
208
- plsql.test_employees_v.select(:count).should == @employees.size
209
- plsql.test_employees_v.count.should == @employees.size
208
+ expect(plsql.test_employees_v.select(:count)).to eq(@employees.size)
209
+ expect(plsql.test_employees_v.count).to eq(@employees.size)
210
210
  end
211
211
 
212
212
  it "should count records in view using condition" do
213
- plsql.test_employees_v.select(:count, "WHERE employee_id <= :1", @employees[2][:employee_id]).should == 3
214
- plsql.test_employees_v.count("WHERE employee_id <= :1", @employees[2][:employee_id]).should == 3
213
+ expect(plsql.test_employees_v.select(:count, "WHERE employee_id <= :1", @employees[2][:employee_id])).to eq(3)
214
+ expect(plsql.test_employees_v.count("WHERE employee_id <= :1", @employees[2][:employee_id])).to eq(3)
215
215
  end
216
216
 
217
217
  end
@@ -221,17 +221,17 @@ describe "View" do
221
221
  employee_id = @employees.first[:employee_id]
222
222
  plsql.test_employees_v.insert @employees.first
223
223
  plsql.test_employees_v.update :first_name => 'Test', :where => {:employee_id => employee_id}
224
- plsql.test_employees_v.first(:employee_id => employee_id)[:first_name].should == 'Test'
224
+ expect(plsql.test_employees_v.first(:employee_id => employee_id)[:first_name]).to eq('Test')
225
225
  end
226
226
 
227
227
  it "should update a record in view using String WHERE condition" do
228
228
  employee_id = @employees.first[:employee_id]
229
229
  plsql.test_employees_v.insert @employees
230
230
  plsql.test_employees_v.update :first_name => 'Test', :where => "employee_id = #{employee_id}"
231
- plsql.test_employees_v.first(:employee_id => employee_id)[:first_name].should == 'Test'
231
+ expect(plsql.test_employees_v.first(:employee_id => employee_id)[:first_name]).to eq('Test')
232
232
  # all other records should not be changed
233
233
  plsql.test_employees_v.all("WHERE employee_id > :1", employee_id) do |employee|
234
- employee[:first_name].should_not == 'Test'
234
+ expect(employee[:first_name]).not_to eq('Test')
235
235
  end
236
236
  end
237
237
 
@@ -239,7 +239,7 @@ describe "View" do
239
239
  plsql.test_employees_v.insert @employees
240
240
  plsql.test_employees_v.update :first_name => 'Test'
241
241
  plsql.test_employees_v.all do |employee|
242
- employee[:first_name].should == 'Test'
242
+ expect(employee[:first_name]).to eq('Test')
243
243
  end
244
244
  end
245
245
 
@@ -250,14 +250,14 @@ describe "View" do
250
250
  employee_id = @employees.first[:employee_id]
251
251
  plsql.test_employees_v.insert @employees
252
252
  plsql.test_employees_v.delete :employee_id => employee_id
253
- plsql.test_employees_v.first(:employee_id => employee_id).should be_nil
254
- plsql.test_employees_v.all(:order_by => :employee_id).should == @employees[1, @employees.size-1]
253
+ expect(plsql.test_employees_v.first(:employee_id => employee_id)).to be_nil
254
+ expect(plsql.test_employees_v.all(:order_by => :employee_id)).to eq(@employees[1, @employees.size-1])
255
255
  end
256
256
 
257
257
  it "should delete all records from view" do
258
258
  plsql.test_employees_v.insert @employees
259
259
  plsql.test_employees_v.delete
260
- plsql.test_employees_v.all.should be_empty
260
+ expect(plsql.test_employees_v.all).to be_empty
261
261
  end
262
262
  end
263
263
 
@@ -1,9 +1,18 @@
1
1
  require "rubygems"
2
2
  require "bundler"
3
3
  Bundler.setup(:default, :development)
4
+ require 'simplecov'
4
5
 
5
- $:.unshift(File.dirname(__FILE__) + '/../lib')
6
+ SimpleCov.configure do
7
+ load_profile 'root_filter'
8
+ load_profile 'test_frameworks'
9
+ end
10
+
11
+ ENV["COVERAGE"] && SimpleCov.start do
12
+ add_filter "/.rvm/"
13
+ end
6
14
 
15
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
7
16
  require 'rspec'
8
17
 
9
18
  unless ENV['NO_ACTIVERECORD']
@@ -15,8 +24,10 @@ end
15
24
  require 'ruby-plsql'
16
25
 
17
26
  DATABASE_NAME = ENV['DATABASE_NAME'] || 'orcl'
27
+ DATABASE_SERVICE_NAME = (defined?(JRUBY_VERSION) ? "/" : "") +
28
+ (ENV['DATABASE_SERVICE_NAME'] || DATABASE_NAME)
18
29
  DATABASE_HOST = ENV['DATABASE_HOST'] || 'localhost'
19
- DATABASE_PORT = ENV['DATABASE_PORT'] || 1521
30
+ DATABASE_PORT = (ENV['DATABASE_PORT'] || 1521).to_i
20
31
  DATABASE_USERS_AND_PASSWORDS = [
21
32
  [ENV['DATABASE_USER'] || 'hr', ENV['DATABASE_PASSWORD'] || 'hr'],
22
33
  [ENV['DATABASE_USER2'] || 'arunit', ENV['DATABASE_PASSWORD2'] || 'arunit']
@@ -24,32 +35,44 @@ DATABASE_USERS_AND_PASSWORDS = [
24
35
  # specify which database version is used (will be verified in one test)
25
36
  DATABASE_VERSION = ENV['DATABASE_VERSION'] || '10.2.0.4'
26
37
 
38
+ def get_eazy_connect_url(svc_separator = "")
39
+ "#{DATABASE_HOST}:#{DATABASE_PORT}#{svc_separator}#{DATABASE_SERVICE_NAME}"
40
+ end
41
+
42
+ def get_connection_url
43
+ unless defined?(JRUBY_VERSION)
44
+ (ENV['DATABASE_USE_TNS'] == 'NO') ? get_eazy_connect_url("/") : DATABASE_NAME
45
+ else
46
+ "jdbc:oracle:thin:@#{get_eazy_connect_url}"
47
+ end
48
+ end
49
+
27
50
  def get_connection(user_number = 0)
28
51
  database_user, database_password = DATABASE_USERS_AND_PASSWORDS[user_number]
29
52
  unless defined?(JRUBY_VERSION)
30
- begin
31
- OCI8.new(database_user, database_password, DATABASE_NAME)
32
- # if connection fails then sleep 5 seconds and retry
33
- rescue OCIError
34
- sleep 5
35
- OCI8.new(database_user, database_password, DATABASE_NAME)
53
+ try_to_connect(OCIError) do
54
+ OCI8.new(database_user, database_password, get_connection_url)
36
55
  end
37
56
  else
38
- begin
39
- java.sql.DriverManager.getConnection("jdbc:oracle:thin:@#{DATABASE_HOST}:#{DATABASE_PORT}:#{DATABASE_NAME}",
40
- database_user, database_password)
41
- # if connection fails then sleep 5 seconds and retry
42
- rescue NativeException
43
- sleep 5
44
- java.sql.DriverManager.getConnection("jdbc:oracle:thin:@#{DATABASE_HOST}:#{DATABASE_PORT}:#{DATABASE_NAME}",
45
- database_user, database_password)
57
+ try_to_connect(NativeException) do
58
+ java.sql.DriverManager.getConnection(get_connection_url, database_user, database_password)
46
59
  end
47
60
  end
48
61
  end
49
62
 
63
+ def try_to_connect(exception)
64
+ begin
65
+ yield
66
+ # if connection fails then sleep 5 seconds and retry
67
+ rescue exception
68
+ sleep 5
69
+ yield
70
+ end
71
+ end
72
+
50
73
  CONNECTION_PARAMS = {
51
74
  :adapter => "oracle_enhanced",
52
- :database => DATABASE_NAME,
75
+ :database => DATABASE_SERVICE_NAME,
53
76
  :host => DATABASE_HOST,
54
77
  :port => DATABASE_PORT,
55
78
  :username => DATABASE_USERS_AND_PASSWORDS[0][0],
metadata CHANGED
@@ -1,79 +1,115 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-plsql
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
5
- prerelease:
4
+ version: 0.5.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Raimonds Simanovskis
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-04-16 00:00:00.000000000 Z
11
+ date: 2014-10-12 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: jeweler
16
- requirement: &2161503140 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
- - - ~>
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
- version: 1.8.3
19
+ version: 2.0.1
22
20
  type: :development
23
21
  prerelease: false
24
- version_requirements: *2161503140
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 2.0.1
25
27
  - !ruby/object:Gem::Dependency
26
28
  name: rspec
27
- requirement: &2161502660 !ruby/object:Gem::Requirement
28
- none: false
29
+ requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
- - - ~>
31
+ - - "~>"
31
32
  - !ruby/object:Gem::Version
32
- version: '2.9'
33
+ version: '3.1'
33
34
  type: :development
34
35
  prerelease: false
35
- version_requirements: *2161502660
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '3.1'
36
41
  - !ruby/object:Gem::Dependency
37
42
  name: activerecord
38
- requirement: &2161502180 !ruby/object:Gem::Requirement
39
- none: false
43
+ requirement: !ruby/object:Gem::Requirement
40
44
  requirements:
41
- - - ~>
45
+ - - "<"
46
+ - !ruby/object:Gem::Version
47
+ version: 4.2.0
48
+ - - ">="
42
49
  - !ruby/object:Gem::Version
43
50
  version: 3.2.3
44
51
  type: :development
45
52
  prerelease: false
46
- version_requirements: *2161502180
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - "<"
56
+ - !ruby/object:Gem::Version
57
+ version: 4.2.0
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 3.2.3
47
61
  - !ruby/object:Gem::Dependency
48
62
  name: activerecord-oracle_enhanced-adapter
49
- requirement: &2161501700 !ruby/object:Gem::Requirement
50
- none: false
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "<"
66
+ - !ruby/object:Gem::Version
67
+ version: 1.6.0
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: 1.4.1
71
+ type: :development
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
51
74
  requirements:
52
- - - ~>
75
+ - - "<"
76
+ - !ruby/object:Gem::Version
77
+ version: 1.6.0
78
+ - - ">="
53
79
  - !ruby/object:Gem::Version
54
80
  version: 1.4.1
81
+ - !ruby/object:Gem::Dependency
82
+ name: simplecov
83
+ requirement: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
55
88
  type: :development
56
89
  prerelease: false
57
- version_requirements: *2161501700
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
58
95
  - !ruby/object:Gem::Dependency
59
96
  name: ruby-oci8
60
- requirement: &2161501220 !ruby/object:Gem::Requirement
61
- none: false
97
+ requirement: !ruby/object:Gem::Requirement
62
98
  requirements:
63
- - - ! '>='
99
+ - - "~>"
64
100
  - !ruby/object:Gem::Version
65
- version: '0'
101
+ version: 2.1.2
66
102
  type: :development
67
103
  prerelease: false
68
- version_requirements: *2161501220
69
- description: ! 'ruby-plsql gem provides simple Ruby API for calling Oracle PL/SQL
70
- procedures.
71
-
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - "~>"
107
+ - !ruby/object:Gem::Version
108
+ version: 2.1.2
109
+ description: |
110
+ ruby-plsql gem provides simple Ruby API for calling Oracle PL/SQL procedures.
72
111
  It could be used both for accessing Oracle PL/SQL API procedures in legacy applications
73
-
74
112
  as well as it could be used to create PL/SQL unit tests using Ruby testing libraries.
75
-
76
- '
77
113
  email: raimonds.simanovskis@gmail.com
78
114
  executables: []
79
115
  extensions: []
@@ -120,29 +156,25 @@ files:
120
156
  - spec/spec_helper.rb
121
157
  homepage: http://github.com/rsim/ruby-plsql
122
158
  licenses: []
159
+ metadata: {}
123
160
  post_install_message:
124
161
  rdoc_options: []
125
162
  require_paths:
126
163
  - lib
127
164
  required_ruby_version: !ruby/object:Gem::Requirement
128
- none: false
129
165
  requirements:
130
- - - ! '>='
166
+ - - ">="
131
167
  - !ruby/object:Gem::Version
132
168
  version: '0'
133
- segments:
134
- - 0
135
- hash: 4542773542064598354
136
169
  required_rubygems_version: !ruby/object:Gem::Requirement
137
- none: false
138
170
  requirements:
139
- - - ! '>='
171
+ - - ">="
140
172
  - !ruby/object:Gem::Version
141
173
  version: '0'
142
174
  requirements: []
143
175
  rubyforge_project:
144
- rubygems_version: 1.8.11
176
+ rubygems_version: 2.2.2
145
177
  signing_key:
146
- specification_version: 3
178
+ specification_version: 4
147
179
  summary: Ruby API for calling Oracle PL/SQL procedures.
148
180
  test_files: []