create or replace package body pa_zdcs isPROCEDURE SP1
AS
V1 VARCHAR2(20);
V2 NUMBER(4);
BEGIN
pa_zdcs.SP_DY;
SELECT ENAME,EMPNO INTO V1,V2 from emp WHERE ENAME='sunny';
dbms_output.put_line(v1||' '||v2);
end;PROCEDURE SP_DY
as
begin
UPDATE EMP SET EMPNO=1314 WHERE ENAME='sunny';
commit;
end;
end pa_zdcs;这是写的测试码,执行的时候特别慢,还没出来结果呢~~~问问大家,这样写可以嘛?为什么速度特别慢呢,也没结果?~~~~
AS
V1 VARCHAR2(20);
V2 NUMBER(4);
BEGIN
pa_zdcs.SP_DY;
SELECT ENAME,EMPNO INTO V1,V2 from emp WHERE ENAME='sunny';
dbms_output.put_line(v1||' '||v2);
end;PROCEDURE SP_DY
as
begin
UPDATE EMP SET EMPNO=1314 WHERE ENAME='sunny';
commit;
end;
end pa_zdcs;这是写的测试码,执行的时候特别慢,还没出来结果呢~~~问问大家,这样写可以嘛?为什么速度特别慢呢,也没结果?~~~~
导致emp表被锁定
AS
V1 VARCHAR2(20);
V2 NUMBER(4);
BEGIN
pa_zdcs.SP_DY;
SELECT ENAME,EMPNO INTO V1,V2 from emp WHERE ENAME='sunny';
dbms_output.put_line(v1||' '||v2);
end;PROCEDURE SP_DY
as
begin
UPDATE EMP SET EMPNO=1314 WHERE ENAME='sunny';
commit;
end;
end pa_zdcs;
/--最后要加个/,表示执行上面的代码
--看了你的意思 写了下 很快的SQL> set timing on
SQL> create or replace package body pa_zdcs
2 is
3 PROCEDURE SP1
4 is
5 v_name emp.empname%type;
6 v_no emp.empno%type;
7 begin
8 pa_zdcs.SP_DY;
9 select empno,empname into v_no,v_name from emp
10 where empname='wkc168';
11 dbms_output.put_line(v_no||' '||v_name);
12 end SP1;
13 PROCEDURE SP_DY
14 as
15 begin
16 update emp set empno=168 where empname='wkc168';
17 commit;
18 end SP_DY;
19 end pa_zdcs;
20 /程序包体已创建。已用时间: 00: 00: 00.01
SQL> begin
2 pa_zdcs.SP1;
3 end;
4 /
168 wkc168PL/SQL 过程已成功完成。已用时间: 00: 00: 00.00
select c.sid,c.serial#, a.oracle_username,a.os_user_name,
b.object_name,a.locked_mode
from v$locked_object a,dba_objects b,v$session c
where b.object_id = a.object_id
and a.session_id = c.sid
-- 解锁
alter system kill session 'sid,serial#';