- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第4章PLSQL理论部分
本章目标PL/SQL数据类型PL/SQL条件和循环控制动态执行SQLPL/SQL中的异常处理
PL/SQL的体系结构PL/SQL是过程语言(ProceduralLanguage)与结构化查询语言(SQL)结合而成的编程语言PL/SQL引擎驻留在Oracle服务器中该引擎接受PL/SQL块并对其进行编译执行用户2.执行过程语句3.引擎将SQL语句发送给SQL语句执行器Oracle服务器PL/SQL引擎SQL语句
执行器过程语句
执行器4.执行SQL语句5.将结果发送给用户1.将PL/SQL块发送给Oracle服务器
PL/SQL块简介PL/SQL块是构成PL/SQL程序的基本单元将逻辑上相关的声明和语句组合在一起PL/SQL分为三个部分,声明部分、可执行部分和异常处理部分语法:[DECLAREdeclarations]BEGINexecutablestatements[EXCEPTIONhandlers]END;
变量声明以及赋值DECLAREv_enameVARCHAR2(20);v_rateNUMBER(7,2);c_rate_incrCONSTANTNUMBER(7,2):=1.10;BEGIN--方法一:通过SELECTINTO给变量赋值SELECTename,sal*c_rate_incrINTOv_ename,v_rateFROMempWHEREempno=7788;--方法二:通过赋值操作符“:=”给变量赋值v_ename:=SCOTT;END;
输出语句--输出信息begindbms_output.put_line(OracleHelloWorld!);end;
数据类型PL/SQL支持的内置数据类型数据类型LOB类型标量类型属性类型%ROWTYPE数字字符布尔型日期时间BFILEBLOBCLOBNCLOB%TYPE提供某个变量或数据库表列的数据类型提供表示表中一行的记录类型存储非结构化数据块
常用数据类型类型说明CHAR固定长度字符串???最大长度2000VARCHAR2可变长度的字符串???最大长度4000?NCHAR根据字符集而定的固定长度字符串???最大长度2000NVARCHAR2?根据字符集而定的可变长度字符串???最大长度4000DATE日期(日-月-年)???DD-MM-YY(HH-MI-SS)BLOB二进制数据???最大长度4GCLOB字符数据???最大长度4GNUMBER(P,S)?数字类型???P为整数位,S为小数位
NUMBER(p,s)详解原值语法结果123.89NUMBER123.89123.89NUMBER(3)124123.89NUMBER(6,2)123.89123.89NUMBER(6,1)123.9123.89NUMBER(4,2)exceedsprecision(有效位为5,54)123.89NUMBER(6,-2)100.01234NUMBER(4,5).01234(有效位为4).000127NUMBER(4,5).000131234.9876NUMBER(6,2)1234.99
属性类型用于引用数据库列的数据类型,以及表示表中一行的记录类型属性类型有两种:%TYPE-引用变量和数据库列的数据类型%ROWTYPE-提供表示表中一行的记录类型使用属性类型的优点:不需要知道被引用的表列的具体类型如果被引用对象的数据类型发生改变,PL/SQL变量的数据类型也随之改变
属性类型示例2-1---------------------------------------------sql语句完成变量赋值declarev$salemp.sal%type;v$enameemp.ename%type;beginselectsal,enameintov$sal,v$enamefromempwhererownum=1;dbms_output.put_line(v$sal||||v$ename);end;
属性类型示例2-2-------------------------------------sql语句完成rowtype变量赋值declarev_row_empemp%rowtype;beginselect*intov_row_empfromempwhereempno=7698;dbms_output.put_line(v_row_emp
文档评论(0)