`
goodguyzl
  • 浏览: 47289 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

oracle procedure 表或视图不存在的问题

阅读更多

      今天在写一个procedure,让其每天定时统计表空间的增长情况,定时功能通过oracle的job来完成。

      在代码里,写了这样一个语句

select  sum(bytes)  from dba_data_files where tablespace_name='USRES'

       编译时总是提示“table or view does not exist”,表或视图不存在。但是这个语句在procedure外面,作为单独的SQL语句来执行的时候是没有问题的,困惑了。Google之后,有人提到说,在procedure里,甚至是PL/SQL里,用户的role不在起作用了,被屏蔽掉了。噢~~,原来dba_data_files这个视图本来是属于sys用户的,如果你在创建其他的用户的时候将其角色设置为dba,普通情况下,该视图对这个用户是可见的,而在procedure里这个视图对他是不可见的。只有当sys用户显式把这个视图的权限grant给这用户的时候,在procedure里才对其可见,执行了grant select on dba_data_files to myuser后,这个错误消失,编译通过。

分享到:
评论

相关推荐

    oracle实现带参数视图

    ### Oracle 实现带参数视图 #### 背景与概念 在数据库设计与管理过程中,视图(View)作为一种虚拟表,对于简化查询、增强数据安全性和提供数据抽象具有重要作用。然而,标准的视图定义是静态的,无法根据不同的...

    oracle带参数视图

    由于 Oracle 视图不能带参数,我们需要变通地实现参数视图。下面将介绍两种解决方案。 方案 1:利用全局变量 我们可以使用全局变量来实现参数视图。首先,创建一个包(PACKAGE),用于存储全局变量: ```sql ...

    Oracle过程中创建视图

    根据提供的标题、描述以及部分代码内容,我们可以详细探讨在Oracle数据库中如何通过存储过程来创建视图,并且解决其中可能出现的一些问题。 ### Oracle过程中创建视图 #### 1. 使用`EXECUTE IMMEDIATE` 在Oracle...

    Oracle数据库视图管理

    - **视图(View)**:是从一个或多个表(或视图)导出的虚拟表,不存储数据本身,而是存储查询语句。 - **约束(Constraint)**:用于定义表中数据的有效性规则。 - **序列(Sequence)**:用于自动产生唯一值。 - **函数...

    oracle 视图,函数,过程,触发器自动编译脚本

    由于Oracle中的视图、函数(Function)、存储过程(Procedure)等对象之间存在着复杂的依赖关系,因此当某个对象被修改后,可能会导致与其相关的其他对象变得无效(Invalid)。在实际操作中,虽然我们会关注所修改的...

    Oracle 删除所有表,视图,序列,函数,存储过程等SQL

    2. **视图**(View):是基于一个或多个表或其他视图之上建立的虚拟表,不实际存储数据,只存储定义视图的SELECT语句。 3. **序列**(Sequence):是一种数据库对象,用于生成连续整数序列,常用于自动生成主键值。 ...

    oracle 系统表大全

    - 包括但不限于: CLUSTER、DATABASE LINK、FUNCTION、INDEX、LIBRARY、PACKAGE、PACKAGE BODY、PROCEDURE、SEQUENCE、SYNONYM、TABLE、TRIGGER、TYPE、UNDEFINED 和 VIEW。 - `SELECT * FROM dba_objects;`:列出...

    oracle系统表查询

    通过查询特定的系统表,数据库管理员(DBA)或开发人员能够获取关于用户、表空间、数据库对象、表、索引、序列、视图、聚簇以及快照的详细信息,从而进行有效的数据库管理和优化工作。以下是对给定文件中的Oracle...

    Oracle中物化视图的使用.pdf

    物化视图是预先计算好的查询结果,存储为物理表的形式,这样在后续的查询中可以直接使用,而不需要每次都执行复杂的查询操作。这在处理大规模数据和分布式数据库环境时尤其有用。 在数据仓库中,物化视图常用于快速...

    Oracle 系统表大全

    在Oracle数据库管理中,系统表是极其重要的组成部分,它们用于存储数据库元数据,包括但不限于用户、表空间、对象等信息。对于DBA(数据库管理员)来说,熟悉并掌握这些系统表是管理和维护数据库的基础。 #### 1. ...

    Oracle 词汇表

    - 主键(Primary Key):唯一标识表中每一行的列或列组合,不允许为空且唯一。 - 外键(Foreign Key):关联两个表的列,用于实现引用完整性。 - 视图(View):虚拟表,由SQL查询结果组成,可以像操作真实表一样...

    DBExportDoc V1.0 For Oracle导出表结构到word文档

    7. **视图和存储过程**:虽然标题主要强调表结构,但若选择了,该工具可能还会包含视图(VIEW)和存储过程(PROCEDURE)的定义,以提供更全面的数据库文档。 使用DBExportDoc V1.0 For Oracle导出的Word文档,不仅...

    oracle删除用户下所有表

    ### Oracle 删除用户下所有表 在Oracle数据库管理中,有时候我们可能需要清除某个用户的全部数据,这包括该用户创建的所有表。但是需要注意的是,在执行此类操作时必须格外小心,因为一旦执行了删除命令,这些数据...

    Oracle系统表查询

    Oracle数据库通过一系列系统表(也称为数据字典视图)来管理数据库元数据。这些表提供了关于数据库对象的重要信息,如表空间、表、索引等。数据字典`dict`通常归属于系统用户`SYS`。在进行系统表查询时,我们主要...

    获取oracle相关信息

    总的来说,Oracle数据库、Java编程、视图、过程包和表是IT行业中不可或缺的知识点,它们在数据管理、应用程序开发和系统集成中起着关键作用。理解和掌握这些概念,对于提升数据库管理和软件开发能力至关重要。

    oracle10g的用户和表空间重建

    ### Oracle 10g 用户与表空间重建 在Oracle 10g数据库管理中,有时候我们需要对特定的用户和表空间进行重建操作。这通常发生在需要优化存储结构、解决存储空间不足或者数据损坏等问题时。本文将详细介绍Oracle 10g...

    activity-oracle建表SQL

    视图是基于一个或多个表的虚拟表,它的结构和数据来源于底层的表。 9. **触发器(Trigger)**:Oracle还支持触发器,这是一种特殊的存储过程,会在特定的数据库操作(如INSERT, UPDATE, DELETE)发生时自动执行。 ...

    Oracle 常用系统权限

    同义词是一种别名,用于引用其他模式中的表或视图。Create Synonym 权限用于控制谁可以创建同义词。 Create Table Create Table 权限允许用户创建表。这个权限是非常重要的,因为它控制了谁可以创建表结构。Create...

    解决OracleRAC集群下创建SDE时报Stored procedures错误问题.docx

    这个问题通常与Oracle RAC的特性有关,即其数据文件存储在共享存储上,而SDE用户默认的表空间设置可能与集群环境不匹配。下面我们将详细探讨这个问题的原因、解决步骤以及相关的技术要点。 **报错原因分析:** 在...

Global site tag (gtag.js) - Google Analytics