这两天在学习oracle存储过程,终于弄懂了一些,现在把它记录下来,给后面的初学者提供一个简单的思路
首先:我使用的是PL/SQL Developer工具
先创建一个什么工作都不做的存储过程
create or replace procedure hello is begin null; end;
如果运行成功,就表示第一个存储过程已经创建成功,但是还没有任何效果,下面我们把上面的存储过程稍微修改一下:
create or replace procedure hello is begin dbms_output.put_line('Hello World!'); end;这里的dbms_output.put_line();和java中的system.out.print();是一样的输出命令
再运行一下,表示成功了!
现在就是要调用这个存储过程看看效果,我这里提供一些调用方法:
一:就是把存储过程hello();当成一个方法调用
call hello();
二:就是hello()当成一个plsql语句块来调用
begin
hello();
end;
三:就是你们在网上看到的execute hello();这种方法
这里是有一个问题的,你直接在SQL Window里面这样写,再执行,会报错:无效的SQL语句
这个时候就不要用SQL Window窗口写这句话了,要重新创建一个Command Window窗口,再写execute hello();
然后你又会发现没有看见效果“Hello World!”这个效果啊,而是“procedure successfully completed”,不用担心,这句话的意思就是说:“存储过程已经成功执行”
这个时候你要先写一句:“set serveroutput on”,它的意思就是允许dbms_output.put_line();直接打印出来,然后再写execute hello();这个时候就把内容打印出来了!
代码如下:
SQL> set serveroutput on SQL> execute hello(); Hello World! PL/SQL procedure successfully completed