Fix view columns
This commit is contained in:
parent
2b9bef54b8
commit
5eac9192b0
@ -1,7 +1,8 @@
|
|||||||
CREATE OR REPLACE VIEW obj_view_columns AS
|
CREATE OR REPLACE VIEW obj_view_columns AS
|
||||||
WITH x AS (
|
WITH x AS (
|
||||||
SELECT /*+ MATERIALIZE */
|
SELECT /*+ MATERIALIZE */
|
||||||
app.get_item('$VIEW_NAME') AS view_name,
|
app.get_owner() AS owner,
|
||||||
|
app.get_item('$VIEW_NAME') AS view_name,
|
||||||
--
|
--
|
||||||
UPPER(app.get_item('$SEARCH_VIEWS')) AS search_views,
|
UPPER(app.get_item('$SEARCH_VIEWS')) AS search_views,
|
||||||
UPPER(app.get_item('$SEARCH_COLUMNS')) AS search_columns
|
UPPER(app.get_item('$SEARCH_COLUMNS')) AS search_columns
|
||||||
@ -36,31 +37,34 @@ c AS (
|
|||||||
CASE WHEN c.column_name LIKE x.search_columns || '%' ESCAPE '\' THEN 'Y' END AS is_found_column
|
CASE WHEN c.column_name LIKE x.search_columns || '%' ESCAPE '\' THEN 'Y' END AS is_found_column
|
||||||
--CASE WHEN c.data_type LIKE x.search_data_type || '%' ESCAPE '\' THEN 'Y' END AS is_found_data_type,
|
--CASE WHEN c.data_type LIKE x.search_data_type || '%' ESCAPE '\' THEN 'Y' END AS is_found_data_type,
|
||||||
--CASE WHEN NVL(c.data_precision, c.data_length) = x.search_size THEN 'Y' END AS is_found_size
|
--CASE WHEN NVL(c.data_precision, c.data_length) = x.search_size THEN 'Y' END AS is_found_size
|
||||||
FROM user_tab_columns c
|
FROM all_tab_columns c
|
||||||
JOIN user_views t
|
JOIN x
|
||||||
ON t.view_name = c.table_name
|
ON x.owner = c.owner
|
||||||
CROSS JOIN x
|
JOIN all_views t
|
||||||
WHERE t.view_name = NVL(x.view_name, t.view_name)
|
ON t.owner = c.owner
|
||||||
AND t.view_name != app.get_dml_table(t.view_name)
|
AND t.view_name = c.table_name
|
||||||
AND (c.table_name LIKE '%' || x.search_views || '%' ESCAPE '\' OR x.search_views IS NULL)
|
WHERE t.view_name = NVL(x.view_name, t.view_name)
|
||||||
|
AND t.view_name != app.get_dml_table(t.view_name)
|
||||||
|
AND (c.table_name LIKE '%' || x.search_views || '%' ESCAPE '\' OR x.search_views IS NULL)
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
c.view_name,
|
c.view_name,
|
||||||
c.column_id,
|
c.column_id,
|
||||||
c.column_name,
|
c.column_name,
|
||||||
c.column_name AS column_name_old,
|
c.column_name AS column_name_old,
|
||||||
c.data_type,
|
c.data_type,
|
||||||
c.data_default,
|
c.data_default,
|
||||||
c.avg_col_len AS avg_length,
|
c.avg_col_len AS avg_length,
|
||||||
--
|
--
|
||||||
CASE WHEN c.nullable = 'N' THEN 'Y' END AS is_nn,
|
CASE WHEN c.nullable = 'N' THEN 'Y' END AS is_nn,
|
||||||
--
|
--
|
||||||
m.comments
|
m.comments
|
||||||
FROM c
|
FROM c
|
||||||
CROSS JOIN x
|
CROSS JOIN x
|
||||||
LEFT JOIN user_col_comments m
|
LEFT JOIN all_col_comments m
|
||||||
ON m.table_name = c.view_name
|
ON m.owner = x.owner
|
||||||
AND m.column_name = c.column_name
|
AND m.table_name = c.view_name
|
||||||
|
AND m.column_name = c.column_name
|
||||||
WHERE 1 = 1
|
WHERE 1 = 1
|
||||||
AND (c.is_found_column = 'Y' OR x.search_columns IS NULL)
|
AND (c.is_found_column = 'Y' OR x.search_columns IS NULL)
|
||||||
--AND (c.is_found_data_type = 'Y' OR x.search_data_type IS NULL)
|
--AND (c.is_found_data_type = 'Y' OR x.search_data_type IS NULL)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user