Oracle数据类型,函数与存储过程

字符串类型

固定长度:char nchar    n 表示Unicode编码

可变长度: varchar2 nvarchar2

数字类型:number(P,S)P:整数位数,S小数位数

integer 整数

BINARY_FLOAT  单浮点

BINARY_DOUBLE 双浮点

FLOAT(N)浮点数 N表示精度

日期类型:DATE

TIMESTAMP

用户定义函数是存储在数据库中的代码块,能够把值返回到调用程序。调用时如同

系统函数一样,如max(value)函数,当中,value被称为參数。函数參数有3种类型。

IN 參数类型:表示输入给函数的參数。

OUT 參数类型:表示參数在函数中被赋值,能够传给函数调用程序。

IN OUT參数类型:表示參数既能够传值也能够被赋值。

1、语法格式:

SQL语法方式创建的语法格式为:

CREATE OR REPLACE FUNCTION function_name         /*函数名称*/

(

Parameter_name1,mode1 datatype1,            /*參数定义部分*/

Parameter_name2,mode2 datatype2,

Parameter_name3,mode3 datatype3

)

RETURN return_datatype                /*定义返回值类型*/

IS/AS

variable variableType;                               /*声明变量*/

BEGIN

Function_body                  /*函数体部分*/

RETURN scalar_expression                        /*返回语句*/

END function_name;

说明:

function_name::用户定义的函数名。

函数名必须符合标示符的定义规则。对其全部者来说,该名在数据库中是唯一的。

parameter:用户定义的參数。

用户能够定义一个或多个參数。

mode:參数类型。

datatype:用户定义參数的数据类型。

return_type::用户返回值的数据类型。

函数返回scalar_expression表达式的值。function_body函数体由pl/sql语句构成。

实例:

create or replace function getName(uid in integer) return varchar2

as

username varchar2(10)

begin

select name into username from users where id=uid;

return(username);

end getName;

注意:

(1)假设函数没有參数,那么函数名后不应该要括号;在调用的时候也不须要參数名

(2)创建函数的时候end后面一定要记得写函数名

--没有參数的函数

create or replace function get_user return varchar2 is

v_user varchar2(50);

begin

select username into v_user from user_users;

return v_user;

end get_user;

存储过程

Oracle存储过程基本的语法 存储过程

  1 CREATE OR REPLACE PROCEDURE 存储过程名 (參数名 类型  參数数据类型,...)

  2 IS

  3 BEGIN

  4 NULL;

  5 END;

行1:

  CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个叫 做skeleton存储过程, 如      果存在就覆盖它;

行2:

  IS关键词表明后面将尾随一个PL/SQL体。

行3:

  BEGIN关键词表明PL/SQL体的開始。

行4:

  NULL PL/SQL语句表明什么事都不做,这句不能删去,由于PL/SQL体中至少须要有一句;

行5:

  END关键词表明PL/SQL体的结束

比如:

create or replace procedure  pCountUsers(id integer,name varchar2)

as

begin

insert into users(id,name) values(id,name);

end ;

调用:call pCountUsers(2,‘KK‘);

函数与存储过程的差别:

1. 返回值的差别,函数有1个返回值,而存储过程是通过參数返回的,能够有多个  或者没有

2.调用的差别,函数能够在查询语句中直接调用,而存储过程必须单独调用.

函数普通情况下是用来计算并返回一个计算结果而存储过程通常是用来完毕特定的数据操作(比方改动、插入数据  库表或运行某些DDL语句等等)

时间: 2024-10-10 15:02:44

Oracle数据类型,函数与存储过程的相关文章

oracle中函数和存储过程的区别和联系【转载竹沥半夏】

oracle中函数和存储过程的区别和联系[转载竹沥半夏] 在oracle中,函数和存储过程是经常使用到的,他们的语法中有很多相似的地方,但也有自己的特点.刚学完函数和存储过程,下面来和大家分享一下自己总结的关于函数和存储过程的区别. 一.存储过程 1.定义 存储过程是存储在数据库中提供所有用户程序调用的子程序,定义存储过程的关键字为procedure. 2.创建存储过程 create [or replace] procedure 存储过程名 [(参数1 类型,参数2 out 类型……)] as

oracle中函数和存储过程的区别和联系

