解析 Oracle 中的 ALL_SYNONYMS 和 ALL_VIEWS 视图:查找同义词与视图的基础操作

news2025/2/2 21:30:06

目录

  • 前言
  • 1. ALL_SYNONYMS 视图
  • 2. ALL_VIEWS 视图
  • 3. 扩展

前言

🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF

1. ALL_SYNONYMS 视图

在 Oracle 数据库中,同义词(Synonym)是对数据库对象(如表、视图、存储过程等)创建的别名

使用同义词可以简化 SQL 语句,使用户无需使用完整的对象路径
例如,如果 USER_A 拥有表 TABLE_A,但 USER_B 也需要访问它,创建一个同义词 TABLE_A 允许 USER_B 直接查询,而无需写 USER_A.TABLE_A

ALL_SYNONYMS 视图存储了当前用户可以访问的所有同义词的信息,包括公有(PUBLIC)同义词和用户私有(PRIVATE)同义词
其典型用途是:

  1. 查找某个对象是否有对应的同义词
  2. 确定同义词实际指向的对象
  3. 排查数据库对象访问权限问题

ALL_SYNONYMS 视图的主要列如下:

列名数据类型说明
OWNERVARCHAR2同义词的拥有者(创建该同义词的用户)
SYNONYM_NAMEVARCHAR2同义词的名称
TABLE_OWNERVARCHAR2实际对象的拥有者(目标对象所在用户)
TABLE_NAMEVARCHAR2实际数据库对象的名称
DB_LINKVARCHAR2如果是远程数据库对象,则指向数据库链接
SELECT * FROM all_synonyms WHERE synonym_name = '表名';

作用:查找是否存在名为 表名 的同义词,并查看它指向的具体对象

基本截图如下:

在这里插入图片描述

2. ALL_VIEWS 视图

视图是基于 SQL 查询逻辑创建的虚拟表,它不存储数据,而是提供对基础表的动态访问
ALL_VIEWS 视图存储了当前用户可以访问的所有视图的信息

视图的作用包括:

  1. 供数据访问的抽象层,简化复杂 SQL 查询
  2. 制访问权限,只暴露部分数据
  3. 现数据整合,将多个表的信息整合到一个视图中

ALL_VIEWS 视图的主要列如下:

列名数据类型说明
OWNERVARCHAR2视图的拥有者(创建该视图的用户)
VIEW_NAMEVARCHAR2视图的名称
TEXT_LENGTHNUMBER视图定义 SQL 语句的长度
TEXTCLOB视图的 SQL 定义(通常存储在 CLOB 中)
SELECT * FROM all_views WHERE view_name = '视图名';

作用:查找是否存在名为 视图名 的视图,并查看其定义

示例结果:

OWNERVIEW_NAMETEXT_LENGTHTEXT
HRC_CY_AREA120SELECT EMP_ID, EMP_NAME FROM EMPLOYEES

C_CY_AREA 是 HR 用户下的一个视图
它的 SQL 逻辑是 SELECT EMP_ID, EMP_NAME FROM EMPLOYEES,即只返回 EMPLOYEES 表的 EMP_ID 和 EMP_NAME 列

3. 扩展

  1. ALL_SYNONYMS 用于查找数据库中的同义词,并查看它们指向的具体对象
  2. ALL_VIEWS 用于查找数据库中的视图,并查看其 SQL 逻辑
  3. 同义词主要用于简化访问,而视图用于数据抽象和权限控制
  4. 通过 DBMS_METADATA.GET_DDL 可以获取视图的完整 SQL 逻辑
  5. 维护数据库时,合理使用同义词和视图可以提高 SQL 可读性和安全性

如果想修改 C_CY_AREA 同义词指向的对象,需要先删除,再重新创建:(C_CY_AREA 表名)

DROP SYNONYM C_CY_AREA;
CREATE SYNONYM C_CY_AREA FOR NEW_SCHEMA.NEW_TABLE;

如何检查视图的 SQL 逻辑?
如果视图的 SQL 语句较长,使用 DBMS_METADATA.GET_DDL 可以更清晰地查看:

