pl/sql存储过程里如何调用别的存储过程?

onlygirl2006 2010-11-05 03:06:06
我直接写
execute immediate 'procedure_name'好像不行啊
...全文
1330 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
hyl04 2010-11-14
  • 打赏
  • 举报
回复
直接调用存储过程就可以了!
onlygirl2006 2010-11-11
  • 打赏
  • 举报
回复
多谢各位热心的朋友,原来这么简单,害我还一直用execute,结贴
hyl04 2010-11-07
  • 打赏
  • 举报
回复
如果两个存储过程在同一个包中,直接存储过程名(参数)就可以了,如果不在同一个包中,用包名.存储过程名(参数)调用!
写代码的大熊 2010-11-07
  • 打赏
  • 举报
回复
[Quote=引用楼主 onlygirl2006 的回复:]
我直接写
execute immediate 'procedure_name'好像不行啊
[/Quote]

干嘛要加引号呢?你直接调用就行了

begin
.....

procedure name(参数);

......
end;
Dream_1986 2010-11-06
  • 打赏
  • 举报
回复

--sql窗口
select procedure_name(参数) from dual ;
--命令窗口
exec procedure_name(参数);
心中的彩虹 2010-11-05
  • 打赏
  • 举报
回复
[Quote=引用楼主 onlygirl2006 的回复:]
我直接写
execute immediate 'procedure_name'好像不行啊
[/Quote]
sql窗口
begin
procedure_name;
end;


命令窗口

execute immediate procedure_name
njlywy 2010-11-05
  • 打赏
  • 举报
回复
begin
procedure_name;
end;
xman_78tom 2010-11-05
  • 打赏
  • 举报
回复
存储过程需要在 plsql 块中调用。在动态语句中,也要包含在 plsql 块中。
execute immediate 'begin procedure_name; end;';

不过如果没有特殊需要,在存储过程直接调用就可以了。如,
create or replace procedure procedure1
is
begin
procedure2;
end;
/
YY_MM_DD 2010-11-05
  • 打赏
  • 举报
回复

---method1
begin
procedure_name;
end;
---method2
execute immediate procedure_name
---method3
select procedure_name from dual
gelyon 2010-11-05
  • 打赏
  • 举报
回复
直接调用就是了
begin
procedure_name;
end;
  • 打赏
  • 举报
回复
直接 procedure_name(参数); 这样就可以了

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