第一次用oracle写存储过程,简单记录下。
工具:plsql。
1、先用plsql连上数据库。
2、点击 文件->新建->SQL窗口
3、在新建的窗口里写语句,定义一个新的简单的存储过程
简单说明:
1) create or replace procedure 是固定写法,后面 procedure_test是这个存储过程的名称,你可以按照你自己的实际需要写成别的(例如 aaa,save_date或者其他);
2)然后后面这个 is 也是必须写的,不然编译的时候不会报错,但是执行的时候也会报错。
3)is之后是定义的变量。就是begin后面需要用到的变量,需要在这里提前定义出来,不然存储过程编译的时候就会报错了
4)begin,也是个关键字,必须写,不然编译不报错,后面的执行也会报错。最后的end也是如此
5)begin里面的,第一行 testNum:= 1,这句是为了给testNum赋值。是的,存储过程里给变量赋值,需要用:=,而不是只用=。后面同理给testText赋值
6)dbms_output.put_line,这个是存储过程的输出语句。类似java的System.out.printLn();。
7)写完这些语句之后我们点下执行,如果没有报错,就是编程成功了。编译成功之后,会在左侧的procedures文件夹里出现刚才我们写的这个存储过程的名字。如下图
8)然后我们在这个存储过程上邮件,选择 测试 选项
之后会弹出测试页面
9)测试和执行存储过程
然后我们执行一下这个存储过程
如果没有报错,就是执行成功了。可以看下这个存储过程的输出,在 DBMS输出 这个tab页面里
4、上面是一个超级简单的存储过程的创建到执行到看输出的过程,接下来说下如何在这个存储过程里使用循环
1)前提是对sql查询结果的循环,然后使用游标。在上面例子的基础上写
2)需要在 is 之后,begin 之前,定义这个新的游标。 cursor cur is 后面写查询的sql语句
3)在begin之后,用 fro temp in cur loop ,来开启循环,这个句子里,只有temp是变量,可以换成其他的名字,其他都是固定的,然后接下来写需要实现的逻辑
4)再接下来,end loop,表示结束循环。
5)写完之后编译,然后再按着之前的执行,可以看到DBMS输出