oracle编译package
Ⅰ oracle里面的包(package) 有什么用啊
简单说,就是将oracle里的一部分procere等object 组织起来,完全是为了方便代码程序的管理,完全不使用package也是可以的,只是那样的话,代码多了不易管理
Ⅱ oracle如何批量编译包体
sql">alterpackageusername.xxxxcompilebody;
语法如上
Ⅲ oracle package(包)是什么有什么用处
package就是用来封装过程,函数用的。
一个package可以存放多个过程,函数。
调用是:
包名.过程名1
包名.过程名2
楼上解释很形象~
Ⅳ ORACLE 过程编译错误,高手来解答!
凭感觉,你的语法没错。今天连不起公司服务器。周一连上给你试试,等着。。
我们创建的时候,用的是create or replace package。我将你包的内容改变了(因为我没有创建你的那个数据表emp),运行成功了的。内容如下:
create or replace package xxemp_pkg is
procere update_sal(name varchar2,newsal number);
function annual_income(name varchar2) return number;
end;
/
create or replace package body xxemp_pkg is
procere update_sal(name varchar2,newsal number)
is
begin
/*update emp set sal=newsal
where lower(ename)=lower(name);*/null;
end;
function annual_income(name varchar2) return number
is
annual_salary number(7,2);
begin
/*select sal*12+nvl(comm,0) into annual_salary
from emp where lower(ename)=lower(name);*/null;
return annual_salary;
end;
end;
/
你再到你的系统试一试。
Ⅳ 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'
Ⅵ oracle 如何执行package
exec package.function(xx,xx...);
如果想执行整个,在包中编写一个调研所有函数或存储的主存储,然后你调研主存储就可以了。
oracle提供包功能本身不具备调研所有函数或存储的功能,只是将函数、存储、变量以包的形式管理。
Ⅶ oracle 创建存储过程报错, PACKAGE BODY SCOTT.EMP_SAL_MANAGEMENT 编译错误
子程序或游标 'P_P_BONUS' 已在程序包说明中声明, 必须在程序包体中对其进行定义。意思是你已经声明了这个存储过程P_P_BONUS,但是没有在包体(PACKAGE BODY )中定义,就是你还需要在包体中定义P_P_Bonus的实现部分
Ⅷ 如何重编译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中的package 怎么用
先create package,在里面声明procere
然后再create package body,在package body里面编写procere的代码即可(相当于create procere)。
包里没有create procere
示例如下:
CREATE OR REPLACE PACKAGE pkg_test IS
PROCEDURE pro_test(V_OLD IN VARCHAR2,V_NEW IN VARCHAR2);
...
END test;
/
CREATE OR REPLACE PACKAGE BODY pkg_test IS
...
PROCEDURE pro_test(V_OLD IN VARCHAR2,V_NEW IN VARCHAR2) IS
BEGIN
...
END;
...
END pkg_test;