Oracle函数

--如何调用该过程

call function_name(参数值1,参数值2);

--创建function来查询某个雇员的工资

create or replace function fj_fun1(fjname varchar2)
return number is yearsal number(7,2);
begin
select sal*12+nvl(comm,0)*12 into yearsal from tb_Employee where ename=fjname;--执行部分
return yearsal;
end;
/
var abc number;
call  fj_fun1(‘SCOTT‘) into:abc;--调用

--create function

create or replace function fj_ft1(
string1 varchar2,
string2 varchar2
) return varchar2 is
begin
return string1||string2;
end;
/
--调用
select fj_ft1(‘hello‘,‘world‘) from dual;
--调用时等效于下面这段
var abc varchar2;
call fj_ft1(‘hello‘,‘world‘) into:abc;
时间: 2024-11-09 23:20:00

Oracle函数的相关文章

【函数】Oracle函数系列(1)--字符函数

[函数]Oracle函数系列(1)--字符函数 1  BLOG文档结构图 2  前言部分 2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 常见字符函数(lower.upper.initcap.concat.substr.length.intr.lpad.rpad.trim.chr.ascii.replace.translate)的使用 ② 判断字符串中是否含有汉字 ③ substr和instr的联合使用 ④

ORACLE函数之单行数字函数

 1.           ABS(X) 返回X的绝对值 SQL>SELECT ABS(-1) A,ABS(1) B,ABS(0) C FROM DUAL; A          B          C -------------------- ---------- 1          1          0 2.          ACOS(X) 返回X的反余弦值 SQL>SELECT ACOS(0) A,ACOS(0.5) B,ACOS(1) C FROM DUAL; A    

Oracle——函数

CREATE FUNCTION annual_income(spNAme VARCHAR2) RETURN NUMBER IS yearSal number(7,2);BEGIN  SELECT (sal+NVL(comm,0))*12 INTO yearSal FROM emp WHERE ename=spNAme;  RETURN yearSal;END;/ SQL> var income number;SQL> call annual_income('SMITH') into:incom

Oracle函数+for循环

create or replace function FilterMinganci(str in varchar) return varchar2 is filterWorld varchar2(1000); keyCount int; begin filterWorld := str; keyCount := 0; select count(1) into keyCount from dic_keyword; for aa in (select keyword from dic_keyword

java调用oracle函数

今天写了个oracle函数,但但对java如何调用不是很明白. 今天写了个,并且成功运行了. Connection conn = null; CallableStatement cstmt = null; try { conn = this.getJdbcTemplate().getDataSource().getConnection(); cstmt = conn.prepareCall("{call AUTO_TENDER_NVL(?)}"); cstmt.registerOutP

oracle函数listagg的使用说明(分组后连接字段)

关于oracle函数listagg的使用说明 工作中经常遇到客户提出这样的需求,希望在汇总合并中,能够把日期逐个枚举出来. 如图,原始数据是这样的: 客户希望能够实现这样的汇总合并: 那么通常我会使用listagg这个函数,但是好多网上都是系统的全面的介绍listagg这个函数的使用方法,看起来很费力气.在这里我简明扼要的说明一下 实现这个需求的语句是这样的: select name, listagg(ddate,' / ') within group (order by name) as dd

Oracle函数-高阶篇

下面整理了部分oracle函数-高阶篇: 1. CATSTR    举例:SELECT CATSTR(COLUMN_NAME) NAME_LIST FROM DBA_TAB_COLUMNS WHERE TRIM(TABLE_NAME) = 'T_RZ_DKDATA'  --查询出的结果在一个列中2. INSTR() 检索字符串函数:匹配则返回首次检索的位置的索引值(从1开始),值>0,否则返回值=0    举例:SELECT * FROM USER_TABLES WHERE INSTR(TABL

oracle函数获取汉字拼音的首字母

CREATE OR REPLACE FUNCTION F_TRANS_PINYIN_CAPITAL(P_NAME IN VARCHAR2) RETURN VARCHAR2 AS V_COMPARE VARCHAR2(100); V_RETURN VARCHAR2(4000); FUNCTION F_NLSSORT(P_WORD IN VARCHAR2) RETURN VARCHAR2 AS BEGIN RETURN NLSSORT(P_WORD, 'NLS_SORT=SCHINESE_PINYI

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

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

浅谈Oracle函数返回Table集合

在调用Oracle函数时为了让PL/SQL 函数返回数据的多个行,必须通过返回一个 REF CURSOR 或一个数据集合来完成.REF CURSOR 的这种情况局限于可以从查询中选择的数据,而整个集合在可以返回前,必须进行具体化. 9i 通过引入Oracle函数中的管道化表函数纠正了后一种情况.表函数是返回整个行的集(通常作为一个集合)的函数,可以直接从 SQL 语句中进行查询,就好像它是一个真正的数据库表一样.管道化表函数与之相似,但是它像在构建时一样返回数据,而不是一次全部返回.管道化表函数