sal

oracle 存储过程 存储函数

断了今生、忘了曾经 提交于 2020-01-25 10:44:54
一: 定义:指存储在数据库中供所有用户程序调用的子程序,叫存储过程、存储函数。 相同点:完成特定功能的程序 不同点:是否用return语句返回值,存储过程无return返回值,存储函数有return返回值。 二:创建和调用存储过程 创建:create or replace procedure 命令 语法:create or replace procedure 过程名(参数列表) as PLSQL子程序体 调用:两种方式 1.exec 过程名(参数列表); 2.begin 过程名(参数列表); 过程名(参数列表); end; / 例子:1 无参存储过程,打印hellow world create or replace procedure sayhellowworld as begain dbms_output.put_line("hellowworld"); end; / commit; 调用: 1.exec sayhellowworld(); 2.begin sayhellowworld(); sayhellowworld(); end; / 2 有参in存储过程:给某个员工加100工资,应打印出涨前涨后薪水。 create or replace procedure raisesalary(eno in number) as --定义一个变量psal保存涨前薪水

oracle的分析函数over(Partition by...) 及开窗函数

痞子三分冷 提交于 2020-01-25 09:53:14
http://zonghl8006.blog.163.com/blog/static/4528311520083995931317/ over(Partition by...) 一个超级牛皮的ORACLE特有函数。 天天都用ORACLE,用了快2年了。最近才接触到这个功能强大而灵活的函数。真实惭愧啊! oracle的分析函数over 及开窗函数 一:分析函数over Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是 对于每个组返回多行,而聚合函数对于每个组只返回一行。 下面通过几个例子来说明其应用。 1:统计某商店的营业额。 date sale 1 20 2 15 3 14 4 18 5 30 规则:按天统计:每天都统计前面几天的总额 得到的结果: DATE SALE SUM ----- -------- ------ 1 20 20 --1天 2 15 35 --1天+2天 3 14 49 --1天+2天+3天 4 18 67 . 5 30 97 . 2:统计各班成绩第一名的同学信息 NAME CLASS S ----- ----- ---------------------- fda 1 80 ffd 1 78 dss 1 95 cfe 2 74 gds 2 92 gf 3 99 ddd 3 99 adf 3 45 asdf

数据库修仙之路2

眉间皱痕 提交于 2020-01-25 01:11:50
根据函数的返回结果,我们将函数分为单行函数和多行函数 单行函数 ( 一条记录返回一个结果 ) 日期函数 转换函数 ( 重点 ) 其他函数 ( 保证类型兼容 ) 多行函数( 组函数 . 聚合函数 ) ( 多条记录 返回一个结果 ( 重点 )) 1) 、 count : 统计记录数 count() -->* 或一个列名 2) 、 max min: 最大值 最小值 3) 、 sum :求和 4) 、 avg: 平 均值 分组 分组 : group by , 将符合条件的记录 进一步的分组 过滤组 :having , 过滤组信息 ,表达式 同 where 一致 行转列 一 : 单行函数 日期函数 --sysdate/current_date 以 date 类型返回当前的日期 select sysdate from dual; select current_date from dual; --2 天以后的日期 select sysdate+2 from dual; -- 员工入职时候 3 天后的时间 select hiredate+3 from emp; -- 每个员工的转正日期 3 个月转正 select hiredate 入职日期 ,hiredate+ 30*3 转正日期 from emp; -- 月份只差 add_months(date, 月个数 ) select hiredate

【Oracle】OVER(PARTITION BY)函数用法

依然范特西╮ 提交于 2020-01-23 02:39:02
OVER(PARTITION BY)函数介绍 开窗函数 Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是:对于每个组返回多行,而聚合函数对于每个组只返回一行。 开窗函数指定了分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变化而变化,举例如下: 1:over后的写法: over(order by salary) 按照salary排序进行累计,order by是个默认的开窗函数 over(partition by deptno)按照部门分区 over(partition by deptno order by salary) 2: 开窗的窗口范围 : over(order by salary range between 5 preceding and 5 following):窗口范围为当前行数据幅度减5加5后的范围内的。 举例: -- sum(s)over(order by s range between 2 preceding and 2 following) 表示加2或2的范围内的求和 select name,class,s, sum(s)over(order by s range between 2 preceding and 2 following) mm from t2 adf 3 45 45 -

MySQL中的常用函数

為{幸葍}努か 提交于 2020-01-19 14:28:21
1.字符串函数 length(a) 获得字符串a的长度 concat(a,b,c) 将多个值拼接成一个字符串 trim(a) 去掉字符串a首尾的空格 replace(a,b,c) 将字符串a中出现的b字符串替换成c subString(str,index,len) 从第index个字符开始截取字符串str,最多取len个 reverse(a) 反转字符串a locate(a,b) 查询子字符串a在字符串b中出现的位置,从1开始 2.数学函数 abs(a) 取a的绝对值 sqrt(a) 取a的平方根 mod(a,b) 取a%b 计算a整除b之后的余数 ceiling(a); 向上取整,取得大于等于a的最小整数 floor(a); 向下取整,取得小于等于a的最大整数 round(a,b); 四舍五入对a保留b位小数 truncate(a,b); 对数值a保留b位小数,直接去掉多余的尾数 sign(a) 返回1 0 -1表示a是正数 0 或者负数 power(a,b) 返回a的b次方[次幂] rand() 返回0~1之间的一个随机数 floor(rand()*100) 获得0~100之间的随机数 3.日期时间函数 addDate(d,days) 在当前日期上加days天 addDate(d,interval num unit) 在当前日期上加days天 unit 可以是day month

