编译存储过程ora04021
1. PL/sql建好存储过程,编译也成功了,但是用execute执行的的 提示权限不足(ora-01031)
用你有dba权限的用户执行这个试试。
;
如果还报错就要看代码了。
2. ORACLR 存储过程 创建的过程带有编译错误。
去掉 DECLARE
3. oracle 编译包的时候,一直提示正在编译
编译的存储过程的时候,程序死住,等待一会出现ora-04021错误解决办法:
1.可能被锁住
查看v$lockedselect b.sid,b.serial#,b.machine,b.terminal,b.program,b.process,b.status from v$lock a , v$session b
where a.SID = b.SID
得到死锁session的SID,SERIAL#参看这个是否为你自己用户下的,然后kill掉session
2.可能被挂起
查看v$session_waitselect b.serial#,a.* from v$session_wait a,v$session
bwhere a.sid = b.sid得到等待的session的sid和serial#3.查看dba_ddl_locksselect
session_id sid, owner, name, type,
mode_held held, mode_requested request
from dba_ddl_locks
where name = '&your_package_name'
4. 我写了一个PLSQL存储过程,编译时报PL/SQL: ORA-00947: 没有足够的值,问题有点奇怪。
insert into emp1(empno,ename,job,sal,deptno) values cur;
这行代码,这样写试一下,看看是否好用。
insert into emp1(empno,ename,job,sal,deptno) values (cur.empno,cur.ename,cur.job,cur.sal,cur.deptno);
5. 编译存储过程时出现Ora-04021错误的如何解决
编译的存储过程的时候,程序死住,等待一会出现ora-04021错误解决办法:1.可能被锁住查看v$lockedselect b.sid,b.serial#,b.machine,b.terminal,b.program,b.process,b.status from v$lock a , v$session bwhere a.SID = b.SID得到死锁session的SID,SERIAL#参看这个是否为你自己用户下的,然后kill掉session2.可能被挂起查看v$session_waitselect b.serial#,a.* from v$session_wait a,v$session bwhere a.sid = b.sid得到等待的session的sid和serial#3.查看dba_ddl_locksselect session_id sid, owner, name, type,mode_held held, mode_requested requestfrom dba_ddl_lockswhere name = '&your_package_name'
6. 存储过程一直报错 但是编译成功了 也没有错 调用时一直不成功报错
下面是问题:
Oraclede 环境中,客户那边提出,执行存储过程时出错,信息:DBCustomException: ORA-00900: invalid SQL statement
关于这个问题之前也遇到过,一直找不到原因,没解决,时好时坏,,由于客户大部分是SQL Server,也就没太在意,现在终于麻烦来了。
我用自己创建的用户,通过P/L SQL 登陆,执行以下语句
--创建表
create table ttt
(
aa varchar(20)
)
--创建存储过程
CREATE OR REPLACE PROCEDURE myproc
AS BEGIN
select * from ttt;
END
--执行
exec myproc
执行存储过程时,开始报错:ORA-00900:无效SQL语句 (上面那个错误的中文版-_-!)
这时候看右边的存储过程如下,有个红叉,
7. 存储过程编译出错表或视图(与存储过程在同一用户下)不存在,急等!!!
首先,存储过程在a,你得把用的b用户的表给a用户查询权限,然后在过程里面用b的表是在表名前面加个b用户名在点一下,后面就可以用b的表了
8. oracle存储过程提示编译完成但存在错误,如何查看错误
1、首先打开PL/SQL Developer软件,新建sql窗口。
9. 这个存储过程哪里错了啊报 ORA-06502: PL/SQL: 数字或值错误 : 数值精度太高 ORA-06512: 在 line 14
我自己建了个表,然后编译你的存储过程,得到的结果是正确的。不知道你是什么问题。
10. 为什么oracle 新建存储过程时,出现“创建过程带有编译错误” ,求大神们帮助。因为没财富了,所以没悬赏了
先不说别的,就是insert into后必须要提交,否则插不进数据造成表被锁
再一个,你那俩参数ASSIGN_PK和CLASS_PK 是要输入的么?
输入的话要加上in,要不是输入,在后边取出的,至少也得赋值,这里就姑且当做你是要输入的两个参数吧。
create or replace procere add_t
(ASSIGN_PK IN VARCHAR2 ,
CLASS_PK IN VARCHAR2)
IS
BEGIN
INSERT INTO add_t values(''||ASSIGN_PK||'',''||CLASS_PK||'');
commit;
END;