pl/sql 代码块如何执行? 本帖最后由 xierui4056 于 2011-05-27 09:24:30 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你上面写的直接可以执行,因为你写的是代码块如果你写的是function的话用select function(1) from dual;或者exec function_name(参数)可以执行如果是procedure的话,必须是exec procedure_name(parameter)这样执行我上面所说的都是在sqlplus下执行,或者客户端 这个是立即执行的吧,按F8就已经执行了,可以在输出tab页看输出结果 --你这只是一个匿名块,它的生存期只是执行期间,执行过后就不可以调用。--你可以建立一个过程:create or replace procedure pro_numdeclare num_new int ;begin num_new := 123; dbms_output.put_line('num1:' || num_new); end;end pro_num;set serveroutput on;exec pro_num; 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 有pl/sql的话,直接新建一个命令窗口,将上面代码粘贴,并在最后加个“/”,然后回车就行。注意这以前需要执行"set serverout on"命令。 授权问题 关于ORACLE 10G 数据库当前已关闭 oracle 数据搜索 请教表连接查询 关于ORA-01405 oracle7.3 oracle 805如何导入 oracle815 在线急等 查询如何提高速度,在线等待,谢谢 ORACE触发器居然有这样的限制? 应该不合理吧 ! 都是触发器,为什么一个会得不到包中的变量的值,代码如下 用DBlink来update远端数据库的数据,那么redolog会在本地还是远端生成,还是两端都会生成? 求组复选框查询 sql语句请教
如果你写的是function的话
用select function(1) from dual;或者exec function_name(参数)可以执行
如果是procedure的话,必须是exec procedure_name(parameter)这样执行我上面所说的都是在sqlplus下执行,或者客户端
--你这只是一个匿名块,它的生存期只是执行期间,执行过后就不可以调用。
--你可以建立一个过程:
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;
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