Welcome 微信登录

首页 / 数据库 / MySQL / PL/SQL编程中变量的声明

PL/SQL编程中变量的声明创建第一个程序hello worldbegindbms_output.put_line("Hello world");end;/ set serveroutput on;(输出语句到dos窗口的命令) begindbms_output.put_line("Hello world");end;/就可以在dos窗口中看到Hello world; (简单变量的声明)声明变量:declarev_name varchar2(20);(变量名在前,类型在后)beginv_name := "myname";(给变量进行赋值)dbms_output.put_line(v_name);end;/(异常处理)declarev_num number := 0;beginv_num := 2/v_num;dbms_output.put_line(v_num);exceptionwhen others thendbms_output.put_line("error"); end;变量声明的规则:1 变量名不能使用保留字:(from,select)2 第一个字符必须是字母3 变量名最多包含30个字符4 不要与数据库的表或者列同名5 每一行只能声明一个变量 常用类型变量:binary_integer :整数,主要用来计数而不是用来表示字段类型,(提高效率)number;数字类型char:定长字符串;date:日期;long:长字符串,最长2G;boolean 布尔类型,可以取值true,false,null值;常量的练习;declarev_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";begindbms_output.put_line("v_temp value" || v_temp);(||连接符)end;/注释一句用"--" 注释一段/* */dbms_output.put_line()不能打印boolean 变量 使用%type属性:declare (变量声明类型依据 表的类型变化)v_empno number(4);v_empno2emp.empno%type;v_empno3v_empno2%type;begindbms_output.put_line("Test");end; 复合变量的声明: 第一种:Table变量类型(相当于java的数组)declaretypetype_table_emp_empnois table of emp.empno%type index by binary_integer;v_empnostype_table_emp_empno;beginv_empnos(0) := 7369;v_empnos(2) := 7839;v_empnos(-1) := 9999;--(下标可以是小于0的)(注释)dbms_output.put_line(v_empnos(-1));end; Record变量类型:(相当于java的类)declaretypetype_record_dept isrecord(deptno dept.deptno%type,dname dept.dname%type,loc dept.loc%type);v_temp type_record_dept;beginv_temp.deptno :=50;(相当于引用去访问成员变量)v_temp.dname :="aaaa";v_temp.loc := "bj";dbms_output.put_line(v_temp.deptno || " "|| v_temp.dname);end; 使用%rowtype声明record 变量;declarev_tempdept%rowtype;beginv_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中的应用:declarev_ename emp.ename%type;v_sal emp.sal%type;begin --plsql语句中select语句中必须有into ,必须保证返回记录select ename,salintov_ename,v_sal from emp where empno = 7369;dbms_output.put_line(v_ename || " " || v_sal);end; declarev_emp emp%rowtype;beginselect *into v_emp from emp where empno = 7369;dbms_output.put_line(v_emp.empno);end; 其他SQL 语句在plsql中的应用:declarev_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;  declarev_deptnoemp2.deptno%type:= 10;v_count number;beginupdate 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;更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12PL/SQL中的procedure和function编程Oracle SQL基础相关资讯      PL/SQL 
  • PL/SQL之存储过程和函数  (今 14:09)
  • PL/SQL Developer连接本地Oracle   (07月27日)
  • 【PL/SQL系列】Oracle存储过程使用  (04月23日)
  • PL/SQL Developer 使用技巧分享  (09月16日)
  • PL/SQL实现Java中的split()方法的  (07月10日)
  • 从一个案例看PL/SQL代码片的编译与  (03月04日)
本文评论 查看全部评论 (0)
表情: 姓名: 字数