Description |
Regular View |
Editioning View |
ORA-42305: An editioning view can only replace an editioning view |
conn uwclass/uwclass@pdbdev
CREATE OR REPLACE VIEW test_view1 AS
SELECT *
FROM ebr_tab;
CREATE OR REPLACE VIEW test_view1 AS
SELECT *
FROM ebr_tab; |
conn uwclass/uwclass@pdbdev
CREATE OR REPLACE VIEW test_view1 AS
SELECT *
FROM ebr_tab;
CREATE OR REPLACE EDITIONING VIEW test_view1 AS
SELECT *
FROM ebr_tab; |
SELECT clause alternation not allowed |
CREATE OR REPLACE VIEW reg_view AS
SELECT UPPER(testcol) AS uptcol
FROM ebr_tab; |
CREATE OR REPLACE EDITIONING VIEW ed_view AS
SELECT UPPER(testcol) AS uptcol
FROM ebr_tab; |
Multi-table Joins not allowed |
CREATE OR REPLACE VIEW reg_view AS
SELECT e.testcol, d.dummy
FROM ebr_tab e, dual d; |
CREATE OR REPLACE EDITIONING VIEW ed_view AS
SELECT e.testcol, d.dummy
FROM ebr_tab e, dual d; |
WHERE clause filter not allowed |
CREATE OR REPLACE VIEW reg_view AS
SELECT testcol
FROM ebr_tab
WHERE rownum < 11;
CREATE OR REPLACE VIEW reg_view AS
SELECT testcol
FROM ebr_tab
WHERE testcol LIKE 'A%'; |
CREATE OR REPLACE EDITIONING VIEW ed_view AS
SELECT testcol
FROM ebr_tab
WHERE rownum < 11;
CREATE OR REPLACE EDITIONING VIEW ed_view AS
SELECT testcol
FROM ebr_tab
WHERE testcol LIKE 'A%'; |
GROUP BY clause not allowed |
CREATE OR REPLACE VIEW reg_view AS
SELECT testcol, COUNT(*) CNT
FROM ebr_tab
GROUP BY testcol; |
CREATE OR REPLACE EDITIONING VIEW ed_view AS
SELECT testcol, COUNT(*) CNT
FROM ebr_tab
GROUP BY testcol; |
ORDER BY clause not allowed |
CREATE OR REPLACE VIEW reg_view AS
SELECT testcol
FROM ebr_tab
ORDER BY 1; |
CREATE OR REPLACE EDITIONING VIEW ed_view AS
SELECT testcol
FROM ebr_tab
ORDER BY 1; |
DISTINCT/UNIQUE not allowed |
CREATE OR REPLACE VIEW reg_view AS
SELECT DISTINCT testcol
FROM ebr_tab;
CREATE OR REPLACE VIEW reg_view AS
SELECT UNIQUE testcol
FROM ebr_tab; |
CREATE OR REPLACE EDITIONING VIEW ed_view AS
SELECT DISTINCT testcol
FROM ebr_tab;
CREATE OR REPLACE EDITIONING VIEW ed_view AS
SELECT UNIQUE testcol
FROM ebr_tab; |
Concatenation not allowed |
CREATE OR REPLACE VIEW reg_view AS
SELECT testcol || 'A' AS TESTCOL
FROM ebr_tab; |
CREATE OR REPLACE EDITIONING VIEW ed_view AS
SELECT testcol || 'A' AS TESTCOL
FROM ebr_tab; |
Duplicate columns not allowed |
CREATE OR REPLACE VIEW reg_view AS
SELECT testcol TESTCOLA, testcol TESTCOLB
FROM ebr_tab; |
CREATE OR REPLACE EDITIONING VIEW ed_view AS
SELECT testcol TESTCOLA, testcol TESTCOLB
FROM ebr_tab; |
Set operators not allowed |
CREATE OR REPLACE VIEW reg_view AS
SELECT testcol
FROM ebr_tab
UNION ALL
SELECT testcol
FROM ebr_tab;
CREATE OR REPLACE VIEW reg_view AS
SELECT testcol
FROM ebr_tab
INTERSECT
SELECT testcol
FROM ebr_tab; |
CREATE OR REPLACE EDITIONING VIEW ed_view AS
SELECT testcol
FROM ebr_tab
UNION ALL
SELECT testcol
FROM ebr_tab;
CREATE OR REPLACE EDITIONING VIEW ed_view AS
SELECT testcol
FROM ebr_tab
INTERSECT
SELECT testcol
FROM ebr_tab; |
Multiple editioning views per table not allowed |
CREATE OR REPLACE VIEW reg_view2 AS
SELECT testcol
FROM ebr_tab; |
CREATE OR REPLACE EDITIONING VIEW ed_view2 AS
SELECT testcol
FROM ebr_tab; |
ORA-1702: Creating editioning views on regular views is not allowed |
CREATE OR REPLACE VIEW reg_view AS
SELECT *
FROM ebr_tab; |
CREATE OR REPLACE EDITIONING VIEW ed_view3 AS
SELECT testcol
FROM reg_view; |
ORA-42304: Creating editioning views in the schema that does not own the table is not allowed |
GRANT ALL ON ebr_tab TO UWCLASS;
conn uwclass/uwclass@pdbdev
CREATE OR REPLACE VIEW reg_view AS
SELECT *
FROM ebradmin.ebr_tab; |
GRANT ALL ON ebr_tab TO UWCLASS;
conn uwclass/uwclass@pdbdev
CREATE OR REPLACE EDITIONING VIEW ed_view AS
SELECT *
FROM ebradmin.ebr_tab; |
Column renaming is allowed |
CREATE OR REPLACE VIEW reg_view AS
SELECT testcol AS something_else
FROM ebr_tab; |
CREATE OR REPLACE EDITIONING VIEW ed_view AS
SELECT testcol AS something_else
FROM ebr_tab; |
Table style triggers are supported
Requires the CREATE TRIGGER system
privilege be granted |
CREATE OR REPLACE VIEW reg_view AS
SELECT testcol
FROM ebr_tab;
CREATE OR REPLACE TRIGGER view_trig
BEFORE UPDATE
ON reg_view
FOR EACH ROW
BEGIN
NULL;
END view_trig;
/ |
CREATE OR REPLACE EDITIONING VIEW ed_view AS
SELECT testcol
FROM ebr_tab;
CREATE OR REPLACE TRIGGER view_trig
BEFORE UPDATE
ON ed_view
FOR EACH ROW
BEGIN
NULL;
END view_trig;
/ |
READ ONLY clause is allowed |
CREATE OR REPLACE VIEW reg_view AS
SELECT testcol
FROM ebr_tab
READONLY; |
CREATE OR REPLACE EDITIONING VIEW ed_view AS
SELECT testcol
FROM ebr_tab
READONLY; |
LOCK TABLE is allowed |
SELECT sys_context('USERENV', 'SID')
FROM dual;
SELECT * FROM v$lock
WHERE sid=138;
LOCK TABLE reg_view IN SHARE MODE NOWAIT;
-- as sys
SELECT * FROM v$lock
WHERE sid=138;
COMMIT; |
SELECT sys_context('USERENV', 'SID')
FROM dual;
SELECT * FROM v$lock
WHERE sid=138;
LOCK TABLE ed_view IN SHARE MODE NOWAIT;
-- as sys
SELECT * FROM v$lock
WHERE sid=138;
COMMIT; |