Oracle 自定义函数

美丽不打折 贡献于2012-12-26

作者 Arean  创建于2010-07-08 11:21:00   修改者Arean  修改于2010-07-08 11:24:00字数1168

文档摘要:注意:下面的中括号仅是为了突出关键地方,在实际语法中并没有中括号,切记切记!没有参数的自定义函数语法:createorreplacefunction[自定义函数名]return[数据类型]is[自定义变量名][数据类型];beginselect[字段名]into[自定义变量名]from[表名];return[自定义变量名];end;/执行完上面的代码后,则会提示:“函数已创建”那么再执行下面代码:SQL>var[变量名][数据类型]SQL>exec:[变量名]:=[自定义函数名];
关键词:

Oracle自定义函数 注意:下面的中括号仅是为了突出关键地方,在实际语法中并没有中括号,切记切记! 没有参数的自定义函数 语法: create or replace function [自定义函数名] return [数据类型] is [自定义变量名] [数据类型]; begin select [字段名] into [自定义变量名] from [表名]; return [自定义变量名]; end; / 执行完上面的代码后,则会提示:“函数已创建” 那么再执行下面代码: SQL> var [变量名] [数据类型] SQL> exec :[变量名]:=[自定义函数名]; 执行完后则会提示:PL/SQL 过程已成功完成 这时则需再完成最后一句代码则可看到我们的结果: SQL> print [变量名]; 以上则是代码 那么我们写个demo 我们在DOS环境下以语法:sqlplus scott/[口令(即密码)] 在scott用户下我们知道他有dept、EMP、bonus、salgrade等表 而user_users为他的系统表 首先我们查询一下user_users表 select * from user_users; 发现此表下的username字段下的值为scott 那么我们以user_users系统表为例创建一个自定义函数 create or replace function test return varchar2 is name varchar2(50); begin select username into name from user_users; return name; end; / 再接着就是: SQL> var username varchar2(50) SQL> exec :username:=test; SQL> print username; 那么结果显示为 USERNAME ------------------------------------------- SCOTT 上面为无参的自定义函数,接下来再写个有参的自定义函数 那么刚才说了scott用户有dept表,我们则以此为例 create or replace function test2(num number) return varchar2 is name varchar2(50); begin select dname into name from dept where deptno=num; return name; exception when no_data_found then raise_application_error(-20001, '你输入的ID无效!'); end; / 再接着就是: SQL> var name varchar2(50) SQL> exec :name:=test2(10); SQL> print name; 那么结果显示为 NAME ------------------------------------------- ACCOUNTING

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 5 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档