oracle数据库学习总结

oracle数据库学习总结

ID:8962763

大小:121.50 KB

页数:19页

时间:2018-04-13

oracle数据库学习总结_第1页
oracle数据库学习总结_第2页
oracle数据库学习总结_第3页
oracle数据库学习总结_第4页
oracle数据库学习总结_第5页
资源描述:

《oracle数据库学习总结》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Oracle数据库学习总结对于一位程序员来说并不需要完全掌握Oracle的所有知识,毕竟自己不是DBA。在日常开发中也用不到那些命令和工具,但是有些知识点我们还是必须得熟练的掌握它们。比如:一些基本的DDL和DML语句,存储过程,函数,视图,触发器,序列,游标,自定义类型和包。下面我就把这段时间里学习Oracle获得的知识点罗列出来,一是为了方便以后查阅,二是为了和搭档交流学习经验。要适应的一些细节从SqlServer转到Oracle进行数据库编程,第一道门槛就是语法问题。很多很多的问题都是因为语法而产生的,现将它们统统集合起来并将它们一网打尽之。

2、参数赋值SqlServerSet@parameter=5--加不加分号无所谓,这里是用‘=‘号进行赋值的OracleParameter:=5;--必须加分号,并使用加‘:‘的’=‘号进行赋值的PL结构。在SqlServer中,采用的是批处理执行任务的方式,所以可以将多条sql语句选中批量执行,而不用顾忌要在专门的地方声明变量,在专门的地方进行逻辑编码。在Oracle中采用的是PL编程方式,必须在专门的地方声明变量,在专门的地方进行流程编码,经典的PL如下:Declare--这里是专门用来定义变量的Begin--这里是专门用来进行程序编码的End;-

3、-这里必须加分号If语句If***条件thenElseif***条件thenElseEndif;--这里要加分号Case语句CaseWhen***条件thenWhen***条件thenWhen***条件thenElseEndCase;--这里要加分号还可以写成:Case常量--一个字符变量When‘A‘thenWhen‘B‘thenWhen‘C‘thenElseEndCase;--这里要加分号循环结构,要达到循环在Oracle中有3种方式,各有各的好处,你懂的。它们分别如下:第一种Loop****Exitwhen退出条件;Endloop;--要加分

4、号第二种While条件loop****Endloop;--要加分号第三种ForIin1..100loop***Endloop;--要加分号PL结构中的错误处理就像C#中的Try{}Catch{}语句块能捕获错误。写几个例子:HelloWorld级别的错误抛出例子declarestu_infostudent%rowtype;cursorstu_cursorisselect*fromstudent;beginselect*intostu_infofromstudent;exceptionwhenTOO_MANY_ROWSthendbms_output.

5、put_line('行太多');whenothersthendbms_output.put_line('未知错误错误号:'

6、

7、sqlcode

8、

9、'错误信息'

10、

11、sqlerrm);end;手动抛出错误,类似于c#中的throwdeclarestu_infostudent%rowtype;cursorstu_cursorisselect*fromstudent;beginRaise_Application_Error(-20001,'打酱油的错误');--显示抛出错误exceptionwhenTOO_MANY_ROWSthendbms_output.p

12、ut_line('行太多');whenothersthendbms_output.put_line('未知错误错误号:'

13、

14、sqlcode

15、

16、'错误信息'

17、

18、sqlerrm);end;自定义一个错误,并把它手动抛出declaremy_errorException;pragmaException_Init(my_error,-29999);--这里很重要哦beginraisemy_error;--抛出错误exceptionwhenothersthendbms_output.put_line('未知错误错误号:'

19、

20、sqlcode

21、

22、'错误信息'

23、

24、s

25、qlerrm);end;Record类型Oracle中的Record类型类似于c语言中的结构体,主要用来接收Select语句或游标中返回的数据,下面写个例子:declaretypestudent_record_typeisrecord(stu_namestudent.name%type,stu_agestudent.age%type);student_recordstudent_record_type;--这里很重要,不能直接在类型上操作beginselectname,ageintostudent_recordfromstudentwhereid=

26、&id;dbms_output.put_line(student_record.stu_name

27、

28、''

29、

30、student

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。