存储过程:
create or replace procedure updateCwshState as
f_ywlxdm_temp varchar2(2);
f_ywid_forkyxxw_temp number(10);
f_cwsh_state_temp varchar2(2);
f_id_temp number(10);
begin
for i in(select t.id,t.f_ywlxdm,t.f_ywid_forkyxxw,t.f_cwsh_state from t_ywbltx t where (t.f_ywlxdm='04' or t.f_ywlxdm='07') and t.f_js_readstate<>'1' ) loop
f_ywlxdm_temp:=i.f_ywlxdm;
f_ywid_forkyxxw_temp:=i.f_ywid_forkyxxw;
f_cwsh_state_temp:=i.f_cwsh_state;
f_id_temp:=i.id;
if(f_ywlxdm_temp='04') then--课题
update oa.t_app_jfbx_cwbxforxm t set t.F_CWSHSTATE=DECODE(f_cwsh_state_temp,'0','财务正在审核','1','财务审核完毕') where t.id=f_ywid_forkyxxw_temp;
else--日常
update oa.t_app_jfbx_rcfybx t set t.F_CWSHSTATE=DECODE(f_cwsh_state_temp,'0','财务正在审核','1','财务审核完毕') where t.id=f_ywid_forkyxxw_temp;
end if;
if(f_cwsh_state_temp='1') then
update t_ywbltx t set t.f_js_readstate='1' where t.id=f_id_temp;
end if;
end loop;
end ;
编译时出现如下提示:
Error: PL/SQL: ORA-00942: table or view does not exist
....
Error: PL/SQL: SQL Statement ignored
....
原因是当前用户没有oa.t_app_jfbx_cwbxforxm, oa.t_app_jfbx_rcfybx 的查询和更新的权限导致的,如果A用户在存储过程中调用B用户的对象,则必须B显示的把该对象的相应权限赋予给用户A。
解决办法:
使用oa用户名登录授权给需要执行存储过程的用户;
grant select on t_App_Jfbx_Cwbxforxm to cwjk;
grant update on t_App_Jfbx_Cwbxforxm to cwjk;
grant select on t_app_jfbx_rcfybx to cwjk;
grant update on t_app_jfbx_rcfybx to cwjk;
然后编译就可以正常通过了
分享到:
相关推荐
在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 11G中的ORA-24247网络访问被访问控制列表 (ACL) 拒绝错误 #### 背景 在处理Oracle 11G数据库时,可能会遇到ORA-24247错误,该错误通常出现在尝试通过网络访问数据库资源时。这一错误是由于访问...
NULL 博文链接:https://snowelf.iteye.com/blog/507976
在Oracle数据库系统中,"ORA-00060: 等待资源时检测到死锁" 是一个常见的错误提示,它表明两个或多个事务在执行过程中陷入了无法继续进行的状态,因为彼此都在等待对方释放资源。这种情况通常发生在并发操作中,比如...
最近在工作中遇到了一个问题,错误是Oracle dbca时报错:ORA-12547: TNS:lost contact,通过查找相关的资料终于找到了解决的方法,下面分享给大家,话不多说了,来一起看看详细的介绍吧。 环境: OS:RHEL6.5 x86-...