Oracle数据库的存储过程教程及简单问题解决

这两天在学习oracle存储过程,终于弄懂了一些,现在把它记录下来,给后面的初学者提供一个简单的思路

首先:我使用的是PL/SQL Developer工具

先创建一个什么工作都不做的存储过程

create or replace procedure hello
is 
begin
  null;
end;

这里必须要写null;因为存储过程的语句块中必须存在一条语句,否则报错,null表示什么工作也不做(不会修改损坏你的任何数据库数据)

如果运行成功,就表示第一个存储过程已经创建成功,但是还没有任何效果,下面我们把上面的存储过程稍微修改一下:

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




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值