Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
cta
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container Registry
Harbor Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
dCache
cta
Commits
678094a4
Commit
678094a4
authored
8 years ago
by
Steven Murray
Browse files
Options
Downloads
Patches
Plain Diff
Replaced PL/SQL with straight SQL
parent
b245282e
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
catalogue/drop_oracle_catalogue_schema.sql
+14
-110
14 additions, 110 deletions
catalogue/drop_oracle_catalogue_schema.sql
with
14 additions
and
110 deletions
catalogue/drop_oracle_catalogue_schema.sql
+
14
−
110
View file @
678094a4
WHENEVER
SQLERROR
EXIT
1
SET
SERVEROUTPUT
ON
SET
FEEDBACK
OFF
VARIABLE
plSqlReturnValue
NUMBER
DECLARE
SchemaIsLockedException
EXCEPTION
;
TYPE
NameList
IS
TABLE
OF
VARCHAR2
(
30
);
tables
NameList
:
=
NameList
(
'CTA_CATALOGUE'
,
'ARCHIVE_ROUTE'
,
'TAPE_FILE'
,
'ARCHIVE_FILE'
,
'TAPE'
,
'REQUESTER_MOUNT_RULE'
,
'REQUESTER_GROUP_MOUNT_RULE'
,
'ADMIN_USER'
,
'ADMIN_HOST'
,
'STORAGE_CLASS'
,
'TAPE_POOL'
,
'LOGICAL_LIBRARY'
,
'MOUNT_POLICY'
);
sequences
NameList
:
=
NameList
(
'ARCHIVE_FILE_ID_SEQ'
);
PROCEDURE
dropTableIfExists
(
tableName
IN
VARCHAR2
)
IS
BEGIN
EXECUTE
IMMEDIATE
'DROP TABLE '
||
tableNAme
;
DBMS_OUTPUT
.
PUT_LINE
(
'Table '
||
tableName
||
' dropped'
);
EXCEPTION
WHEN
OTHERS
THEN
-- ORA-00942: table or view does not exist
IF
SQLCODE
=
-
942
THEN
DBMS_OUTPUT
.
PUT_LINE
(
'Table '
||
tableName
||
' not dropped because it does not exist'
);
ELSE
RAISE
;
END
IF
;
END
;
PROCEDURE
dropSequenceIfExists
(
sequenceName
IN
VARCHAR2
)
IS
BEGIN
EXECUTE
IMMEDIATE
'DROP SEQUENCE '
||
sequenceName
;
DBMS_OUTPUT
.
PUT_LINE
(
'Sequence '
||
sequenceName
||
' dropped'
);
EXCEPTION
WHEN
OTHERS
THEN
-- ORA-02289: sequence does not exist
IF
SQLCODE
=
-
2289
THEN
DBMS_OUTPUT
.
PUT_LINE
(
'Sequence '
||
sequenceName
||
' not dropped because it does not exist'
);
ELSE
RAISE
;
END
IF
;
END
;
FUNCTION
catalogueSchemaIsLocked
RETURN
BOOLEAN
IS
TYPE
StatusList
IS
TABLE
OF
VARCHAR2
(
100
);
schemaLocked
INTEGER
;
schemaStatus
VARCHAR2
(
100
);
BEGIN
EXECUTE
IMMEDIATE
'SELECT SCHEMA_STATUS FROM CTA_CATALOGUE'
INTO
schemaStatus
;
RETURN
'LOCKED'
=
schemaStatus
;
EXCEPTION
WHEN
NO_DATA_FOUND
THEN
DBMS_OUTPUT
.
PUT_LINE
(
'Catalogue schema considered LOCKED because CTA_CATALOGUE table is corrupted'
);
DBMS_OUTPUT
.
PUT_LINE
(
'CTA_CATALOGUE table is empty when it should contain one row'
);
RETURN
TRUE
;
WHEN
OTHERS
THEN
DBMS_OUTPUT
.
PUT_LINE
(
'SQLCODE='
||
SQLCODE
);
-- ORA-00942: table or view does not exis
IF
SQLCODE
=
-
942
THEN
DBMS_OUTPUT
.
PUT_LINE
(
'Catalogue schema considered UNLOCKED because the CTA_CATALOGUE table does not exist'
);
RETURN
FALSE
;
-- ORA-01422: exact fetch returns more than requested number of rows
ELSIF
SQLCODE
=
-
1422
THEN
DBMS_OUTPUT
.
PUT_LINE
(
'Catalogue schema considered LOCKED because CTA_CATALOGUE table is corrupted'
);
DBMS_OUTPUT
.
PUT_LINE
(
'CTA_CATALOGUE table contains more than one row when it should contain one'
);
RETURN
TRUE
;
ELSE
RAISE
;
END
IF
;
END
;
BEGIN
-- Non-zero means failure
:
plSqlReturnValue
:
=
1
;
IF
catalogueSchemaIsLocked
()
THEN
DBMS_OUTPUT
.
PUT_LINE
(
'Aborting drop of catalogue schema objects: Schema is LOCKED'
);
DBMS_OUTPUT
.
PUT_LINE
(
'See the following command-line tools for more details:'
);
DBMS_OUTPUT
.
PUT_LINE
(
'cta-catalogue-schema-lock'
);
DBMS_OUTPUT
.
PUT_LINE
(
'cta-catalogue-schema-status'
);
DBMS_OUTPUT
.
PUT_LINE
(
'cta-catalogue-schema-unlock'
);
ELSE
FOR
i
IN
1
..
tables
.
COUNT
LOOP
dropTableIfExists
(
tables
(
i
));
END
LOOP
;
FOR
i
IN
1
..
sequences
.
COUNT
LOOP
dropSequenceIfExists
(
sequences
(
i
));
END
LOOP
;
-- Zero means success
:
plSqlReturnValue
:
=
0
;
END
IF
;
END
;
/
EXIT
:
plSqlReturnValue
DROP
TABLE
CTA_CATALOGUE
;
DROP
TABLE
ARCHIVE_ROUTE
;
DROP
TABLE
TAPE_FILE
;
DROP
TABLE
ARCHIVE_FILE
;
DROP
TABLE
TAPE
;
DROP
TABLE
REQUESTER_MOUNT_RULE
;
DROP
TABLE
REQUESTER_GROUP_MOUNT_RULE
;
DROP
TABLE
ADMIN_USER
;
DROP
TABLE
ADMIN_HOST
;
DROP
TABLE
STORAGE_CLASS
;
DROP
TABLE
TAPE_POOL
;
DROP
TABLE
LOGICAL_LIBRARY
;
DROP
TABLE
MOUNT_POLICY
;
DROP
SEQUENCE
ARCHIVE_FILE_ID_SEQ
;
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment