`

Oracle_学习开发子程序_函数

阅读更多
一、开发函数
函数用于返回特定数据,如果在应用程序中经常需要返回特定数据,可以基于操作建立一个函数,通过使用函数,不仅可以简化客户端程序的开发和维护,而且还可以提高应用程序的性能,语法如下:
create [or replace]function function_name   
(argument1[mode] dateType1,argument2[mode] dateType2........)
return dateType  
IS/AS    
PL/SQL block 

如上所示:function_name用于指定函数名称,argument1、argument2用于指定函数的参数,mode用于指定参数模式,dateType1、dateType2用于指定函数参数类型;IS/AS用于表示开始一个PL/SQL块。当指定参数类型时不能指定参数长度,另外当建立函数时即可以指定输入参数(IN),也可以指定输出参数(OUT),又可以指定输入输出参数(INOUT),return子句用于指定函数返回值的数据类型。当建立函数时,在函数头部必须要带有return子句,在函数体内至少要包括一条return 语句,
1、建立函数:不带任何参数
create or replace function function_test
return varchar2
is
v_name varchar2(10);
begin
select name into v_name from cip_temps where id=29;
return v_name;
end;

调用函数,代码如下:
SQL> var name varchar2(10)
SQL> exec :name:=function_test1;
SQL> print name;

2、建立函数:带有IN参数
当创建函数时,可以通过输入参数将应用程序的数据传递到函数中,最终通过执行函数将结果返回到应用程序中。当定义函数参数时,如果不指定函数模式,则默认为输入参数,所以IN关键字可写可不写。
create or replace function function_in(v_id number)
return varchar2
is
v_name varchar2(10);
begin
select name into v_name from cip_temps where id=v_id;
return v_name;
end;

调用函数,代码如下:
SQL> var name varchar2(10)
SQL> exec :name:=function_in(29);
SQL> print name;

3、建立函数:带有OUT参数
一般情况下,函数之需要返回单个数据,如果希望使用函数同时返回多个数据,则就需要使用OUT参数了。
create or replace function function_out
(v_id number,v_age out varchar2)
return varchar2
is
v_name varchar2(10);
begin
select name,age into v_name,v_age from cip_temps where id=v_id;
return v_name;
end;

该函数带有OUT参数,所以不能在SQL语句中调用该函数,必须通过定义变量接受OUT参数和函数的返回值。
调用函数,代码如下:
SQL> var name varchar2(10)
SQL> var age varchar2(10)
SQL> exec :name:=function_out(29,:age);
SQL> print name age;

4、建立函数:带有IN OUT参数
定义函数时,不仅可以定义IN和OUT参数,也可以指定IN OUT参数,IN OUT参数为输入输出参数,当使用这种参数时,在调用函数之前需要通过变量给该参数传递数据,在调用结束之后,oracle会通过该变量将过程结果传递给应用程序,示例如下:
create or replace function function_inout
(num1 number,num2 in out number)
return number
is
v1 number;
v2 number;
begin
  v1:=num1+num2;
  v2:=num1*num2;
  num2:=v2;
  return v1;
end;
/

该函数带有OUT参数,所以不能在SQL语句中调用该函数,必须通过定义变量接受OUT参数和函数的返回值。
调用函数,代码如下:
SQL> var num1 number
SQL> var num2 number
SQL> exec :num2:=10;
SQL> exec :num1:=function_inout(10,:num2);
SQL> print num1 num2;

5、函数调用限制
并不是所有的函数都可以在SQL语句下调用,在SQL语句中调用函数有以下限制:
(1)、在SQL语句中只能调用存储函数(服务器端),而不能调用客户端函数。
(2)、在SQL语句中调用的函数只能带有输入参数(IN),而不能带有输出参数(OUT)和输入输出参数(IN OUT)。
(3)、在SQL语句中调用的函数不能包括INSERT、UPDATE和DELETE语句。
(4)、在SQL语句中调用的函数只能使用SQL语句所支持的标准数据类型,而不能使用PL/SQL的特有数据类型(例如:BOOLEAN,TABLE和RECODE)。
二、开发触发器
Oracle_学习开发子程序_触发器
分享到:
评论

相关推荐

    Oracle_plsql讲义:第22章 创建子程序和包.ppt

    Oracle PL/SQL 子程序和包的概念和应用 本章要点: * 理解子程序(过程、函数)及包的概念 * 掌握如何创建、执行和删除过程、函数及包的方法 * 了解形参和实参的区别以及不同参数模式的特征 * 灵活使用过程、函数...

    Oracle_database_11g_SQL开发指南

    在Oracle 11g中,SQL支持更丰富的语法和功能,如子查询、连接、集合操作、窗口函数等。学习SQL是理解数据库操作的基础,对于任何希望在IT领域工作的人都至关重要。 书中会详细介绍SQL的基本概念,如数据类型(如...

    BBS.rar_oracle_oracle projects_oracle项目

    1. **Oracle SQL**:学习和掌握Oracle特定的SQL语法,如PL/SQL过程语言,用于创建存储过程、函数和触发器等复杂逻辑。 2. **数据库设计**:理解如何根据BBS论坛的需求进行表结构设计,包括主键、外键、索引等,以...

    Oracle_PLSQL.rar_Java plsql_oracle_oracle doc_pl sql_plsql

    - **函数(FUNCTION)**:返回单个值的子程序,也可以有参数。 - **包(PACKAGE)**:将相关的过程和函数组织在一起,提供模块化和封装。 6. **PL/SQL与Java集成** - **JDBC(Java Database Connectivity)**:...

    oracle_plsql学习资料

    9. **子程序和包**:存储过程和函数是可重用的代码单元,用于执行特定任务。包是包含相关过程、函数和变量的集合,提供模块化和封装。 10. **游标变量和记录类型**:游标变量用于存储游标的当前状态,而记录类型...

    oracle子程序和程序包

    在实际开发中,Oracle子程序和程序包的应用广泛,如数据库维护、业务逻辑处理、数据转换等场景。掌握这些概念和用法,对于提升Oracle数据库管理的效率和质量至关重要。通过学习和实践,可以更深入地理解其工作原理,...

    深入浅出Oracle_EBS之Forms开发指南

    ### 深入浅出Oracle_EBS之Forms开发指南 #### 一、开发背景与基础 ##### 1.1 读者基础要求 本指南适用于具备一定Oracle...通过学习这些知识点,可以更好地掌握Oracle EBS Forms的开发技巧,从而提高工作效率和质量。

    Oracle_plsql讲义:第23章 使用子程序和包.ppt

    Oracle PL/SQL 讲义第 23 章 使用子程序和包 本章要点: * 掌握存储子程序与数据字典的交互方式及如何从 SQL 语句中调用存储子程序 * 了解存储子程序和局部子程序的区别 * 掌握存储子程序在 Oracle8i 和 Oracle9i ...

    ORACLE_FORM_开发实战

    Oracle Forms是Oracle公司提供的一种快速应用开发工具,它允许开发者使用图形用户界面(GUI)来构建复杂的业务应用程序,尤其适用于与Oracle数据库的集成。下面是对该文档中几个关键章节的知识点总结和深入解析。 #...

    shujuku.rar_Oracle javaweb_javaweb oracle_oracle_数据库面试

    Java Web开发则涉及到Web应用程序的设计、构建和部署,其中数据库交互是核心部分。面试中可能涉及的知识点包括: 1. Servlet和JSP:理解Servlet生命周期,如何使用JSP和Servlet进行动态网页开发,以及它们之间的...

    oracle_oracle_oraclepl/sql_

    5. **子程序**:包括过程(PROCEDURE)和函数(FUNCTION),它们可以封装代码并多次调用,提高代码复用性。函数可返回一个值,而过程不返回。 6. **游标**:游标用于处理SQL查询结果集,允许逐行操作数据,常用于...

    Mastering_Oracle_SQL学习笔记

    在深入探讨《Mastering Oracle SQL学习笔记》的内容之前,我们先理解一下这门课程的核心目标:帮助初学者更好地掌握SQL语言中的关键概念和操作,尤其是针对Oracle数据库的特性。这包括了SQL语句的构建、数据筛选、...

    oracle_sql_plsql课程资料.zip

    Oracle SQL是用于查询、操作和管理Oracle数据库的标准结构化查询语言,而PL/SQL是Oracle公司开发的一种过程式编程语言,它与SQL紧密集成,用于编写数据库应用程序。 1. Oracle SQL基础:Oracle SQL遵循SQL标准,但...

    OraclePL-SQL.rar_ORACLE PL_oracle_oracle sql

    Oracle PL/SQL是Oracle数据库系统中的重要组成部分,用于开发存储过程、函数、触发器等数据库对象,以及执行复杂的SQL操作。以下是对Oracle PL/SQL及其相关知识点的详细说明: 1. **Oracle数据库基础**:Oracle...

    Oracle函数_JDBC常用写法

    在这个“Oracle函数_JDBC常用写法”的主题中,我们将探讨Oracle的一些关键函数和JDBC的常见使用方法。 首先,让我们来看看`ORACLE函数大全.txt`中可能涵盖的内容。Oracle函数包括数学函数、字符串函数、日期时间...

    oracle dbms_lob

    - `CREATE_BFILE`:在Oracle外部文件系统中创建一个BFILE(Binary File)对象,它允许应用程序访问数据库外部的大文件。 - `CREATE_CLOB`、`CREATE_NCLOB`和`CREATE_BLOB`:分别用于创建CLOB(Character Large ...

    Oracle数据库开发之函数概述

    在数据库系统中,函数是一组预定义的程序,用于执行特定的运算任务。Oracle数据库提供了丰富的内置函数,这些函数可以分为多种类型,以适应不同的数据处理需求。在本概述中,我们将详细介绍Oracle数据库中常用的数值...

    ORACLE_PlSql-甲骨文学习笔记

    ### ORACLE_PlSql-甲骨文学习笔记 #### 一、创建表 ##### 创建表一 ```sql CREATE TABLE TABLE_NAME ( AAA INTEGER CONSTRAINT PK_TABLE_NAME PRIMARY KEY, BBB VARCHAR2(10) NOT NULL, DOB DATE, CCC VARCHAR...

    Oracle:子程序和程序包(.ppt)

    Oracle数据库系统中,子程序和程序包是两个重要的概念,它们是PL/SQL编程的核心组成部分。...在实际的开发工作中,熟练掌握子程序和程序包的使用,对于提升Oracle数据库应用的效率和质量至关重要。

    PLSQL.rar_oracle_pl sql_plsql_plsql java_sql

    描述中提到“Oracle,PL/SQL操作手册,主要介绍语法等”,意味着这份资料可能详尽地涵盖了PLSQL的基本语法、数据类型、变量声明、控制结构(如IF-THEN-ELSE、CASE语句)、循环(WHILE、FOR循环)、子程序(过程和函数...

Global site tag (gtag.js) - Google Analytics