plsql语句

試著忘記壹切 提交于 2020-01-17 06:09:21
基本语法 使用一个变量 declare –声明一个变量 v_name varchar2(25); begin –通过 select … into … 语句为变量赋值 select last_name into v_name from employees where employee_id = 186; – 打印变量的值 dbms_output.put_line(v_name); end; 使用多个变量 declare –声明变量 v_name varchar2(25); v_email varchar2(25); v_salary number(8, 2); v_job_id varchar2(10); begin –通过 select … into … 语句为变量赋值 –被赋值的变量与 SELECT 中的列名要一一对应 select last_name, email, salary, job_id into v_name, v_email, v_salary, v_job_id from employees where employee_id = 186; – 打印变量的值 dbms_output.put_line(v_name || ', ’ || v_email || ', ’ || v_salary || ', ’ || v_job_id); end; 记录类型 3.1

oracle练习-day04

心不动则不痛 提交于 2020-01-15 22:34:06
- - - - - - - - - - - - - - - - - - - - - - - - - - - Oracle day04 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 01 .什么是PL / SQL ? 通俗理解:plsql: Procedure language sql 过程化语言 plsql是一组 sql 语句集合,在这个plsql中集合语句中可以处理复杂业务逻辑 (申明变量、条件分支、循环语句、异常处理) 优点:如果使用plsql语言,编写存储过程 函数,提供java代码调用,减少访问数据频率 缺点:对程序员要求比较高(高级程序员 或 专业DBA),存储过程 函数 移植不方便 - - 02 .PL / SQL 基本语法 declare - - 声明变量 (普通变量、常量、引用型变量、记录型变量) begin - - DML语句(逻辑语句) end ; - - 03 .普通变量和常量使用 - - 类似于java中 private String myname = "老王" ; declare myname varchar2( 30 ) : = '老王' ; begin myname : = '隔壁老王' ; select e.ename into myname from

Oracle数据库自带了decode()函数

喜夏-厌秋 提交于 2020-01-15 21:59:52
Oracle数据库自带了decode()函数,函数的使用方法如下: SELECT emp.ename, emp.job, emp.sal, decode(job, 'manager', sal * 1.2, 'ANALYST', sal * 1.1, 'salesman', sal * 1.05, Sal) FROM emp; 类似于java中学过的case语句,根据不同的条件进行不同的操作,但是在Mysql中是不支持这个函数的想要实现上面的功能,Mysql中编写的代码如下: SELECT emp.ename, emp.job, emp.sal, (CASE WHEN emp.job = 'manager' THEN sal * 1.2 WHEN 'ANALYST' THEN sal * 1.1 WHEN 'salesman' THEN sal * 1.05 ELSE Sal END) as bonus FROM emp; 来源: https://www.cnblogs.com/coder-wf/p/12198864.html

saltstack自动化运维系列①之saltstack服务安装及简单使用

痞子三分冷 提交于 2020-01-15 09:57:19
Saltstack介绍 Salt三种运行方式 1.local本地运行 2.Master/Minion 3.Salt ssh Salt的三大功能 a.远程执行 b.配置管理(状态管理) c.云管理:阿里云,aws,openstack都提供了封装好的接口,可以使用salt-cloud进行云主机的管理 Saltstack环境准备 第一台:mini1,既作为salt-master,又作为salt-minion 第二台:node2.chinasoft.com,只作为salt-minion 1.安装salt客户端和服务端 环境: 主机master 192.168.3.12: yum install -y salt-master salt-minion 启动服务端 /etc/init.d/salt-master start 被控制端192.168.3.19: yum install -y salt-minion cat /etc/hosts 192.168.3.12 mini1 192.168.3.16 node2.chinasoft.com 2.修改客户端配置 vim /etc/salt/minion 将master改为master主机地址 master: 192.168.3.12 启动客户端 /etc/init.d/salt-minion start 3.Saltstack的认证

Configure Doxygen to ignore the Source-Code Annotation Language (SAL)

*爱你&永不变心* 提交于 2020-01-15 09:42:38
问题 I have some classes that are documented with Doxygen. Additionally, they are annotated with Microsoft's Source-Code Annotation Language (SAL) to support static code analysis. //! The majestic class. class Foo { //! \brief do something //! \param [out] pResult The result value is stored here. //! \returns The return value Succcess indicates success. _Success_(return == Success) virtual Result_t DoSomething(_Out_ uint32_t *pResult) = 0; }; In this case, Doxygen reports a warning: argument