SELECT DBMS_METADATA.GET_DDL('VIEW', 'C_CY_AREA', 'HR') FROM DUAL;

如何查看某个用户创建的所有视图?

SELECT view_name FROM all_views WHERE owner = 'HR';

如何查看数据库中的所有公有同义词?

SELECT * FROM all_synonyms WHERE owner = 'PUBLIC';

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2290951.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PyTorch框架——基于深度学习YOLOv8神经网络学生课堂行为检测识别系统

基于YOLOv8深度学习的学生课堂行为检测识别系统,其能识别三种学生课堂行为:names: [举手, 读书, 写字] 具体图片见如下: 第一步:YOLOv8介绍 YOLOv8 是 ultralytics 公司在 2023 年 1月 10 号开源的 YOLOv5 的下一个重大更新版本…

7.攻防世界fileclude

题目描述 进入题目页面如下 看到题目提示应该为文件包含漏洞 解释上述代码 // 输出提示信息&#xff1a;错误的方式&#xff01; WRONG WAY! <?php // 包含名为 "flag.php" 的文件&#xff0c;通常这个文件里可能包含重要的敏感信息&#xff0c;如 flag inclu…

【自然语言处理(NLP)】深度学习架构:Transformer 原理及代码实现

文章目录 介绍Transformer核心组件架构图编码器&#xff08;Encoder&#xff09;解码器&#xff08;Decoder&#xff09; 优点应用代码实现导包基于位置的前馈网络残差连接后进行层规范化编码器 Block编码器解码器 Block解码器训练预测 个人主页&#xff1a;道友老李 欢迎加入社…

【HarmonyOS之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(二)

目录 1 -> HML语法 1.1 -> 页面结构 1.2 -> 数据绑定 1.3 -> 普通事件绑定 1.4 -> 冒泡事件绑定5 1.5 -> 捕获事件绑定5 1.6 -> 列表渲染 1.7 -> 条件渲染 1.8 -> 逻辑控制块 1.9 -> 模板引用 2 -> CSS语法 2.1 -> 尺寸单位 …

当WebGIS遇到智慧文旅-以长沙市不绕路旅游攻略为例

目录 前言 一、旅游数据组织 1、旅游景点信息 2、路线时间推荐 二、WebGIS可视化实现 1、态势标绘实现 2、相关位置展示 三、成果展示 1、第一天旅游路线 2、第二天旅游路线 3、第三天旅游路线 4、交通、订票、住宿指南 四、总结 前言 随着信息技术的飞速发展&…

使用Pygame制作“吃豆人”游戏

本篇博客展示如何使用 Python Pygame 编写一个简易版的“吃豆人&#xff08;Pac-Man&#xff09;” 风格游戏。这里我们暂且命名为 Py-Man。玩家需要控制主角在一个网格地图里移动、吃掉散布在各处的豆子&#xff0c;并躲避在地图中巡逻的幽灵。此示例可帮助你理解网格地图、角…

SQL入门到精通 理论+实战 -- 在 MySQL 中学习SQL语言

目录 一、环境准备 1、MySQL 8.0 和 Navicat 下载安装 2、准备好的表和数据文件&#xff1a; 二、SQL语言简述 1、数据库基础概念 2、什么是SQL 3、SQL的分类 4、SQL通用语法 三、DDL&#xff08;Data Definition Language&#xff09;&#xff1a;数据定义语言 1、操…

x86-64数据传输指令

关于汇编语言一些基础概念的更详细的介绍&#xff0c;可移步MIPS指令集&#xff08;一&#xff09;基本操作_mips指令 sw-CSDN博客 该指令集中一个字2字节。 该架构有16个64位寄存器&#xff0c;名字都以%r开头&#xff0c;每个寄存器的最低位字节&#xff0c;低1~2位字节&…

【ESP32】ESP-IDF开发 | WiFi开发 | TCP传输控制协议 + TCP服务器和客户端例程

1. 简介 TCP&#xff08;Transmission Control Protocol&#xff09;&#xff0c;全称传输控制协议。它的特点有以下几点&#xff1a;面向连接&#xff0c;每一个TCP连接只能是点对点的&#xff08;一对一&#xff09;&#xff1b;提供可靠交付服务&#xff1b;提供全双工通信&…

