① oracle导完数据为什么要编译无效对象
网友采纳如果无效对象的数量很少,那么你可以逐个编译这些对象. ALTER PACKAGE my_package COMPILE; ALTER PACKAGE my_package COMPILE BODY; ALTER PROCEDURE my_procere COMPILE; ALTER FUNCTION my_function COMPILE; ALTER TRIGGER my_trigger COMPILE; ALTER VIEW my_view COMPILE;
② 如何在Oracle中重编译所有无效的存储过程
:在SQL_PLUS中:spool ExecCompProc.sql select 'alter procere ' ||object_name||' compile;' From all_objects where status = 'INVALID' and object_type = 'PROCEDURE'; spool off @ExecCompProc.Sql;整理成一个存储过程:Create Or Replace Procere Zl_Compile_Invalid_Procere AsStrsql Varchar2(200);BeginFor x In (Select Object_Name From All_Objects Where Status = 'INVALID' And Object_Type = 'PROCEDURE') LoopStrsql := 'Alter Procere ' || x.Object_Name || ' Compile';Begin Execute Immediate Strsql; Exception--When Others Then Null; When OTHERS Then dbms_output.put_line(Sqlerrm); End;End Loop;End;最后执行:exec Zl_Compile_Invalid_Procere;如果要看到无法重编译的过程的出错信息,需要执行前设置set serverout on。
③ oracle 编译出现PLS-00103 CREATE 错误!编译失效!
函数没有语法问题,DEPTNO = 7788对应的名称或多重?
④ oracle 触发器为什么编译不通过 大家帮忙看看。
触发器应该没有错误,如果编译报错,可能是当前用户没有访问dbms_lock包的权限,使用SYS用户授权一下就可以了。
grant execute on DBMS_LOCK to 用户名称;
⑤ oracle存储过程编译不通过,求各位大虾帮我看下
FOR i IN 1...1000 LOOP 语法错误 是两个点!
,INSERT ID,NAME,age,email,sex,birthday,create_time INTO person VALUES(
这一段的insert 这个一行也是有错误
--1-birthday DATE 与birthdaty:=DATE'1992-05-01'; 不是同一个变量
--以下是更过后的,可以参考下 希望对你有帮助1
create or replace procere insert_person(
NUM IN INT
)
AS
ID INT;
NAME VARCHAR2(10);
age NUMBER;
email VARCHAR2(10);
sex NUMBER;
birthday DATE;
create_time TIMESTAMP;
BEGIN
ID:=NUM;
NAME:='张三';
age:=25;
email:='shangsan';
birthday:=to_date('1992-05-01','yyyy-mm-dd');
create_time:=SYSTIMESTAMP;
FOR i IN 1..1000 LOOP
sex:=1;
IF(i<500)THEN
sex:=0;
END IF;
INSERT INTO person( ID,NAME,age,email,sex,birthday,create_time) VALUES(
NUM+i,
NAME||i,
age,
email||i||'@163.com',
sex,
birthday,
create_time
);
END LOOP;
COMMIT;
dbms_output.put_line('执行结束');
END;
⑥ oracle 过程 重新编译也无效
编译完成,不代表里面语句没问题,这种情况是存储过程里存在某种错误
在 SQL *Plus 或者 PL/SQL Developer 的 Command Windows 中,执行
show errors procere USP_EXCEPTION;
查看一下错误是什么.
我的修改如下:
CREATE OR REPLACE PROCEDURE USP_EXCEPTION(EMPNO INTEGER, --批次ID
P_FM NUMBER, --分母
P_FZ NUMBER, --分子
P_RESULT OUT NUMBER --结果
) IS
V_RAISE EXCEPTION; --异常处理
type type_table_pcmx is varray(4) of varchar2(20);
TABLE_PCMX type_table_pcmx;
BEGIN
IF P_FZ = 0 THEN
RAISE V_RAISE;
END IF;
P_RESULT := P_FM / P_FZ;
SELECT ENAME, EMPNO, JOB, DEPTNO
INTO TABLE_PCMX(1),TABLE_PCMX(2),TABLE_PCMX(3),TABLE_PCMX(4)
FROM EMP
WHERE EMPNO = EMPNO;
EXCEPTION
WHEN V_RAISE THEN
RAISE_APPLICATION_ERROR(-20010, 'ERROR:分子为零!');
WHEN NO_DATA_FOUND THEN
RAISE_APPLICATION_ERROR(-20011, 'ERROR:批次明细不存在!');
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20012, 'ERROR:数据错误!');
END;
⑦ oracle存储过程提示编译完成但存在错误,如何查看错误
1、首先打开PL/SQL Developer软件,新建sql窗口。
⑧ Oracle创建的包为什么会出现编译错误
package pkg_score_218 这个应该是package头,里面只要函数的声明就行了
再定义一个package体,里面才是写函数的实现。
⑨ ORACLE 中无法编译包,查过没有锁,是什么原因
报什么错误呢? 一般出现无法编译的情况 都是有过程或者包在在正被执行而被加锁,另外其他过程或者包当中如果包含了其他的包或者过程的话,也会是锁定状态无法编译。