创建游标.存储过程及包

简介:
创建游标.存储过程及包
/*********************************游标********************************/
/*单向游标:
  declare cursor  游标名  is select 语句
  带参游标:
  declare cursor  游标名  (参数1 类型,.....)is select 语句(可以带参数)
  游标属性:
          %found     ---是否找到
          %isopen    ---是否打开
          %notfound  ---找不到游标
          %rowcount  ---判断游标是否有结果
  游标循环:
          FOR 变量 IN 游标名 LOOP
          语句
          END LOOP
/************例子**************/
declare
       cursor cur_emp is select * from emp;
       e emp%rowtype;
       begin
       open cur_emp;
       fetch cur_emp into e;
       while cur_emp%found
       loop
           dbms_output.put_line(to_char(e.empno)||','||e.ename||','||e.job);
           fetch cur_emp into e;
       end loop;
       close cur_emp;
       end;
PL/SQL 过程已成功完成。
 
/*******不需定义和关闭游标****************/

SQL> begin
  2       for e in(select * from emp)
  3       loop
  4         dbms_output.put_line(to_char(e.empno)||','||e.ename||','||e.job);
  5       end loop;
  6  end;
  7  /
 
PL/SQL 过程已成功完成。
 
/*************************************存储过程******************************/
/*过程(procedure)
     create or replace procedure
     (参数1  in/out/in out  类型,
      参数2  in/out/in out  类型,
       ..........)
       is/as
       pl/sql语句块
/************例子**************/
  1  create or replace procedure proc_emp
  2  ( j in varchar2,
  3    c  out integer)
  4  as
  5    counter integer:=0;
  6  begin
  7  for e in (select *from emp where job=j)
  8  loop
  9  dbms_output.put_line(to_char(e.empno)||','||e.ename||','||e.job);
 10  counter:=(counter+1);
 11  end loop;
 12  c:=counter;
 13* end;
 14  /
 
过程已创建。
/********调用************/
exec 过程([参数])
 
/**********************************函数***************************/
/*函数(FOUCTION)
       create or replace function 名
          return 类型   is/as
          pl/sql语句块
/***********例子************/
  1  create or replace function fun_emp
  2     ( j in varchar2)
  3       return integer
  4        as
  5       counter integer:=0;
  6    begin
  7    for e in (select *from emp where job=j)
  8   loop
  9    dbms_output.put_line(to_char(e.empno)||','||e.ename||','||e.job);
 10   counter:=(counter+1);
 11    end loop;
 12    return counter;
 13* end;
SQL> /
 
函数已创建。
执行:exec 函数([参数])
 
/************************************创建包**********************/
/*包头:
 create or replace package 名
    is/as
    定义部分
    end
  包体:
 create or replace package body 名
        is/as
        代码部分
        end
/*********例子*********************/
--..........建包头................
create or replace package pag_wlxt as
procedure proc_ruku(code  varchar2);              -- 入库单号
end;
 
--.........建包体.................
 
create or replace package body pag_wlxt as
procedure proc_ruku(code  varchar2) is
num integer :=0;
counter integer :=0;
shbz wltrkgl0.rkshbz%type;
rkcb wltrkgl0%rowtype;
kcb wltkcgl0%rowtype;
 
版权说明

  如果标题未标有<转载、转>等字则属于作者原创,欢迎转载,其版权归作者和博客园共有。
  作      者:温景良
  文章出处:http://wenjl520.cnblogs.com/  或  http://www.cnblogs.com/

分类: Oracle
0
0
« 上一篇: 索引.序列及同义词创建和管理
» 下一篇: oracle实用sql语句
posted @ 2009-04-28 23:44 温景良(Jason) Views( 1966) Comments( 0) Edit 收藏
 
相关文章
|
9月前
|
存储 SQL 数据库
数据库sql语句-----游标和存储过程
数据库sql语句-----游标和存储过程
70 1
|
8月前
|
存储 SQL 关系型数据库
MySQL存储过程_触发器_游标——Baidu Comate
MySQL存储过程_触发器_游标——Baidu Comate
64 0
|
8月前
|
存储 关系型数据库 MySQL
MySQL数据库——存储过程-游标(介绍-声明游标、打开游标、获取游标记录、关闭游标,案例)
MySQL数据库——存储过程-游标(介绍-声明游标、打开游标、获取游标记录、关闭游标,案例)
339 0
|
8月前
|
存储 关系型数据库 MySQL
mysql 存储过程游标 循环输出select 查询结果
mysql 存储过程游标 循环输出select 查询结果
149 0
|
9月前
|
存储 SQL Oracle
02-PostgreSQL 存储过程的进阶介绍(含游标、错误处理、自定义函数、事务)
02-PostgreSQL 存储过程的进阶介绍(含游标、错误处理、自定义函数、事务)
|
9月前
|
存储 SQL 定位技术
数据库基础(六):T-SQL语言程序设计、游标定义与使用及存储过程创建与信息查找
数据库基础(六):T-SQL语言程序设计、游标定义与使用及存储过程创建与信息查找
126 1
|
9月前
|
存储 SQL Oracle
|
8天前
|
存储 Java 关系型数据库
java调用mysql存储过程
在 Java 中调用 MySQL 存储过程主要借助 JDBC(Java Database Connectivity)。其核心原理是通过 JDBC 与 MySQL 建立连接,调用存储过程并处理结果。具体步骤包括:加载 JDBC 驱动、建立数据库连接、创建 CallableStatement 对象、设置存储过程参数并执行调用。此过程实现了 Java 程序与 MySQL 数据库的高效交互。
|
3月前
|
存储 SQL 关系型数据库
[MySQL]存储过程
本文介绍了存储过程的概念、优点和缺点,并通过具体示例详细讲解了存储过程的创建、使用和调用方法。此外,还介绍了游标的定义和使用,帮助读者更好地理解和应用存储过程。文章旨在为读者提供一个学习和使用存储过程的实用指南。
360 18
[MySQL]存储过程
|
3月前
|
存储 SQL NoSQL