ruby-plsql 0.5.3 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.github/stale.yml +37 -0
- data/.github/workflows/rubocop.yml +37 -0
- data/.github/workflows/test.yml +69 -0
- data/.rubocop.yml +147 -0
- data/.travis.yml +88 -0
- data/.travis/oracle/download.sh +15 -0
- data/.travis/oracle/install.sh +32 -0
- data/.travis/setup_accounts.sh +9 -0
- data/Gemfile +17 -9
- data/History.txt +76 -0
- data/README.md +29 -6
- data/Rakefile +31 -26
- data/VERSION +1 -1
- data/Vagrantfile +4 -4
- data/ci/network/admin/tnsnames.ora +7 -0
- data/ci/setup_accounts.sh +9 -0
- data/gemfiles/Gemfile.activerecord-5.0 +21 -0
- data/gemfiles/Gemfile.activerecord-5.1 +21 -0
- data/gemfiles/Gemfile.activerecord-5.2 +21 -0
- data/gemfiles/Gemfile.activerecord-6.0 +21 -0
- data/gemfiles/Gemfile.activerecord-6.1 +21 -0
- data/gemfiles/Gemfile.activerecord-main +21 -0
- data/lib/plsql/connection.rb +19 -22
- data/lib/plsql/helpers.rb +1 -3
- data/lib/plsql/jdbc_connection.rb +70 -68
- data/lib/plsql/oci8_patches.rb +2 -2
- data/lib/plsql/oci_connection.rb +62 -77
- data/lib/plsql/package.rb +61 -46
- data/lib/plsql/procedure.rb +358 -78
- data/lib/plsql/procedure_call.rb +508 -463
- data/lib/plsql/schema.rb +96 -101
- data/lib/plsql/sequence.rb +10 -13
- data/lib/plsql/sql_statements.rb +9 -11
- data/lib/plsql/table.rb +60 -63
- data/lib/plsql/type.rb +71 -76
- data/lib/plsql/variable.rb +90 -94
- data/lib/plsql/version.rb +1 -1
- data/lib/plsql/view.rb +16 -19
- data/ruby-plsql.gemspec +55 -35
- data/spec/plsql/connection_spec.rb +72 -66
- data/spec/plsql/package_spec.rb +63 -14
- data/spec/plsql/procedure_spec.rb +603 -261
- data/spec/plsql/schema_spec.rb +47 -23
- data/spec/plsql/sequence_spec.rb +2 -2
- data/spec/plsql/sql_statements_spec.rb +6 -6
- data/spec/plsql/table_spec.rb +84 -79
- data/spec/plsql/type_spec.rb +24 -30
- data/spec/plsql/variable_spec.rb +80 -88
- data/spec/plsql/version_spec.rb +4 -4
- data/spec/plsql/view_spec.rb +42 -42
- data/spec/spec_helper.rb +38 -35
- data/spec/support/create_arunit_user.sql +2 -0
- data/spec/support/custom_config.rb.sample +14 -0
- data/spec/support/test_db.rb +12 -13
- data/spec/support/unlock_and_setup_hr_user.sql +2 -0
- metadata +111 -34
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 786698aedb4dff545a44a91fda4b7529d392b6d3afaee1e5a4447ee3be81a9d6
|
4
|
+
data.tar.gz: fa71bb0ec3ad558ab6805b077069401225fb1d8e949f4dc00360ecd085bae81b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f814a2f6b9b2b0784e41f861f0ed0965cb814aaf4e8687293f8285e4758810fd4979e1ef96d7f7b0a305e701f0426fb81d3be0ece725abdf1888270a91131691
|
7
|
+
data.tar.gz: c17b7330167301d53715b4d43441acb67697a53a0b0378ea51f65824b96215ece3730db3af01be4e7442a2c3c632dc9fc14109425cfda73cfa535997d77444ba
|
data/.github/stale.yml
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
# Configuration for probot-stale - https://github.com/probot/stale
|
2
|
+
|
3
|
+
# Number of days of inactivity before an Issue or Pull Request becomes stale
|
4
|
+
daysUntilStale: 60
|
5
|
+
# Number of days of inactivity before a stale Issue or Pull Request is closed
|
6
|
+
daysUntilClose: 7
|
7
|
+
# Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable
|
8
|
+
exemptLabels:
|
9
|
+
- pinned
|
10
|
+
- security
|
11
|
+
- "[Status] Maybe Later"
|
12
|
+
# Label to use when marking as stale
|
13
|
+
staleLabel: wontfix
|
14
|
+
# Comment to post when marking as stale. Set to `false` to disable
|
15
|
+
markComment: >
|
16
|
+
This issue has been automatically marked as stale because it has not had
|
17
|
+
recent activity. It will be closed if no further activity occurs. Thank you
|
18
|
+
for your contributions.
|
19
|
+
# Comment to post when removing the stale label. Set to `false` to disable
|
20
|
+
unmarkComment: false
|
21
|
+
# Comment to post when closing a stale Issue or Pull Request. Set to `false` to disable
|
22
|
+
closeComment: false
|
23
|
+
# Limit the number of actions per hour, from 1-30. Default is 30
|
24
|
+
limitPerRun: 30
|
25
|
+
# Limit to only `issues` or `pulls`
|
26
|
+
# only: issues
|
27
|
+
#
|
28
|
+
# Optionally, specify configuration settings that are specific to just 'issues' or 'pulls':
|
29
|
+
# pulls:
|
30
|
+
# daysUntilStale: 30
|
31
|
+
# markComment: >
|
32
|
+
# This pull request has been automatically marked as stale because it has not had
|
33
|
+
# recent activity. It will be closed if no further activity occurs. Thank you
|
34
|
+
# for your contributions.
|
35
|
+
# issues:
|
36
|
+
# exemptLabels:
|
37
|
+
# - confirmed
|
@@ -0,0 +1,37 @@
|
|
1
|
+
name: RuboCop
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
pull_request:
|
6
|
+
schedule:
|
7
|
+
- cron: "0 0 * * *"
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
build:
|
11
|
+
|
12
|
+
runs-on: ubuntu-latest
|
13
|
+
|
14
|
+
steps:
|
15
|
+
- uses: actions/checkout@v1
|
16
|
+
- name: Set up Ruby 2.6
|
17
|
+
uses: actions/setup-ruby@v1
|
18
|
+
with:
|
19
|
+
ruby-version: 2.6.x
|
20
|
+
- name: Install required package
|
21
|
+
run: |
|
22
|
+
sudo apt-get install alien
|
23
|
+
- name: Download Oracle instant client
|
24
|
+
run: |
|
25
|
+
wget -q https://download.oracle.com/otn_software/linux/instantclient/193000/oracle-instantclient19.3-basic-19.3.0.0.0-1.x86_64.rpm
|
26
|
+
wget -q https://download.oracle.com/otn_software/linux/instantclient/193000/oracle-instantclient19.3-sqlplus-19.3.0.0.0-1.x86_64.rpm
|
27
|
+
wget -q https://download.oracle.com/otn_software/linux/instantclient/193000/oracle-instantclient19.3-devel-19.3.0.0.0-1.x86_64.rpm
|
28
|
+
- name: Install Oracle instant client
|
29
|
+
run: |
|
30
|
+
sudo alien -i oracle-instantclient19.3-basic-19.3.0.0.0-1.x86_64.rpm
|
31
|
+
sudo alien -i oracle-instantclient19.3-sqlplus-19.3.0.0.0-1.x86_64.rpm
|
32
|
+
sudo alien -i oracle-instantclient19.3-devel-19.3.0.0.0-1.x86_64.rpm
|
33
|
+
|
34
|
+
- name: Build and run RuboCop
|
35
|
+
run: |
|
36
|
+
bundle install --jobs 4 --retry 3
|
37
|
+
bundle exec rubocop --parallel
|
@@ -0,0 +1,69 @@
|
|
1
|
+
name: test
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
pull_request:
|
6
|
+
|
7
|
+
jobs:
|
8
|
+
build:
|
9
|
+
|
10
|
+
runs-on: ubuntu-20.04
|
11
|
+
continue-on-error: true
|
12
|
+
strategy:
|
13
|
+
matrix:
|
14
|
+
ruby: [
|
15
|
+
3.0,
|
16
|
+
2.7,
|
17
|
+
2.6,
|
18
|
+
2.5,
|
19
|
+
ruby-head,
|
20
|
+
ruby-debug
|
21
|
+
]
|
22
|
+
env:
|
23
|
+
ORACLE_HOME: /usr/lib/oracle/18.5/client64
|
24
|
+
LD_LIBRARY_PATH: /usr/lib/oracle/18.5/client64/lib
|
25
|
+
NLS_LANG: AMERICAN_AMERICA.AL32UTF8
|
26
|
+
TNS_ADMIN: ./ci/network/admin
|
27
|
+
DATABASE_NAME: XEPDB1
|
28
|
+
TZ: Europe/Riga
|
29
|
+
DATABASE_SYS_PASSWORD: Oracle18
|
30
|
+
DATABASE_VERSION: 18.4.0.0
|
31
|
+
|
32
|
+
services:
|
33
|
+
oracle:
|
34
|
+
image: quillbuilduser/oracle-18-xe
|
35
|
+
ports:
|
36
|
+
- 1521:1521
|
37
|
+
env:
|
38
|
+
TZ: Europe/Riga
|
39
|
+
steps:
|
40
|
+
- uses: actions/checkout@v2
|
41
|
+
- name: Set up Ruby
|
42
|
+
uses: ruby/setup-ruby@v1
|
43
|
+
with:
|
44
|
+
ruby-version: ${{ matrix.ruby }}
|
45
|
+
- name: Install required package
|
46
|
+
run: |
|
47
|
+
sudo apt-get install alien
|
48
|
+
- name: Download Oracle client
|
49
|
+
run: |
|
50
|
+
wget -q https://download.oracle.com/otn_software/linux/instantclient/185000/oracle-instantclient18.5-basic-18.5.0.0.0-3.x86_64.rpm
|
51
|
+
wget -q https://download.oracle.com/otn_software/linux/instantclient/185000/oracle-instantclient18.5-sqlplus-18.5.0.0.0-3.x86_64.rpm
|
52
|
+
wget -q https://download.oracle.com/otn_software/linux/instantclient/185000/oracle-instantclient18.5-devel-18.5.0.0.0-3.x86_64.rpm
|
53
|
+
- name: Install Oracle client
|
54
|
+
run: |
|
55
|
+
sudo alien -i oracle-instantclient18.5-basic-18.5.0.0.0-3.x86_64.rpm
|
56
|
+
sudo alien -i oracle-instantclient18.5-sqlplus-18.5.0.0.0-3.x86_64.rpm
|
57
|
+
sudo alien -i oracle-instantclient18.5-devel-18.5.0.0.0-3.x86_64.rpm
|
58
|
+
- name: Install JDBC Driver
|
59
|
+
run: |
|
60
|
+
cp $ORACLE_HOME/lib/ojdbc8.jar lib/.
|
61
|
+
- name: Create database user
|
62
|
+
run: |
|
63
|
+
./ci/setup_accounts.sh
|
64
|
+
- name: Bundle install
|
65
|
+
run: |
|
66
|
+
bundle install --jobs 4 --retry 3
|
67
|
+
- name: Run RSpec
|
68
|
+
run: |
|
69
|
+
bundle exec rspec
|
data/.rubocop.yml
ADDED
@@ -0,0 +1,147 @@
|
|
1
|
+
# rubocop 0.51.0 requires Ruby 2.1
|
2
|
+
# We should not use cops only available for Ruby 2.1 or later
|
3
|
+
# since ruby-plsql itself supports Ruby 1.9.3
|
4
|
+
AllCops:
|
5
|
+
TargetRubyVersion: 2.3
|
6
|
+
DisabledByDefault: true
|
7
|
+
|
8
|
+
# Prefer &&/|| over and/or.
|
9
|
+
Style/AndOr:
|
10
|
+
Enabled: true
|
11
|
+
|
12
|
+
# Align `when` with `case`.
|
13
|
+
Layout/CaseIndentation:
|
14
|
+
Enabled: true
|
15
|
+
|
16
|
+
# Align comments with method definitions.
|
17
|
+
Layout/CommentIndentation:
|
18
|
+
Enabled: true
|
19
|
+
|
20
|
+
Layout/ElseAlignment:
|
21
|
+
Enabled: true
|
22
|
+
|
23
|
+
Layout/EmptyLineAfterMagicComment:
|
24
|
+
Enabled: true
|
25
|
+
|
26
|
+
# No extra empty lines.
|
27
|
+
Layout/EmptyLines:
|
28
|
+
Enabled: true
|
29
|
+
|
30
|
+
# In a regular class definition, no empty lines around the body.
|
31
|
+
Layout/EmptyLinesAroundClassBody:
|
32
|
+
Enabled: true
|
33
|
+
|
34
|
+
# In a regular method definition, no empty lines around the body.
|
35
|
+
Layout/EmptyLinesAroundMethodBody:
|
36
|
+
Enabled: true
|
37
|
+
|
38
|
+
# In a regular module definition, no empty lines around the body.
|
39
|
+
Layout/EmptyLinesAroundModuleBody:
|
40
|
+
Enabled: true
|
41
|
+
|
42
|
+
Layout/FirstArgumentIndentation:
|
43
|
+
Enabled: true
|
44
|
+
|
45
|
+
# Use Ruby >= 1.9 syntax for hashes. Prefer { a: :b } over { :a => :b }.
|
46
|
+
Style/HashSyntax:
|
47
|
+
Enabled: true
|
48
|
+
|
49
|
+
# Method definitions after `private` or `protected` isolated calls need one
|
50
|
+
# extra level of indentation.
|
51
|
+
Layout/IndentationConsistency:
|
52
|
+
Enabled: true
|
53
|
+
EnforcedStyle: indented_internal_methods
|
54
|
+
|
55
|
+
# Two spaces, no tabs (for indentation).
|
56
|
+
Layout/IndentationWidth:
|
57
|
+
Enabled: true
|
58
|
+
|
59
|
+
Layout/LeadingCommentSpace:
|
60
|
+
Enabled: true
|
61
|
+
|
62
|
+
Layout/SpaceAfterColon:
|
63
|
+
Enabled: true
|
64
|
+
|
65
|
+
Layout/SpaceAfterComma:
|
66
|
+
Enabled: true
|
67
|
+
|
68
|
+
Layout/SpaceAroundEqualsInParameterDefault:
|
69
|
+
Enabled: true
|
70
|
+
|
71
|
+
Layout/SpaceAroundKeyword:
|
72
|
+
Enabled: true
|
73
|
+
|
74
|
+
Layout/SpaceAroundOperators:
|
75
|
+
Enabled: true
|
76
|
+
|
77
|
+
Layout/SpaceBeforeComma:
|
78
|
+
Enabled: true
|
79
|
+
|
80
|
+
Layout/SpaceBeforeFirstArg:
|
81
|
+
Enabled: true
|
82
|
+
|
83
|
+
Style/DefWithParentheses:
|
84
|
+
Enabled: true
|
85
|
+
|
86
|
+
# Defining a method with parameters needs parentheses.
|
87
|
+
Style/MethodDefParentheses:
|
88
|
+
Enabled: true
|
89
|
+
|
90
|
+
Style/FrozenStringLiteralComment:
|
91
|
+
Enabled: false
|
92
|
+
EnforcedStyle: always
|
93
|
+
|
94
|
+
# Use `foo {}` not `foo{}`.
|
95
|
+
Layout/SpaceBeforeBlockBraces:
|
96
|
+
Enabled: true
|
97
|
+
|
98
|
+
# Use `foo { bar }` not `foo {bar}`.
|
99
|
+
Layout/SpaceInsideBlockBraces:
|
100
|
+
Enabled: true
|
101
|
+
|
102
|
+
# Use `{ a: 1 }` not `{a:1}`.
|
103
|
+
Layout/SpaceInsideHashLiteralBraces:
|
104
|
+
Enabled: true
|
105
|
+
|
106
|
+
Layout/SpaceInsideParens:
|
107
|
+
Enabled: true
|
108
|
+
|
109
|
+
# Check quotes usage according to lint rule below.
|
110
|
+
Style/StringLiterals:
|
111
|
+
Enabled: true
|
112
|
+
EnforcedStyle: double_quotes
|
113
|
+
|
114
|
+
# Detect hard tabs, no hard tabs.
|
115
|
+
Layout/Tab:
|
116
|
+
Enabled: true
|
117
|
+
|
118
|
+
# Blank lines should not have any spaces.
|
119
|
+
Layout/TrailingEmptyLines:
|
120
|
+
Enabled: true
|
121
|
+
|
122
|
+
# No trailing whitespace.
|
123
|
+
Layout/TrailingWhitespace:
|
124
|
+
Enabled: true
|
125
|
+
|
126
|
+
# Use quotes for string literals when they are enough.
|
127
|
+
Style/RedundantPercentQ:
|
128
|
+
Enabled: true
|
129
|
+
|
130
|
+
# Align `end` with the matching keyword or starting expression except for
|
131
|
+
# assignments, where it should be aligned with the LHS.
|
132
|
+
Layout/EndAlignment:
|
133
|
+
Enabled: true
|
134
|
+
EnforcedStyleAlignWith: variable
|
135
|
+
AutoCorrect: true
|
136
|
+
|
137
|
+
# Use my_method(my_arg) not my_method( my_arg ) or my_method my_arg.
|
138
|
+
Lint/RequireParentheses:
|
139
|
+
Enabled: true
|
140
|
+
|
141
|
+
Style/RedundantReturn:
|
142
|
+
Enabled: true
|
143
|
+
AllowMultipleReturnValues: true
|
144
|
+
|
145
|
+
Style/Semicolon:
|
146
|
+
Enabled: true
|
147
|
+
AllowAsExpressionSeparator: true
|
data/.travis.yml
ADDED
@@ -0,0 +1,88 @@
|
|
1
|
+
dist: xenial
|
2
|
+
sudo: required
|
3
|
+
|
4
|
+
jdk:
|
5
|
+
- openjdk8
|
6
|
+
env:
|
7
|
+
global:
|
8
|
+
- ORACLE_COOKIE=sqldev
|
9
|
+
- ORACLE_FILE=oracle11g/xe/oracle-xe-11.2.0-1.0.x86_64.rpm.zip
|
10
|
+
- ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe
|
11
|
+
- NLS_LANG=AMERICAN_AMERICA.AL32UTF8
|
12
|
+
- ORACLE_BASE=/u01/app/oracle
|
13
|
+
- LD_LIBRARY_PATH=$ORACLE_HOME/lib
|
14
|
+
- PATH=$PATH:$ORACLE_HOME/jdbc/lib
|
15
|
+
- DATABASE_VERSION=11.2.0.2
|
16
|
+
- ORACLE_SID=XE
|
17
|
+
- DATABASE_NAME=XE
|
18
|
+
- ORA_SDTZ='Europe/London' #Needed as a client parameter
|
19
|
+
- TZ='Europe/London' #Needed as a DB Server parameter
|
20
|
+
|
21
|
+
before_install:
|
22
|
+
- chmod +x .travis/oracle/download.sh
|
23
|
+
- chmod +x .travis/oracle/install.sh
|
24
|
+
- chmod +x .travis/setup_accounts.sh
|
25
|
+
- 'gem install bundler || gem install bundler -v 1.17.3'
|
26
|
+
|
27
|
+
install:
|
28
|
+
- .travis/oracle/download.sh
|
29
|
+
- .travis/oracle/install.sh
|
30
|
+
- .travis/setup_accounts.sh
|
31
|
+
- bundle install --without=development
|
32
|
+
|
33
|
+
language: ruby
|
34
|
+
rvm:
|
35
|
+
- 3.0.2
|
36
|
+
- 2.7.4
|
37
|
+
- 2.6.8
|
38
|
+
- 2.5.9
|
39
|
+
- 2.4.10
|
40
|
+
- 2.3.8
|
41
|
+
- jruby-9.2.17.0
|
42
|
+
- ruby-head
|
43
|
+
- jruby-head
|
44
|
+
|
45
|
+
gemfile:
|
46
|
+
- Gemfile
|
47
|
+
- gemfiles/Gemfile.activerecord-5.0
|
48
|
+
- gemfiles/Gemfile.activerecord-5.1
|
49
|
+
- gemfiles/Gemfile.activerecord-5.2
|
50
|
+
- gemfiles/Gemfile.activerecord-6.0
|
51
|
+
- gemfiles/Gemfile.activerecord-6.1
|
52
|
+
- gemfiles/Gemfile.activerecord-main
|
53
|
+
|
54
|
+
matrix:
|
55
|
+
exclude:
|
56
|
+
- gemfile: gemfiles/Gemfile.activerecord-main
|
57
|
+
rvm: jruby-head
|
58
|
+
- gemfile: gemfiles/Gemfile.activerecord-main
|
59
|
+
rvm: jruby-9.2.17.0
|
60
|
+
- gemfile: gemfiles/Gemfile.activerecord-main
|
61
|
+
rvm: 2.6.8
|
62
|
+
- gemfile: gemfiles/Gemfile.activerecord-main
|
63
|
+
rvm: 2.5.9
|
64
|
+
- gemfile: gemfiles/Gemfile.activerecord-main
|
65
|
+
rvm: 2.4.10
|
66
|
+
- gemfile: gemfiles/Gemfile.activerecord-main
|
67
|
+
rvm: 2.3.8
|
68
|
+
- gemfile: gemfiles/Gemfile.activerecord-main
|
69
|
+
rvm: 2.2.10
|
70
|
+
- gemfile: gemfiles/Gemfile.activerecord-6.0
|
71
|
+
rvm: 2.4.10
|
72
|
+
- gemfile: gemfiles/Gemfile.activerecord-6.0
|
73
|
+
rvm: 2.3.8
|
74
|
+
- gemfile: gemfiles/Gemfile.activerecord-6.0
|
75
|
+
rvm: 2.2.10
|
76
|
+
- gemfile: gemfiles/Gemfile.activerecord-6.1
|
77
|
+
rvm: 2.4.10
|
78
|
+
- gemfile: gemfiles/Gemfile.activerecord-6.1
|
79
|
+
rvm: 2.3.8
|
80
|
+
- gemfile: gemfiles/Gemfile.activerecord-6.1
|
81
|
+
rvm: 2.2.10
|
82
|
+
allow_failures:
|
83
|
+
- rvm: ruby-head
|
84
|
+
- rvm: jruby-head
|
85
|
+
- gemfile: gemfiles/Gemfile.activerecord-main
|
86
|
+
rvm: 3.0.2
|
87
|
+
- gemfile: gemfiles/Gemfile.activerecord-main
|
88
|
+
rvm: 2.7.4
|
@@ -0,0 +1,15 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
3
|
+
cd "$(dirname "$(readlink -f "$0")")"
|
4
|
+
|
5
|
+
deb_file=oracle-xe_11.2.0-1.0_amd64.deb
|
6
|
+
|
7
|
+
git clone https://github.com/wnameless/docker-oracle-xe-11g.git
|
8
|
+
|
9
|
+
cd docker-oracle-xe-11g/assets &&
|
10
|
+
cat "${deb_file}aa" "${deb_file}ab" "${deb_file}ac" > "${deb_file}"
|
11
|
+
|
12
|
+
pwd
|
13
|
+
|
14
|
+
ls -lAh "${deb_file}"
|
15
|
+
|
@@ -0,0 +1,32 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
3
|
+
[ -n "$ORACLE_FILE" ] || { echo "Missing ORACLE_FILE environment variable!"; exit 1; }
|
4
|
+
[ -n "$ORACLE_HOME" ] || { echo "Missing ORACLE_HOME environment variable!"; exit 1; }
|
5
|
+
|
6
|
+
cd "$(dirname "$(readlink -f "$0")")"
|
7
|
+
|
8
|
+
ORACLE_DEB=docker-oracle-xe-11g/assets/oracle-xe_11.2.0-1.0_amd64.deb
|
9
|
+
|
10
|
+
sudo apt-get -qq update
|
11
|
+
sudo apt-get --no-install-recommends -qq install bc libaio1
|
12
|
+
|
13
|
+
df -B1 /dev/shm | awk 'END { if ($1 != "shmfs" && $1 != "tmpfs" || $2 < 2147483648) exit 1 }' ||
|
14
|
+
( sudo rm -r /dev/shm && sudo mkdir /dev/shm && sudo mount -t tmpfs shmfs -o size=2G /dev/shm )
|
15
|
+
|
16
|
+
test -f /sbin/chkconfig ||
|
17
|
+
( echo '#!/bin/sh' | sudo tee /sbin/chkconfig > /dev/null && sudo chmod u+x /sbin/chkconfig )
|
18
|
+
|
19
|
+
test -d /var/lock/subsys || sudo mkdir /var/lock/subsys
|
20
|
+
|
21
|
+
sudo dpkg -i "${ORACLE_DEB}"
|
22
|
+
|
23
|
+
echo 'OS_AUTHENT_PREFIX=""' | sudo tee -a "$ORACLE_HOME/config/scripts/init.ora" > /dev/null
|
24
|
+
echo 'disk_asynch_io=false' | sudo tee -a "$ORACLE_HOME/config/scripts/init.ora" > /dev/null
|
25
|
+
sudo usermod -aG dba $USER
|
26
|
+
|
27
|
+
( echo ; echo ; echo travis ; echo travis ; echo n ) | sudo AWK='/usr/bin/awk' /etc/init.d/oracle-xe configure
|
28
|
+
|
29
|
+
"$ORACLE_HOME/bin/sqlplus" -L -S / AS SYSDBA <<SQL
|
30
|
+
CREATE USER $USER IDENTIFIED EXTERNALLY;
|
31
|
+
GRANT CONNECT, RESOURCE TO $USER;
|
32
|
+
SQL
|