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

--存储过程,变量名不区分大小写
  --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);

posted on 2013-05-20 04:07  Kimi_jun  阅读(262)  评论(0编辑  收藏  举报

导航