学习PL/SQL
2011-04-26 01:08
197 查看
明天要去面试,虽然在原来公司用的数据库是Oracle,但是使用PL/SQL用得不是很多,因此学习了下PL/SQL,记忆力不好,因此做一下记录吧
1.PL.SQL的基本格式
a.无名块
b.子程序
1)函数
2)存储过程
自己写一个
4.触发器
好晚了,,明晚接着写,不知道这样效果会不会好点,忽然感叹,写程序是一种需要慢慢积累和沉淀的活动啊。。
1.PL.SQL的基本格式
a.无名块
DECLARE /*申明*/ BEGIN /*执行*/ EXCEPTION /*异常*/ END
b.子程序
1)函数
CREATE [OR REPLACE] FUNCTION_NAME [(参数 [{IN|OUT||IN OUT}])] type RETURN return_type AS|IS <类型、变量定义> BEGIN /*执行体*/ EXCEPTION /*异常*/ END
/* 我自己来写一个 要求:通过传入的月份('201006'),从家庭成员收入表中(HomeMemberEarning)查找出该月的总的收入(earing) CREATE OR REPLACE F_getSumEaring (a_month varchar(6)) RETURN NUMBER IS v_sum NUMBER BEGIN SELECT SUM(earing) INTO v_sum FROM HomeMemberEarning WHERE month = a_month; RETURN v_sum; EXCEPTION WHEN NOT_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('您需的数据不存在'); WHEN TOO_MANY_ROWS THEN DBMS_OUTPUT.PUT_LINE('查询出错,请用游标'); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('发生其它错误'); END */
2)存储过程
CREATE [OR REPLACE] PROCEDURE procedure_name [(参数[{IN|OUT/IN OUT}]) TYPE] {IS|AS} <类型.变量定义> BEGIN /*执行*/ EXCEPTION /*异常*/ END
自己写一个
/* 通过存储过程,传入月份的参数,将家庭收入表中的(HomeMemberEarning)该月的数据删除,并将删除的数据回传给该月 */ CREATE OR REPLACE p_DeleteHomeMemberEarning (a_month HomeMemberEarning.month%type, a_delcount number) as no_result EXCEPTION BEGIN DELETE FROM HomeMemberEarning WHERE month = a_month IF SQL%NOTFOUND THEN RAISE no_result; END IF; EXCETIION WHEN no_result THEN DBMS_OUTPUT.PUT_LINE('没删除任何数据'); WHEN others THEN DBMS_OUTPUT.PUT_LINE('其它错误'); END
4.触发器
好晚了,,明晚接着写,不知道这样效果会不会好点,忽然感叹,写程序是一种需要慢慢积累和沉淀的活动啊。。
相关文章推荐
- PL/SQL学习笔记[5]-流程控制语句
- ORACLE之PL/SQL简单基础语法学习(二)
- PL/SQL学习笔记-约束
- PL/SQL 学习
- PL/SQL 学习分享(续)
- Oracle PL/SQL学习 之 游标
- PL/SQL学习笔记之游标
- PL/SQL个人学习笔记
- PL/SQL学习笔记一之语法结构!!!
- JAVA_WEB Oracle 10g学习: PL/SQL集合与记录
- PL/SQL学习笔记-常量变量及数据类型初步
- 学习笔记_oracle——PL/SQL
- oracle 11g PL/SQL Programming学习三
- PL/SQL学习笔记-程序包
- PL/SQL之DBMS_SQL程序包使用(1)(学习笔记)
- Oracle数据库学习9之PL/SQL控制结构
- Oracle PL/Sql循序渐进全面学习教程
- Oracle中PL/SQL Developer学习
- oracle 11g PL/SQL Programming学习十二
- PL/SQL循序渐进全面学习教程(5)[转]