Oracle之存储过程

前言

在学习JDBC的时候,因为CallableStatement遇到了这个存储过程,所以学习了一下存储过程,因为在网上看了很多教程,有些教程的SQL语句写的没问题,但是我就是运行不成功,原来是因为一些细节没有被提到.
这里我做一下记录,希望能够把细节都包括进去.

SQL Window和Command Window

关于存储过程的语法,这里就不赘述.
首先说两个东西:
我使用的是PL/SQL Developer.这个IDE里面可以创建一个SQL window和一个command window
Command Window

一. SQL Window

SQLwindow是一个直接运行SQL语句的界面.

二. Command Window

Command Window是类似于SQL*Plus命令终端的,

这两者在写存储过程的时候有点小差别.

带有参数的

在SQL Window中创建存储过程
/*创建语句, setComm: 存储过程的名字, (salary number): 参数类型,不用写范围.*/
create or replace procedure setComm(salary number)
is /*这里用is或者as好像都可以,没发现有什么不同.*/
begin
update empcon set comm = salary where empno=1010; /*要执行的SQL语句*/
end; /*结束*/

运行存储过程

begin
 setComm(300);
end;
/
在Command Window中创建存储过程

创建

SQL> create or replace procedure setComm(salary number)
  2  is
  3  begin
  4  update empcon set comm = salary where empno=1010;
  5  end;
  6  /
Procedure created

执行:

SQL> exec setComm(22);
PL/SQL procedure successfully completed

查询结果:

SQL> select * from empcon;
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
 7369 SMITH      CLERK      7902 1980/12/17     800.00               20
 7521 WARD       SALESMAN   7698 1981/2/22     1250.00    500.00     30
 7654 MARTIN     SALESMAN   7698 1981/9/28     1250.00   1400.00     30
 7782 CLARK      MANAGER    7839 1981/6/9      2450.00               10
 7788 SCOTT      ANALYST    7566 1987/4/19     3000.00               20
 7839 KING       PRESIDENT       1981/11/17    5000.00               10
 7876 ADAMS      CLERK      7788 1987/5/23     1100.00               20
 7900 JAMES      CLERK      7698 1981/12/3      950.00               30
 7902 FORD       ANALYST    7566 1981/12/3     3000.00               20
 7934 MILLER     CLERK      7782 1982/1/23     1300.00               10
 1010 3333                  7839 2017/4/21 1   5002.00     22.00     10
 9999 铜铁胆                7839 2017/4/21 1   5000.00   1500.00     10
12 rows selected

总结

带参数的存储过程就不再介绍了,其实这里有个关键点,也是我第一次忽略的,就是在Command Window里面,创建完存储过程后,要记得添加/符号,不然,可能会发现,一直按回车就是结束不了,不过可以用ESC结束.

SQL> create or replace procedure setComm(salary number)
  2  is
  3  begin
  4  update empcon set comm = salary where empno=1010;
  5  end;
  6  
  7  
  8  
  9  
 10  
 11  
 12  
 13  
 14  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值