




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
声名变量工程目标1.声明一个暂存员工号的变量v_empno,编写一个匿名块,查询smith员工的工号,并将其展示在控制台2.请指出以下的表达式声明中,错误的选项是那一项?并说明理由:a. DECLAREv_idNUMBER(4);b. DECLAREv_x,v_y,v_z VARCHAR2(10);c. DECLAREv_birthdateDATENOTNULL; d. DECLAREv_in_stockBOOLEAN:=1;3.将selectename,sal,empnofromempwhereempno=7788;这个select语句的查询条件绑定变量,以提高性能所需知识点PL/SQL的优点变量的类型PL/SQL变量的声明标量的类型和声明绑定变量关于PL/SQLPL/SQL是SQL语句的扩展,它具有编程语言的设计特征.进行数据操纵和查询的SQL语句作为过程化单元,包含在代码当中.PL/SQL的优点集成性应用程序Oracle效劳器共享库PL/SQL的优点提高性能应用其它DBMS应用Oracle
PL/SQLSQLSQLSQLSQLSQLIF...THEN SQLELSE SQLENDIF;SQL集成性:存储过程能将一些列增删改查的业务放在一起提高性能:存储过程因为oracle已经正常编译之后,应用程序调用存储过程的时候,不用进行语法,语义的检查,所以会节省时间,提高性能PL/SQL的优点PL/SQL语句块结构DECLARE–可选项变量、游标、用户定义异常BEGIN–必须的SQL语句PL/SQL语句EXCEPTION–可选当错误发生时的处理动作END;–必须有的DECLAREBEGINEXCEPTIONEND;PL/SQL语句块结构DECLAREv_variableVARCHAR2(5);BEGINSELECT column_nameINTO v_variableFROM table_name;EXCEPTIONWHENexception_nameTHEN...END;DECLAREBEGINEXCEPTIONEND;块类型匿名 过程 函数[DECLARE]BEGIN--statements[EXCEPTION]END;PROCEDUREnameISBEGIN--statements[EXCEPTION]END;FUNCTIONnameRETURNdatatypeISBEGIN--statementsRETURNvalue;[EXCEPTION]END;匿名存储过程函数变量的使用变量的作用:存放暂时的数据操纵存储的值可重用简化维护在PL/SQL中操纵变量在声明局部声明和创立变量.在可执行局部为变量赋值.通过参数为PL/SQL块传送值.通过输出变量查看结果.变量类型PL/SQL变量:标量复合变量参考变量LOB(大对象)非PL/SQL变量:Bind和host变量声明PL/SQL变量identifier[CONSTANT]datatype[NOTNULL] [:=|DEFAULTexpr];Declare v_hiredate DATE; v_deptno NUMBER(2)NOTNULL:=10; v_location VARCHAR2(13):='Atlanta';c_comm CONSTANTNUMBER:=1400;
语法:实例:声明PL/SQL变量指导:要遵从命名习惯.以NOTNULL和CONSTANT约束来初始化变量.使用赋值操作符(:=)或者DEFAULT保存字来初始化变量.每行只声明一个变量是一个好习惯.为一个变量赋值identifier:=expr;v_ename:='Maduro';v_hiredate:='31-DEC-98';语法例如:为一个新雇员设定一个雇佣日期把雇员名字设为Maduro变量初始化和关键字使用方法:赋值操作符(:=)DEFAULT关键字NOTNULL约束根本标量类型VARCHAR2(maximum_length)NUMBER[(precision,scale)]DATECHAR[(maximum_length)]LONGLONGRAWBOOLEANBINARY_INTEGERPLS_INTEGER标量变量声明例子:v_job VARCHAR2(9);v_count BINARY_INTEGER:=0;v_total_sal NUMBER(9,2):=0;v_orderdate DATE:=SYSDATE+7;c_tax_rate CONSTANTNUMBER(3,2):=8.25;v_valid BOOLEANNOTNULL:=TRUE;%TYPE属性可以参照以下类型来声明一个变量:一个数据库表的列定义其它以前所定义的变量声明以下类型,可以使用%TYPE前缀:一个数据库表的列定义其它以前所定义的变量使用%TYPE属性来声明变量例子:...v_ename emp.ename%TYPE;v_balance NUMBER(7,2); v_min_balance v_balance%TYPE:=10;... 声明布尔变量只有TRUE,FALSE,和NULL可以赋给一个布尔变量.布尔变量可以用AND,OR,和NOT逻辑操作符来连接.变量的值只能是TRUE,FALSE,或NULL其中之一.数字、字符、表达式可以用来返回一个布尔型值.LOB数据类型书籍(CLOB)图片(BLOB)电影(BFILE)NCLOB〔绑定〕Bind变量ServerO/S绑定变量Bind变量在主机环境中定义,向PL/SQL块传递运行时数值的变量。例如:可以在SQL*plus中定义Bind变量而在PL/SQL中使用变量。例如:在SQL*plus中可以定义如下Bind变量:SQL>variableempno_idvarchar2(10);SQL>exec:empno_id:='7369';SQL>select*fromempwhereempno=:empno_id;引用非PL/SQL变量将年薪保存到一个SQL*Plus宿主变量中.以宿主变量的形式来引用PL/SQL变量.在变量名前面要以冒号(:)作为前缀.:g_monthly_sal:=v_sal/12;DBMS_OUTPUT.PUT_LINE这是一个Oracle所提供的一个打包过程可以代替PL/SQL块来完成数据的显示在SQL*Plus中必须执行SET
SERVEROUTPUTON语句以激活该功能例如:DECLAREv_salNUMBER(9,2):=&p_annual_sal;BEGINv_sal:=v_sal/12;DBMS_OUTPUT.PUT_LINE('Themonthlysalaryis'||TO_CHAR(v_sal));END;/绑定变量扩展内容bindvar是指在sql语句的条件中使用变量而不是常量。比方sharedpool里有两条sql语句,select*fromempwhereempno=7788;select*fromempwhereempno=7789;对oracle数据库来说,这是两条完全不同的SQL,对这两条语句都需要进行hardparse。因为oracle会根据sql语句的文本去计算每个字符在内存里的hash值,因此虽然上述两条SQL只有一个字符不一样,oracle根据hash算法在内存中得到的hash地址就不一样,所以oracle就会认为这是两条完全不同的语句。而如果将上述SQL改写成select*fromempwhereempno=:var1;,然后通过对变量var1的赋值去查询,那么oracle对这条语句第一次会进行hardparse,以后就只进行softparse。假设某条语句被重复执行了几十万次,那么使用bindvar带来的好处是巨大的,优点是减少硬解析,降低CPU的争用,节省shared_pool。1.声明一个暂存员工号的变量v_empno,编写一个匿名块,查询smith员工的工号,并将其展示在控制台SQL>setserveroutputon;SQL>DECLARE2empnoNUMBER(4);3BEGIN4SELECTempnoINTOempnoFROMempWHEREename='SMITH';5dbms_output.put_line(empno);6END;7/7369PL/SQLproceduresuccessfullycompleted.练习案例2.请指出以下的表达式声明中,错误的选项是那一项?并说明理由:a. DECLAREv_idNUMBER(4);b. DECLAREv_x,v_y,v_z VARCHAR2(10);c. DECLAREv_birthdateDATENOTNULL; d. DECLAREv_in_stockBOOLEAN:=1;选D因为不可以将数字类型的值,赋
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO 19152-4:2025 EN Geographic information - Land Administration Domain Model (LADM) - Part 4: Valuation information
- 2025至2030中国白三烯a4水解酶行业产业运行态势及投资规划深度研究报告
- 2025至2030中国畜产品行业市场占有率及投资前景评估规划报告
- 2025至2030中国瑜伽砖行业市场占有率及投资前景评估规划报告
- 2025至2030中国玉米面筋粉(CGM)行业产业运行态势及投资规划深度研究报告
- 2025至2030中国牵引带式装载机行业产业运行态势及投资规划深度研究报告
- 学生自信心培养与行为表现的关系
- 管理人员能力提升培训
- 教育机器人如何改变课堂?教学助手视角
- 探索在线教育在医疗领域的发展趋势与前景
- 共同借款人合同借条3篇
- 节约集约建设用地标准 DG-TJ08-2422-2023
- 手术室物品清点原则与制度
- 药品批发企业现代物流基本要求DB41-T 2318-2022
- GB/T 625-2024化学试剂硫酸
- 采血针市场发展前景分析及供需格局研究预测报告
- 气胸完整版本
- 重庆市智慧园林绿化管理信息系统-可行性研究报告(国信咨询)
- 2023-2024学年山东省泰安市泰山区七年级(下)期末数学试卷(五四学制)(含答案)
- 2024住院患者静脉血栓栓塞症预防护理与管理专家共识要点(全文)
- 2024车辆挂靠证明
评论
0/150
提交评论