频道栏目
首页 > 数据库 > Oracle > 正文
oracle数据库PL/SQL之基础知识
2012-11-14 14:14:19           
收藏   我要投稿


oracle数据库PL/SQL之基础知识

 

一) 概述:

oracle在标准sql语言上进行过程性扩展后形成的程序设计语言,是一种oracle特有的,支持应用开发的语言。www.2cto.com  

二) 语法:

1.基本结构

declare

    --声明一些变量、常量、用户定义的数据类型以及游标等

    --这一部分可选,如不需要可以不写

begin

    --主程序体

exception

    --异常处理

end;

/

2.字符集

1)大小写字母

2)数字

3)非显示的字符、制表符、空格和回车

4)数学符号+,-,*,/,<,>,=。

5)间隔符,包括(),{},[],?,!,;,:,",'@,#,%,$,^,&等;

3.数据类型

1)数字类型

NUMBER(P,S),可存储整数和浮点数;P是有效数字个数,S是小数点右边数字的个数;

PLS_INTEGER

BINARY_INTEGER

后两种只能存储整数

与number等价的子类型:DEC、DECIMAL、DOUBLE、PRECISION、INTEGER、INT、NUMERIC、REAL、SMALLINT...

2)字符类型

VARCHAR2:存储变长字符串,VARCHAR2(maxlength)32767字节,数据库中该类型最大长度为4000字节;

CHAR:存储定长字符串,CHAR(maxlength) 32767字节,数据库中该类型最大长度为2000字节

LONG:存储变长字符串,最大长度为32760字节,数据库中该类型最大长度为2GB

NCHAR

NVARCHAR2

后两种类型的长度根据各国字符集的不同而不同;

3)日期类型

DATA,7字节,世纪、年、月、天、小时、分钟和秒;

4)布尔类型

BOOLEAN

5)type定义的数据类型(记录)

TYPE type_name IS RECORD(

variable_name datatype[,

variable_name datatype[,

...

);

real_name type_name;

记录示例:emp.eid%TYPE

 

DECLARE

TYPE myrecord IS RECORD(

id varchar2<10>,

name varchar2<10>

);

real_record myrecord;

BEGIN

SELECT eid,ename INTO real_record FROM emp WHERE eid='001';

DBMS_OUTPUT.PUT_LINE(real_record.id||','||real_reacord.name);

END;

 

DECLARE

TYPE myrecord IS RECORD(

id  emp.eid%TYPE ,

name varchar2<10>

);

real_record myrecord;

BEGIN

SELECT eid,ename INTO real_record FROM emp WHERE eid='001';

DBMS_OUTPUT.PUT_LINE(real_record.id||','||real_reacord.name);

END;

 

DECLARE

myrec emp%ROWTYPE

BEGIN

SELECT * INTO myrec FROM emp WHERE eid='001';

DBMS_OUTPUT.PUT_LINE( myrec .eid||','||  myrec .ename);

END

 

4.控制结构

1)IF语句

IF 条件表达式1 THEN

    语句序列1;

[ELSIF 条件表达式2 THEN

    语句序列2;]

[ELSE

    语句序列3;]

END IF;

2)CASE语句

CASE 检测表达式

WHEN 表达式1 THEN 语句序列1

......

WHEN 表达式n THEN 语句序列n

[ELSE 其他语句序列]

END;

3)NULL值检查

4)循环结构

LOOP...EXIT...END

control_var:=0;

    LOOP

    IF control_var>5 THEN

        EXIT;

    END IF;

    control_var:=control_var+1;

END LOOP;

 

LOOP ... EXIT WHEN ...END

control_var:=0;

    LOOP

    EXIT WHEN control_var>5 

    control_var:=control_var+1;

END LOOP;

 

WHILE...LOOP...END

control_var:=0;

WHILE control_var<=5 LOOP

        control_var:=control_val+1;

END LOOP;

 

FOR...IN...LOOP...END

FRO control_var in 0...5 LOOP

    NULL;

END LOOP;

 

GOTO lable;

... 

<<mark>>

...

IF no>98050 THEN

            GOTO goto_mark;

...

5.表达式

1)字符表达式

'hello'||' world'||'!'=hello world!

2)布尔表达式

AND

OR

NOT
 

点击复制链接 与好友分享!回本站首页
相关TAG标签 基础知识 数据库
上一篇:oracle改ip后orcale服务没法启动的问题
下一篇:oracle数据库PL/SQL之游标
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站