匿名块、变量和简单的数据类型

版权声明:欢迎指正,评论,共同学习 https://blog.csdn.net/m18994118189/article/details/82906555

1.匿名块的编写

块的结构和变量的声明

 

declare

变量声明部分;

begin

逻辑处理执行部分;

end;

/

 

便于维护(模块化的SQL)

提高数据库的安全性(把SQL原子操作封装起来了,更安全)

提高性能(第一次创建对象的时候,数据库保存的是编译好的二进制,重复执行不会再进行编译)

简化使用(重复调用)

 

2.简写一个最简单的匿名块

(如果块中不需要使用变量,可以省略变量声明部分)

如果想看到PL/SQL在SQLPLUS环境中的输出部分

需要设置serveroutput为on,默认是off,即不输出PL/SQL的输出结果

set serveroutput on

begin

dbms_output.put_line('--------------------------------------');

dbms_output.put_line('               hello world');

dbms_output.put_line('--------------------------------------');

end;

/

 

3.变量

变量就是数据的容器,存储数据用的

变量一定要有数据类型

数据类型分为简单数据类型和复杂数据类型

%type就是声明一个变量和另外一个变量数据类型相同

或与某表中的某列数据类型相同

declare

v1 number;                             --显式声明简单的数据类型

v2 v1%type;                            --不必知道V1是啥数据类型,通过%type就可以使V2与V1数据类型一致

v3 emp.empno%type;          --V3的数据类型与EMP表中EMPNO字段的数据类型一致

begin

v1:=100;

v2:=200;

v3:=300;

dbms_output.put_line(v1||' '||v2||' '||v3);

end;

/

 

PLSQL代码中的注释

--行级注释

/* ..... */多行注释

 

变量的作用范围

外部模块变量可以传到内部块使用

内部块的变量不会影响到外部块

 

4.取表中的数据对变量进行赋值

使用select... into 变量来实现通过表中的数据对变更的赋值

 

declare

v1 emp.empno%type;

v2 emp.ename%type;

v3 emp.sal%type;

begin

select empno,ename,sal into v1,v2,v3 from emp where empno=7900;

dbms_output.put_line(v1||' '||v2||' '||v3);

end;

/

 

四种隐式游标与DML有关,广泛应用于IF-ELSE以及循环判断条件中

sql%rowcount     number类型

sql%found            boolean类型

sql%notfound      boolean类型

sql%isopen           boolean类型

 

declare

v1 emp.deptno%type :=20;

v2 number;

begin

delete emp where deptno=v1;

v2 := sql%rowcount;

dbms_output.put_line(v2);

rollback;

end;

/

猜你喜欢

转载自blog.csdn.net/m18994118189/article/details/82906555