oracle中函数和存储过程的区别和联系 在oracle中,函数和存储过程是经常使用到的,他们的语法中有很多相似的地方,但也有自己的特点.刚学完函数和存储过程,下面来和大家分享一下自己总结的关于函数和存储过程的区别. 一.存储过程 1.定义 存储过程是存储在数据库中提供所有用户程序调用的子程序,定义存储过程的关键字为procedure. 2.创建存储过程 create [or replace] procedure 存储过程名 [(参数1 类型,参数2 out 类型……)] as 变量名 类型:

Oracle --存储函数和存储过程

oracle提供可以将pl/sql程序块存储在数据库中,并可以在任何地方运行它,这种pl/sql程序块称为存储过程或函数. 存储过程和函数的区别:函数需要向调用者返回数据,而过程不需要返回数据. 1.创建函数 create or replace function getAllSalary(i_cstmId in t_consumption.csptn_id%type)   return number is   v_sum number; begin   select sum(amount)   

Java,PL/SQL调用 ORACLE存储函数以及存储过程

1.1.1.?准备工作·?创建表? ? --- 创建测试用表 school? ?? ???CREATE TABLE school(? ?? ?? ?? ?ID number,? ?--学校id? ?? ?? ?? ?NAME VARCHAR2(30)? ? ---学校名? ?? ???);? ?? ???--- 添加数据? ?? ???INSERT into school values(1,'北京大学');? ?? ???INSERT into school values(2,'南京大学');?

Oracle 在函数或存储过程中执行一条插入语句并返回主键ID值

有时,我们需要往一张表插入一条记录,同时返回主键ID值. 假定主键ID的值都是通过对应表的SEQUENCE来获得,然后进行ID赋值 这里有几种情况需要注意: 1)如果建表语句含有主键ID的触发器,通过触发器来实现主键ID的自增,实现方式如下: INSERT INTO GP_MONTH_BILL ( MONTH, BONUS_VALUE, CUR_WAY, CUR_TIME, STATUS, IS_USE, CREATE_TIME) VALUES ( CUR_MONTH, CUR_BONUS_VA

Oracle数据类型,DDL、DML、DCL、TCL语言,SQL操作符,SQL函数

SQL查询与SQL函数 本章目标 了解Oracle数据类型  了解数据定义语言和数据操纵语言  了解事务控制语言和数据控制语言  掌握SQL操作符和SQL函数  SQL(structured query language)--结构化查询语言   通过SQL可以实现与Oracle服务器的通信   SQL是数据库语言,Oracle使用该语言存储和检索信息       表是主要的数据库对象,用于存储数据 用户  --------------------发送SQL语句查询----------------

Oracle 学习笔记 18 -- 存储函数和存储过程(PL/SQL子程序)

PL/SQL子程序 包括函数和过程.这里的函数指的是用户自己定义的函数,和系统函数是不同的.子程序一般是完成特定功能的PL/SQL程序块,并且具有一定的通用性,可以被不同的应用程序多次调用.Oracle提供可以把PL/SQL程序存储在数据库中,并可以再任何地方来运行它.这样就叫做存储过程或者是函数.过程和函数的唯一区别就是函数总是向调用者返回数据,而过程则不返回数据. 函数 如果用户要经常执行某些操作,并且需要返回特定的数据,那么就可以将这些操作构造成一个函数. 可以使用SQL语句定义函数. 基

oracle函数和存储过程有什么区别

1. 返回值的区别,函数有1个返回值,而存储过程是通过参数返回的,可以有多个或者没有 2.调用的区别,函数可以在查询语句中直接调用,而存储过程必须单独调用. 函数一般情况下是用来计算并返回一个计算结果而存储过程一般是用来完成特定的数据操作(比如修改.插入数据库表或执行某些DDL语句等等) 参数的返回情况来看: 如果返回多个参数值最好使用存储过程,如果只有一个返回值的话可以使用函数: 从调用情况来看: 如果在SQL语句(DML或SELECT)中调用的话一定是存储函数或存储的封装函数不可以是存储过程

Oracle数据类型和内置函数

Oracle数据类型 数字型:number. float 日期型:DATE.TIMESTAMP 字符串: TIMESTAMP 年:同SYSDATE里的年 月:同SYSDATE里的月 日:1号 时分秒:均为0 to_date date –to_date中的分隔符可以更换,date中的分隔符必须是- –date只可以表示日期,不可以表示时间 TIMESTAMP 记录了年.月.日.时.分.秒和纳秒 –默认值: 年:同SYSDATE里的年 月:同SYSDATE里的月 日:1号 时分秒和纳秒:均为0 表示