算法基础学习——快排与归并(附带java模版)

快速排序和归并排序是两种速度较快的排序方式&#xff0c;是最应该掌握的两种排序算法&#xff0c; &#xff08;一&#xff09;快速排序&#xff08;不稳定的&#xff09; 基本思想&#xff1a;分治 平均时间复杂度&#xff1a;O(nlogn) / 最慢O(n^2) / 最快O(n) 步骤&…

指针的进化—sizeof和strlen对比(字符串和字符数组的区分)

1.前言 如果你对各个数组的内容存放是什么没有个清晰的概念&#xff0c;对指针偏移之后的数量算不出来或者模棱两可&#xff0c;那么本篇就来详细介绍sizeof和strlen来具象化的显示数组的内容存放了多少内容&#xff0c;偏移量变化后的变化&#xff0c;这个数组进行运算后会不会…

TensorFlow简单的线性回归任务

如何使用 TensorFlow 和 Keras 创建、训练并进行预测 1. 数据准备与预处理 2. 构建模型 3. 编译模型 4. 训练模型 5. 评估模型 6. 模型应用与预测 7. 保存与加载模型 8.完整代码 1. 数据准备与预处理 我们将使用一个简单的线性回归问题&#xff0c;其中输入特征 x 和标…

【memgpt】letta 课程1/2:从头实现一个自我编辑、记忆和多步骤推理的代理

llms-as-operating-systems-agent-memory llms-as-operating-systems-agent-memory内存 操作系统的内存管理

6-图像金字塔与轮廓检测

文章目录 6.图像金字塔与轮廓检测(1)图像金字塔定义(2)金字塔制作方法(3)轮廓检测方法(4)轮廓特征与近似(5)模板匹配方法6.图像金字塔与轮廓检测 (1)图像金字塔定义 高斯金字塔拉普拉斯金字塔 高斯金字塔:向下采样方法(缩小) 高斯金字塔:向上采样方法(放大)…

深入理解Java引用传递

先看一段代码&#xff1a; public static void add(String a) {a "new";System.out.println("add: " a); // 输出内容&#xff1a;add: new}public static void main(String[] args) {String a null;add(a);System.out.println("main: " a);…

925.长按键入

目录 一、题目二、思路三、解法四、收获 一、题目 你的朋友正在使用键盘输入他的名字 name。偶尔&#xff0c;在键入字符 c 时&#xff0c;按键可能会被长按&#xff0c;而字符可能被输入 1 次或多次。 你将会检查键盘输入的字符 typed。如果它对应的可能是你的朋友的名字&am…

【Rust自学】15.2. Deref trait Pt.1:什么是Deref、解引用运算符*与实现Deref trait

喜欢的话别忘了点赞、收藏加关注哦&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 15.2.1. 什么是Deref trait Deref的全写是Dereference&#xff0c;就是引用的英文reference加上"de"这个反义前缀&#xff0c…

吴恩达深度学习——超参数调试

内容来自https://www.bilibili.com/video/BV1FT4y1E74V&#xff0c;仅为本人学习所用。 文章目录 超参数调试调试选择范围 Batch归一化公式整合 Softmax 超参数调试 调试 目前学习的一些超参数有学习率 α \alpha α&#xff08;最重要&#xff09;、动量梯度下降法 β \bet…

【赵渝强老师】K8s中Pod探针的ExecAction

在K8s集群中&#xff0c;当Pod处于运行状态时&#xff0c;kubelet通过使用探针&#xff08;Probe&#xff09;对容器的健康状态执行检查和诊断。K8s支持三种不同类型的探针&#xff0c;分别是&#xff1a;livenessProbe&#xff08;存活探针&#xff09;、readinessProbe&#…

如何对系统调用进行扩展?

扩展系统调用是操作系统开发中的一个重要任务。系统调用是用户程序与操作系统内核之间的接口,允许用户程序执行内核级操作(如文件操作、进程管理、内存管理等)。扩展系统调用通常包括以下几个步骤: 一、定义新系统调用 扩展系统调用首先需要定义新的系统调用的功能。系统…