pl/sql 代码块如何执行?

各种报错 2011-05-27 09:23:55
现在oracle developer sql 窗口写入以下代码,按下F8, 显示执行完成

declare
num&new int ;
begin
num&new := 123;
dbms_output.put_line('num1' || num&new);
end;

已经保存到数据库了,可是我要如何调用它呢? 是不是 exec num&new;
...全文
741 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
skychong 2011-05-27
  • 打赏
  • 举报
回复
有pl/sql的话,直接新建一个命令窗口,将上面代码粘贴,并在最后加个“/”,然后回车就行。注意这以前需要执行"set serverout on"命令。
304的的哥 2011-05-27
  • 打赏
  • 举报
回复

SQL> create or replace procedure pro_num
2 as
3 num_new int;
4 begin
5 num_new :=123;
6 dbms_output.put_line('num_new:'||num_new);
7 end pro_num;
8 /

Procedure created

SQL> set serveroutput on;
SQL> exec pro_num;

num_new:123

PL/SQL procedure successfully completed
304的的哥 2011-05-27
  • 打赏
  • 举报
回复

--你这只是一个匿名块,它的生存期只是执行期间,执行过后就不可以调用。
--你可以建立一个过程:
create or replace procedure pro_num
declare
num_new int ;
begin
num_new := 123;
dbms_output.put_line('num1:' || num_new);
end;
end pro_num;
set serveroutput on;
exec pro_num;
zxtxljhyc 2011-05-27
  • 打赏
  • 举报
回复
这个是立即执行的吧,按F8就已经执行了,可以在输出tab页看输出结果
xumeng929 2011-05-27
  • 打赏
  • 举报
回复
你上面写的直接可以执行,因为你写的是代码块
如果你写的是function的话
用select function(1) from dual;或者exec function_name(参数)可以执行
如果是procedure的话,必须是exec procedure_name(parameter)这样执行

我上面所说的都是在sqlplus下执行,或者客户端
各种报错 2011-05-27
  • 打赏
  • 举报
回复
谢谢各位,结帖了!

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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