第一次做ORACLE的存储过程,今天发现了一个很奇怪的问题:
我有存储过程如下:
CREATE OR REPLACE PROCEDURE A.P
(P_STARTDATE IN VARCHAR2) IS
BEGIN
INSERT INTO A.TEST
(SELECT * FROM B.TEST WHERE B.TEST.STATDATE=P_STARTDATE );
COMMIT;
END P;
/
执行的时候会报如下的错误:
Compilation errors for PROCEDURE ******
Error: PL/SQL: ORA-00942: table or view does not exist
....
Error: PL/SQL: SQL Statement ignored
....
大致的意思是B.TEST不存在。
但是我把里面的SQL摘出来单独执行,可以运行。
很郁闷的问题。
经过上网搜素,得出如下的结论:
引用
是因为权限问题。
如果A用户在存储过程中调用B用户的对象,则必须B显示的把该对象的相应权限赋予给用户A。在SQL窗口可以查是因为DBA用户把B用户对象的同义词的权限赋给了A 用户。
我已经让DBA显示的赋予了A用户 B用户的的查询权限。 结果还有待于验证....
-----结果证明问题就是这样的
分享到:
相关推荐
在Oracle数据库系统中,"ORA-01036:非法的变量名/编号"是一个常见的错误,通常出现在PL/SQL代码或者SQL查询语句中,当你尝试使用一个不正确或者未定义的变量时,Oracle数据库会抛出这个错误。这个错误可能是由于...
- `java.sql.SQLException: ORA-00942: table or view does not exist`: 查询的表或视图不存在。核实表名或视图名的拼写和大小写,以及是否有访问权限。 6. **并发问题** - `java.sql.SQLException: ORA-00054: ...
PL/SQL是Oracle数据库系统中的一个核心组件,全称为“Procedural Language/Structured Query Language”,它是SQL的扩展,增加了编程元素,使得开发者能够编写存储过程、函数、触发器等数据库应用程序。这篇博客主要...
在oracle里面运行一下,解决Exception java.sql.SQLException ORA-00600 内部错误代码
Oracle 9i exp 遇见 EXP-00008 ORA-00942 EXP-00024 错误的解决 在 Oracle 9i 中,exp工具是非常重要的数据导出工具,但是在使用过程中,经常会遇到一些错误,例如 EXP-00008 ORA-00942 EXP-00024 等错误,这些错误...
之前用PL/SQL DEVELOPER和SQLPLUS 登录数据库都没有问题,就是应用程序通过JDBC连接Oracle时无法成功连接,出现ORA-12505错误listener does not currently know of SID given in connect descriptor
在Oracle数据库中,"ORA-00904"是一个常见的错误代码,它表示尝试引用一个不存在或无效的标识符。在这个场景下,错误信息提到的是"WM_CONCAT"函数,这表明在Oracle 19c数据库环境中,用户尝试使用WM_CONCAT函数,但...
4. **数据库开发与管理**:ora-dba工具集还包含了数据库对象的创建、修改和删除功能,以及SQL查询和PL/SQL代码的编写与调试工具。这些功能使得数据库开发人员可以在同一平台上完成大部分工作。 5. **性能优化**:...
### ora-01033: Oracle Initialization or Shutdown in Progress 解决方法 #### 一、问题背景及原因 **标题**: “ora-01033: Oracle initialization or shutdown in progress 解决方法” **描述**: “ora-01033: ...
ORA-00933: SQL command not properly ended ``` 解决方法是确保SQL语句完整无误,并使用正确的语法进行删除操作。 #### 四、总结 Oracle的回收站功能为用户提供了一个方便的方式来管理数据库对象的删除与恢复,极...
ORACLE8I数据库应用EXP工具时ORA-06553报错的解决方法 摘要:本文主要解决ORACLE 8I数据库应用EXP工具时ORA-06553报错的问题,分析出现问题的原因,并提供了正确的解决方法和措施。 知识点1:Oracle 8I数据库EXP...
oracle12c程序连接时异常: ORA-01017: 用户名/口令无效; 登录被拒绝 的解决方案。
ORA-12154: TNS: 无法解析指定的连接标识符的解决方法
ORA-01109: database not open ``` 这是正常的,因为我们在尝试立即关闭数据库。接下来,数据库将会被卸载并最终关闭。 ##### 步骤三:分析问题原因 根据提供的内容,问题的原因可能是归档日志文件未被正确管理或...
在Oracle数据库中,"ORA-00904"是一个常见的错误代码,它表示尝试引用一个不存在或无效的标识符。在这种情况下,错误是针对"WMSYS.WM_CONCAT"函数的,这是一个在某些Oracle版本中提供的聚合函数,用于字符串连接。...
PL/SQL Developer是一款专为Oracle数据库设计的集成开发环境,它极大地简化了PL/SQL语言的编写、调试和管理任务。远程连接Oracle数据库是PL/SQL Developer的一项关键功能,允许用户在本地计算机上操作和管理远程...
在Oracle数据库系统中,"ORA-00060: 等待资源时检测到死锁" 是一个常见的错误提示,它表明两个或多个事务在执行过程中陷入了无法继续进行的状态,因为彼此都在等待对方释放资源。这种情况通常发生在并发操作中,比如...
### 如何解决Oracle 11G中的ORA-24247网络访问被访问控制列表 (ACL) 拒绝错误 #### 背景 在处理Oracle 11G数据库时,可能会遇到ORA-24247错误,该错误通常出现在尝试通过网络访问数据库资源时。这一错误是由于访问...
NULL 博文链接:https://snowelf.iteye.com/blog/507976
最近在工作中遇到了一个问题,错误是Oracle dbca时报错:ORA-12547: TNS:lost contact,通过查找相关的资料终于找到了解决的方法,下面分享给大家,话不多说了,来一起看看详细的介绍吧。 环境: OS:RHEL6.5 x86-...