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

Oracle 21NN 2个月前 (06-27) 7次浏览 未收录 0个评论 扫描二维码

字符串类型

固定长度: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语句等等)


21NN.CN , 版权所有丨如未注明 , 均为原创丨转载请注明原文链接:Oracle数据类型,函数与存储过程-Oracle
喜欢 (0)
[1353713598@qq.com]
分享 (0)
关于作者:
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址