create or replace procedure sys.pstub(pname varchar2, uname varchar2,
stubSpec in out varchar2, stubText in out varchar2,
flags varchar2 := '6') is
rc varchar2(40);
ty varchar2(5);
cursor tub (una varchar2, dbna varchar2, luna varchar2, luty varchar2) is
select line from sys.pstubtbl
where (una is null or username = una) and
(dbna is null or dbname = dbna) and
lun = luna and lutype = luty
order by lineno;
begin -- main
sys.pstubt(pname, uname, '', flags, rc);
if rc like '$$$%' then stubText := rc; return; end if;
if not (rc = 'PKG' or rc = 'SUB')
then stubText := '$$$ other'; return;
end if;
stubSpec := '';
stubText := '';
if rc = 'PKG' then
for s in tub(uname, '', pname, 'PKS') loop
stubSpec := stubSpec || s.line;
end loop;
end if;
if rc = 'PKG' then ty := 'PKB'; else ty := 'SUB'; end if;
for s in tub(uname, '', pname, ty) loop
stubText := stubText || s.line;
end loop;
end;
stubSpec in out varchar2, stubText in out varchar2,
flags varchar2 := '6') is
rc varchar2(40);
ty varchar2(5);
cursor tub (una varchar2, dbna varchar2, luna varchar2, luty varchar2) is
select line from sys.pstubtbl
where (una is null or username = una) and
(dbna is null or dbname = dbna) and
lun = luna and lutype = luty
order by lineno;
begin -- main
sys.pstubt(pname, uname, '', flags, rc);
if rc like '$$$%' then stubText := rc; return; end if;
if not (rc = 'PKG' or rc = 'SUB')
then stubText := '$$$ other'; return;
end if;
stubSpec := '';
stubText := '';
if rc = 'PKG' then
for s in tub(uname, '', pname, 'PKS') loop
stubSpec := stubSpec || s.line;
end loop;
end if;
if rc = 'PKG' then ty := 'PKB'; else ty := 'SUB'; end if;
for s in tub(uname, '', pname, ty) loop
stubText := stubText || s.line;
end loop;
end;
不过百度上搜的结果还得自己筛选。也颇费事。
找到好地方,希望能帖出来和大家一起分享。
看看这个帖子上的FTP服务器,http://www.itpub.net/110212.html
--传一个字符型参数p_in
--传出一个字符串p_out
begin
--开始执行:
update t_user a set a.user_name=p_in where a.id=1;
--把ID为1的用户名改成传进来的的名称.
commit;
--提交
p_out:='执行成功';
--提交没错误就返回成功信息
exception
when others then --如果有错误发生
rollback; --回滚
p_out:='执行失败'; --返回失败信息
end;