oracle变量声明的格式,plsql编程中变量的声明-Oracle

plsql编程中变量的声明

创建第一个程序hello world

begin

dbms_output.put_line(‘Hello world’);

end;

/

set serveroutput on;(输出语句到dos窗口的命令)

begin

dbms_output.put_line(‘Hello world’);

end;

/

就可以在dos窗口中看到Hello world;

(简单变量的声明)

声明变量:

declare

v_name varchar2(20);(变量名在前,类型在后)

begin

v_name  := ‘myname’;(给变量进行赋值)

dbms_output.put_line(v_name);

end;

/

(异常处理)

declare

v_num number := 0;

begin

v_num := 2/v_num;

dbms_output.put_line(v_num);

exception

when others then

dbms_output.put_line(‘error’);

end;

变量声明的规则:

1  变量名不能使用保留字:(from,select)

2  第一个字符必须是字母

3  变量名最多包含30个字符

4  不要与数据库的表或者列同名

5  每一行只能声明一个变量

常用类型变量:

binary_integer :整数,主要用来计数而不是用来表示字段类型,(提高效率)

number;数字类型

char:定长字符串;

date:日期;

long:长字符串,最长2G;

boolean 布尔类型,可以取值true,false,null值;

常量的练习;

declare

v_temp number(1);

v_count binary_integer :=0;

v_sal number(7,2) :=4000.00;

v_date date := sysdate;

v_pi constant number(3,2) := 3.14;

v_valid boolean :=false;

v_name varchar2(20) not null :=’MyName’;

begin

dbms_output.put_line(‘v_temp value’ || v_temp);(||连接符)

end;

/

注释一句用’–‘   注释一段/*               */

dbms_output.put_line()不能打印boolean 变量

使用%type属性:

declare (变量声明类型依据 表的类型变化)

v_empno number(4);

v_empno2 emp.empno%type;

v_empno3 v_empno2%type;

begin

dbms_output.put_line(‘Test’);

end;

复合变量的声明:

第一种:

Table变量类型(相当于java的数组)

declare

type type_table_emp_empno is table of emp.empno%type index by binary_integer;

v_empnos type_table_emp_empno;

begin

v_empnos(0) := 7369;

v_empnos(2) := 7839;

v_empnos(-1) := 9999;–(下标可以是小于0的)(注释)

dbms_output.put_line(v_empnos(-1));

end;

Record变量类型:(相当于java的类)

declare

type type_record_dept is record

(

deptno dept.deptno%type,

dname dept.dname%type,

loc dept.loc%type

);

v_temp type_record_dept;

begin

v_temp.deptno :=50;(相当于引用去访问成员变量)

v_temp.dname :=’aaaa’;

v_temp.loc     := ‘bj’;

dbms_output.put_line(v_temp.deptno || ‘   ‘|| v_temp.dname);

end;

使用%rowtype声明record 变量;

declare

v_temp dept%rowtype;

begin

v_temp.deptno := 50;

v_temp.dname := ‘aaaa’;

v_temp.loc := ‘bj’;

dbms_output.put_line(v_temp.deptno || ‘ ‘ || v_temp.dname);

end;

SQL(select)语句在PlSQL中的应用:

declare

v_ename emp.ename%type;

v_sal emp.sal%type;

begin  –plsql语句中select语句中必须有into ,必须保证返回记录

select ename,sal into v_ename,v_sal from emp where empno = 7369;

dbms_output.put_line(v_ename || ‘ ‘ || v_sal);

end;

declare

v_emp emp%rowtype;

begin

select *into v_emp from emp where empno = 7369;

dbms_output.put_line(v_emp.empno);

end;

其他SQL 语句在plsql中的应用:

declare

v_deptno dept.deptno%type := 50;

v_dname dept.dname%type :=’aaaa’;

v_loc dept.loc%type := ‘bj’;

begin  –插入数值;

insert into dept2 values(v_deptno,v_dname,v_loc);

commit;

end;

declare

v_deptno emp2.deptno%type := 10;

v_count number;

begin

update emp2 set sal=sal/2 where deptno =v_deptno;

–select deptno into v_deptno from emp2 where empno = 7369;

— select count(*) into v_count from emp2;

—    sql表示刚刚执行完的那条语句,(执行完这条语句后,有多少记录被                                影响)

dbms_output.put_line(sql%rowcount || ‘条记录被影响’);

commit;

end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值