玩转Oracle-PLSQL定义并使用变量.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Ⅰ、介绍:在编写pl/sql程序时候,可以定义变量和常量,在pl/sql中包括有: 标量类型(scalar) 复合类型(composite) 参照类型(reference) lob(large object); ㈠、标量:(scalar)常用的类型: 在编写pl/sql的时候,如果要使用变量,需要在定义部分定义变量; pl/sql中定义变量和常量的语法如下: identifier [constant] datatype [ not null ]? [:=|default expt] identifier :名称; constant :指定常量,需要指定他的初始值,而且他的值是不能够改变的; datatype:数据类型; not null ;指定变量不能为null; :=? 给变量或是常量指定初始值; default:用于指定初始值; expr:指定初始值的pl/sql表达式,可以是文本、其他变量、函数等; ①定义一个变长字符串:v_ename varchar2(20); ②定义一个数:v_sal number(6,3); ③定义一个数并给定初始值:v_sal number(5,3):=5.4 ④定义一个日期类型的数据:v_hitedate date; ⑤定义一个bool变量,不能为null,初始值为false; v_valid boolean not null default false; ㈡、标量:使用标量 在定义好变量后就可以使用这些边玲了,这里需要说明的是pl/sql块为变量赋值不同于其他编程语言,需要使用:=符号; SQL> --下面以输入员工号,显示员工姓名等信息; SQL> declare ? 2? c_tax_rate number(3,2):=0.03; ? 3? --用户名; ? 4? v_name varchar2(5); ? 5? v_sal number(6,2); ? 6? v_tax_sal number(6,2); ? 7? begin ? 8? --执行 ? 9 ?10? select ename ,sal into v_name , v_sal from emp where empno=&no; ?11? --计算所得税‘ ?12? v_tax_sal:=v_sal*c_tax_rate; ?13? --输出; ?14? dbms_output.put_line('Name is : ' || v_name || ' sal is '||v_sal||' tax is? '||v_tax_sal); ?15? end; ?16? / Enter value for no: 7788 old? 10: select ename ,sal into v_name , v_sal from emp where empno=&no; new? 10: select ename ,sal into v_name , v_sal from emp where empno=7788; Name is : SCOTT sal is 3000 tax is? 90 PL/SQL procedure successfully completed. ㈢、标量:使用%type类型; 对于上面的pl/sql块有一个问题: 如果员工的姓名操过了5个字符的话救护出错,为了降低pl/sql程序的维护工作量,可以使用%type属性定义变量,这样他会按照数据库列来确定你定义的变量类型和长度; 标识符名称 表明.列名%type; SQL> --下面以输入员工号,显示员工姓名等信息; SQL> declare ? 2? c_tax_rate number(3,2):=0.03; ? 3? --用户名; ? 4? v_name emp.ename%type; ? 5? v_sal? emp.sal%type; ? 6? v_tax_sal number(6,2); ? 7? begin ? 8? --执行 ? 9 ?10? select ename ,sal into v_name , v_sal from emp where empno=&no; ?11? --计算所得税‘ ?12? v_tax_sal:=v_sal*c_tax_rate; ?13? --输出; ?14? dbms_output.put_line('Name is : ' || v_name || ' sal is '||v_sal||' tax is? '||v_tax_sal); ?15? end; ?16? / Enter value for no: 7788 old? 10: select ename ,sal into

文档评论(0)

ddwg + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档