您的位置:首页 > 数据库 > Oracle

Oracle学习总结(一)存储过程基础

2013-05-20 04:07 411 查看
--存储过程,变量名不区分大小写
--1.创建存储过程
--固定格式:CREATE OR REPLACE PROCEDURE 存储过程名字 (变量名 in 类型) as
CREATE OR REPLACE PROCEDURE "My_Demo" (class in varchar2)
as

--2.声明变量
var_name VARCHAR2(100); --声明普通变量
var_subject VARCHAR2(100);
var_postid NUMBER(10);
var_card_id NUMBER(10);
card_id sys_refcursor; --声明oracle 自定义游标
FILE_HANDLE UTL_FILE.FILE_TYPE; --声明文件句柄

--3.主要逻辑
--固定格式以Begin开始,end结束;
Begin
.
.
.
.
.
.
end;

--4.输出文本字符串
dbms_output.put_line('===START===');

--5.给变量赋值
var_name := ''; --在这边 := 等价于 =

--6.字符串连接使用 ||
var_name||'_0001.unl' --变量连接字符串

--7.往文件中写东西
--7.1 打开文件句柄,第一个参数必须为大写,第二个参数是文件名称,第三个参数随便
FILE_HANDLE := UTL_FILE.FOPEN('MYFILE',
var_name||'_0001.unl',
'w');

UTL_FILE.FCLOSE(FILE_HANDLE);

--7.2 写内容到文件
utl_file.put_line(FILE_HANDLE,
var_name|| '|' || var_subject || '|' ||);

--8.打开游标,将数据存储到游标中,最后关闭游标
open card_id for 'select card_id from student';
.
.
.
.
close card_id;

--9.循环遍历游标
loop
fetch card_id
into var_card_id;
exit when card_id%NOTFOUND;

end loop;

--10.if语句的使用
if card_id > 0 then

select name,subject
INTO var_name, var_subject
FROM student;
else
var_name := '';
var_subject := '';
end if;

--11.抛异常,表示除声明意外的错误
exception
when others then

--12.带返回值的
CREATE OR REPLACE PROCEDURE "My_Demo" (class in varchar2)
return varchar2 is
声明变量
var_temp varchar(100);
begin
.
.
.
.
.
.
return(var_temp);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: