`

oracle中函数与存储过程

阅读更多
1. oracle函数
create function 函数名称 return 返回值类型 as
begin
... 
end 函数名称;

查询t_book表的count数
SQL> create function getBookCount return number as
begin
  declare book_count number;
  begin
    select count(*) into book_count from t_book;
    return book_count;
  end;
end getBookCount;
SQL> set serveroutput on;
begin
  dbms_output.put_line('表t_book有'|| getBookCount() ||'条数据');
end;
运行结果:
表t_book有4条数据

查询任意表的count数
SQL> create function getTableCount(table_name varchar2) return number as
begin
  declare recore_count number;
  query_sql varchar2(300);
  begin
    query_sql:='select count(*) from ' || table_name;
    execute immediate query_sql into recore_count;
    return recore_count;
  end;
end getTableCount;
SQL> begin
  dbms_output.put_line('表有'|| getTableCount('t_bookType') ||'条数据');
end;
运行结果:
表有2条数据


2. oracle存储过程
create procedure 存储过程名称 as
begin
... 
end 存储过程名称;

in只进不出
out只出不进
in out可进可出

增加book
SQL> create procedure addBook(bookName in varchar2,typeId in number) as
begin
  declare maxId number;
  begin
    select max(id) into maxId from t_book;
    insert into t_book values(maxId+1,bookName,typeId);
    commit;
  end;
end addBook;
SQL> execute addBook('java好东西',1);

增加book前判断重复
SQL> create procedure addBook2(bN in varchar2,typeId in number) as
begin
  declare maxId number;
  n number;
  begin
    select count(*) into n from t_book where bookName=bN;
    if(n>0) then
     return;
    end if;
    select max(id) into maxId from t_book;
    insert into t_book values(maxId+1,bN,typeId);
    commit;
  end;
end addBook2;
SQL> execute addBook2('java好东西',1);
SQL> execute addBook2('java好东西33',1);

out只出不进示例
SQL> create procedure addBook3(bN in varchar2,typeId in number,n1 out number,n2 out number) as
begin
  declare maxId number;
  n number;
  begin
    select count(*) into n1 from t_book;
    select count(*) into n from t_book where bookName=bN;
    if(n>0) then
     return;
    end if;
    select max(id) into maxId from t_book;
    insert into t_book values(maxId+1,bN,typeId);
    select count(*) into n2 from t_book;
    commit;
  end;
end addBook3;
SQL> declare n1 number;
        n2 number;
begin
  addBook3('onlyInNotOut',2,n1,n2);
  dbms_output.put_line('n1='||n1);
  dbms_output.put_line('n2='||n2);
end;
运行结果:
n1=7
n2=8


3. oracle存储过程debug
debug调试
Procedure --> addBook2 --> 右键Add debug infomation --> 右键Test
分享到:
评论

相关推荐

    如何调用oracle的函数、存储过程

    调用Oracle函数和存储过程通常涉及以下步骤: 1. **创建函数和存储过程**: 使用SQL的CREATE FUNCTION或CREATE PROCEDURE语句来定义它们。例如: ```sql CREATE OR REPLACE FUNCTION my_function(param1 IN ...

    oracle笔记存储函数和存储过程

    oracle笔记存储函数和存储过程,有具体的代码案例!存储函数和存储过程的知识笔记!

    Oracle中的函数、存储过程、包

    Oracle数据库系统中,函数、存储过程和包是重要的PL/SQL编程元素,它们在数据库管理和应用开发中扮演着核心角色。 1. **函数**: - **系统函数**:Oracle预定义的一系列函数,如SYSDATE获取当前日期,USER获取当前...

    ibatis调用oracle的函数,存储过程的方法

    在Ibatis中调用Oracle函数和存储过程,你需要以下步骤: 1. **配置映射文件(Mapper XML)**: - 创建一个XML映射文件,定义SQL语句。对于函数,使用`<select>`标签;对于存储过程,使用`<procedure>`标签。 - 在...

    oracle函数大全与存储过程语法-中文.rar

    本资源包“oracle函数大全与存储过程语法-中文.rar”涵盖了从Oracle 9i到10G版本的函数和存储过程的详细信息,旨在帮助用户深入理解和应用这些关键概念。 1. **Oracle函数大全**: - 函数是预定义的代码块,接受一...

    oracle函数调用存储过程

    ### Oracle函数调用存储过程详解 #### 背景与目的 在开发Oracle应用程序时,经常需要使用到存储过程和函数。这两种类型的数据库对象各有优势,可以满足不同的业务需求。有时候,为了更好地组织代码和提高复用性,...

    oracle oracle函数 存储过程

    在学习和使用Oracle函数和存储过程时,建议从以下几个方面入手: 1. 熟悉基本的SQL语法和操作,这是使用函数和存储过程的前提。 2. 精读Oracle帮助文档,理解每个函数的用法和存储过程的结构。 3. 练习编写简单的...

    oracle 存储过程 函数 dblink

    ### Oracle存储过程、函数与DBLink详解 #### 一、Oracle存储过程简介 在Oracle数据库中,存储过程是一种预编译好的SQL代码集合,它可以接受输入参数、返回单个值或多个值,并能够执行复杂的数据库操作。存储过程...

    oracle函数大全及存储过程语法.rar

    本资源"oracle函数大全及存储过程语法.rar"显然是一个关于Oracle函数和存储过程的详细指南,涵盖了各种常用和高级的函数以及存储过程的编写和使用方法。 一、Oracle函数 Oracle提供了丰富的内置函数,包括数值函数...

    Oracle存储过程和函数(最详细包含emp 表实例操作,边看边操作)

    **二、Oracle函数** 函数与存储过程相似,但函数必须返回一个值,而存储过程可以不返回。函数可以被用作查询的一部分,提升SQL语句的灵活性。 1. **创建函数**:使用`CREATE FUNCTION`语句定义函数,例如: ```...

    java调用oracle存储过程或者函数

    调用Oracle函数的过程与调用存储过程类似,但创建CallableStatement时的SQL语句略有不同。由于函数会返回一个值,所以格式通常是`{? = call function_name(?, ?, ...)}`。在执行后,通过`CallableStatement....

    oracle函数大全及存储过程语法

    总结起来,Oracle函数和存储过程是数据库管理和开发中的重要工具,掌握它们的语法和应用对于优化数据库性能、提升开发效率以及保证数据安全具有重要意义。在实际工作中,应根据具体需求灵活运用,以实现更高效、更...

    oracle 的函数、存储过程、游标、简单实例

    以上内容只是Oracle函数、存储过程和游标的基础介绍。实际应用中,你可能需要结合触发器、异常处理、动态SQL等更高级的概念。通过熟练掌握这些工具,你可以更高效地设计和优化Oracle数据库应用程序。对于初学者,...

    oracle学习之函数存储过程

    ### Oracle学习之函数与存储过程详解 #### 一、函数的定义及应用 函数在Oracle中主要用于执行特定的计算或逻辑处理,并返回一个结果。它们是数据库编程中的重要组成部分,可以提高代码的重用性和可维护性。 #####...

    oracle函数大全及存储过程语法 chm

    Oracle数据库是世界上最广泛使用的数据库系统之一,其...总的来说,Oracle函数和存储过程是数据库开发的核心工具,通过深入学习和实践,你将能够更有效地管理和操作Oracle数据库,提升你的数据库技能和项目实施能力。

    Oracle存储过程、游标、函数的详解

    在Oracle数据库中,存储过程、游标和函数是非常重要的组成部分,它们为数据库管理提供了强大的编程能力。通过学习这些概念,我们可以更加灵活地管理和操作数据库数据。 ##### 1.1 存储过程 存储过程是一组预先编译...

    Oracle存储过程、函数和包

    - **命名存储**:与普通的PL/SQL块不同,存储过程和函数具有名称,并且这些名称在数据库中是唯一的。 - **安全性**:存储过程和函数的安全性由数据库管理,只有被授权的用户才能访问它们。 - **复用性**:存储过程和...

Global site tag (gtag.js) - Google Analytics