pl/sql

1.变量

v_name  varchar2 := '你好呀' ;

c_name constant number :=  10;

v_char  emp.empno%type ;

v_emp  emp%rowtype

2.三段式格式

declare 

变量声明

begin

流程控制语句

输入输出函数

。。。

end;

3.动态sql

与用户进行交互,常与DDL,DML,单行查询语句配合进行使用

declare

v_name varchar2 := '&输入名字 '      --声明一个字符类型的变量 并将用户输入的信息赋给v_name

v_sal number;

begin

execute immediate     'select sal from emp where ename=:a '  into v_sal  using  v_name;

-- 动态执行语句   将查找到的sal数值 赋值给v_sal,  :a是占位符 ,:后面可以随便写,将v_name的值传入这个占位符

end;

4. 游标

存储多行数据,分为显式游标与隐式游标 ,显式游标又分为动态游标与静态游标,动态游标可分别存储多张表的数据,而静态游标只可以存储一张表的数据;

根据实际情况,我们使用的大多数都是显式游标,因为隐式游标是oracle自己操作的(常见的DDL,DMLSELECT INTO 语句常伴随隐式游标),然后判断是采用动态游标还是静态游标。只要是游标,都要先声明,后需要打开,取值,关闭游标。

静态游标

declare

cursor  emp_cursor(游标名) is  select * from emp;   声明游标,并且赋值

v_emp  emp%rowtype;

begin

open  emp_cursor;  --打开游标

fetch emp_cursor  into v_emp;  --取出游标中的第一行数据赋值给v_emp

while  emp_cursor%found  loop

        dbms_output.put_line(v_emp.sal);

        fetch emp_cursor  into v_emp;  --取下一行

end loop;   --结束循环

close  emp_cursor ;    --关闭游标

end;

动态游标

declare

--先声明动态游标的类型

type  dt_cursor(类型名) is ref cursor 

--声明游标

emp_cursor  dt_cursor;

begin

--动态游标,不能使用for循环

open cur_dept for select * from dept;

。。。。

记得关游标哦  

end;

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值