- 浏览: 315048 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
zhangliguoaccp:
对于女人不要太看重吧,喜欢你的自然留下,你若盛开,蝴蝶自来!
遇见她 -
yiqi1943:
springtest支持的spring版本最低是多少啊
Spring Test -
WITLP:
爱,我只知道你一部分的事情,没想到你从华智出来这么坎坷
2009 为什么待到毕业时? -
WITLP:
哈哈,原来你就是传说中的欧阳平?
ANT 简单使用 -
bo_hai:
谢谢。总结的很好。
工具 PL/SQL 快捷键
1 sql函数语法
1.1 条件语句 if else
--if-then if condition then sequece_of statements end if; --if-then-else if condition then sequece_of statements1 else sequece_of statements1 end if; --if-then-elseif-else if condition1 then sequece_of statements1 elseif condition1 then sequece_of statements2 else sequece_of statements3 end if; --例子存储函数 create or replace function testifelse(idd in varchar) return number is Result number; v_para1 number; v_para2 number; message varchar2(200); begin select count(1) into v_para1 from dual; if v_para1 <> 0 then v_para1 := '111'; end if; if v_para2 is null then message := 'number类型的默认是null,不是0'; end if; dbms_output.put_line('v_para1='||v_para1||'---'||'v_para2='||message); return(Result); end testifelse;
1.2 case 语句
case selector when expression1 then sequence_of_statemts1; end case; --例子1: select case when 1 = 1 and 2 = 2 then '正确' end case from dual --例子2 函数 create or replace function testCase(condition in varchar2) return varchar2 is Result varchar2(20); v_param dual.dummy%type; begin case condition when '' then Result:='参数是空'; when '1' then Result:='参数是1'; when '2' then Result:='参数是2'; dbms_output.put_line(v_param); end case; return(Result); end testCase; --例子2 存储过程 create or replace procedure testcase(para_in in varchar2, para_out out varchar2) is v_param varchar2(20); begin dbms_output.put_line('存储过程'); case para_in when '1' then para_out := para_in || 'out参数'; when '2' then para_out := para_in || 'out参数2'; end case; end testcase;
1.3 for loop 数组以及数组类型
declare i number; type list_type is table of binary_integer index by binary_integer; -- 类型定义 list list_type; begin for i in reverse 1 .. 5 loop list(i) := i * 1; dbms_output.put_line(list(i)); end loop; dbms_output.put_line(list.first()); end;
Declare type my_text_table_type is table of varchar2(200) index by binary_integer; l_text_table my_text_table_type; l_index number; begin for l_index in 1 .. 5 loop l_text_table(l_index) := l_index * l_index; end loop; l_index := l_text_table.first; --使用first方法 dbms_output.put_line('000'||l_text_table.first); loop exit when l_index is null; dbms_output.put_line(l_index || ':' || l_text_table(l_index)); l_index := l_text_table.next(l_index); end loop; end;
下表中列出oracle中集合的方法
方法 描述 使用限制
COUNT 返回集合中元素的个数
DELETE 删除集合中所有元素
DELETE() 删除元素下标为x的元素,如果x为null,则集合保持不变 对VARRAY非法
DELETE(,) 删除元素下标从X到Y的元素,如果X>Y集合保持不变 对VARRAY非法
EXIST() 如果集合元素x已经初始化,则返回TRUE, 否则返回FALSE
EXTEND 在集合末尾添加一个元素 对Index_by非法
EXTEND() 在集合末尾添加x个元素 对Index_by非法
EXTEND(,) 在集合末尾添加元素n的x个副本 对Index_by非法
FIRST 返回集合中的第一个元素的下标号,对于VARRAY集合始终返回1。
LAST 返回集合中最后一个元素的下标号, 对于VARRAY返回值始终等于COUNT.
LIMIT 返回VARRY集合的最大的元素个数,对于嵌套表和对于嵌套表和Index_by为null Index_by集合无用
NEXT() 返回在元素x之后及紧挨着它的元素的值,如果该元素是最后一个元素,则返回null.
PRIOR() 返回集合中在元素x之前紧挨着它的元素的值,如果该元素是第一个元素,则返回null。
TRI M 从集合末端开始删除一个元素 对于index_by不合法
TRIM() 从集合末端开始删除x个元素 对index_by不合法
1.4 实战例子
create or replace function getArrearage2(yuangongID in varchar2) return number is Result number; money1 number; money2 number; money3 number; begin select count(1) into money1 from (SELECT b.id_worker, SUM(B.ALLOW_MONEY) as totalMoney FROM T_MONEY1 B WHERE B.STATUS = '1' AND B.FLAG = '1' AND B.BILL_STAUTUS = '4' AND B.ID_WORKER = yuangongID group by b.id_worker); if (money1 0) then select totalMoney into money1 from (SELECT b.id_worker, SUM(B.ALLOW_MONEY) as totalMoney FROM T_MONEY1 B WHERE B.STATUS = '1' AND B.FLAG = '1' AND B.BILL_STAUTUS = '4' AND B.ID_WORKER = yuangongID group by b.id_worker); end if; select count(1) into money2 from (SELECT b.id_worker, sum(b.back_money) as back_money FROM T_MONEY2 B WHERE B.STATUS = '1' AND B.FLAG = '1' AND B.ID_WORKER = yuangongID group by b.id_worker) tt; if (money2 0) then select tt.back_money into money2 from (SELECT b.id_worker, sum(b.back_money) as back_money FROM T_MONEY2 B WHERE B.STATUS = '1' AND B.FLAG = '1' AND B.ID_WORKER = yuangongID group by b.id_worker) tt; end if; select count(1) into money3 from (SELECT p.id_worker, sum(c.money) as money FROM T_MONEY3 C LEFT JOIN MB_PAY_ASK P ON P.ID = C.ID_PAYBILL WHERE C.MONEY IS NOT NULL AND C.MONEY '0' AND C.STATUS = '1' AND C.FLAG = '1' AND P.STATUS = '1' AND P.FLAG = '1' AND P.ID_WORKER = yuangongID AND P.PROPOSAL_STATUS = '4' group by p.id_worker) xx; if (money3 0) then select xx.money into money3 from (SELECT p.id_worker, sum(c.money) as money FROM T_MONEY3 P WHERE C.MONEY IS NOT NULL AND C.MONEY '0' AND C.STATUS = '1' AND C.FLAG = '1' group by p.id_worker) xx; end if; Result := money1 - money2 - money3; return(Result); end getArrearage2;
发表评论
-
mysql 事务机制
2011-04-01 13:52 1617mysql事物机制 一、启动方式 1、使用 serv ... -
ibatis 简单修改ibatis框架
2011-03-31 15:45 921简单修改ibatis框架 使用ibatis框架生成 ... -
mysql 导入导出数据
2011-03-22 15:05 810mysql导入导出数据 1、导入数据 ... -
mysql 修改表结构
2011-03-18 11:50 3858mysql 修改表结构 1.增加一个字段(一列) ... -
mysql 乱码问题
2011-03-16 17:43 857mysql乱码问题。 统一编码,以gbk为例。 ... -
mysql 中文文档
2011-01-27 16:27 1641mysql的中文文档地址: http:/ ... -
mysql 常用指令
2011-01-19 15:21 1157windows 环境变量配置: pah ... -
oracle 卸载与安装三
2010-09-04 17:24 9633 配置(PL/SQL) 3.1 链接本地服务器 ... -
oracle 卸载与安装二
2010-09-04 17:00 11942 Oracle 安装 2.1 Oracle主目录路 ... -
oracle 卸载与安装一
2010-09-04 16:51 1060Oracle 卸载 1 彻底卸载Or ... -
数据库 sql for loop 常用脚本更新数据
2010-08-27 08:49 1438declare i number := 1; ... -
数据库 sql存储过程
2010-08-21 19:04 906create or replace procedure te ... -
数据库 sql游标
2010-08-14 17:57 10151 基本知识 declare 定义游标open 打开游标f ... -
数据库 sql基本语法
2010-08-14 15:04 6641 集合运算符 union all 结合两个select语句结 ... -
数据库 sql需求
2010-08-11 12:55 8081 需求:某人借钱(A表),还钱(B表) 要查询这个人还欠多少 ... -
Oracle 存储过程
2010-06-22 09:25 992--1 存储过程迁移数据 CREATE OR RE ... -
数据库 MySql2
2010-05-04 21:10 912数据库 MySql2 -
数据库 MySql1
2010-05-04 21:10 743数据库 MySql1 指令 1 mysql; 2 use ... -
Oracle 注意事项‘’null 空格
2010-04-10 19:59 902sql 空字符串与空格不一样 select ' ' fr ... -
Oracle 数据库名 数据库实例名 数据库域名 数据库服务名
2010-04-10 14:03 1388user1 password1 --> datab ...
相关推荐
datalength(Char_expr) 返回字符串包含字符数,但不包含后面的空格 length(expression,variable)指定字符串或变量名称的长度。 substring(expression,start,length) 不多说了,取子串 right(char_expr,int_expr) ...
数据库SQL函数大全,希望对大家有所帮助。可以参考学习。
详细整合了Oracle数据库的SQL函数及语法,供大家参考参考
SQL常用函数 SQL常用函数SQL常用函数 SQL常用函数 SQL常用函数
数据库开发 Oracle数据库 SQL开发教程 第04章 单行函数(共61页).pdf 数据库开发 Oracle数据库 SQL开发教程 第05章 多表连接(共48页).pdf 数据库开发 Oracle数据库 SQL开发教程 第06章 分组函数(共41页).pdf ...
数据库开发 Oracle数据库 SQL开发教程 第04章 单行函数(共61页).pdf 数据库开发 Oracle数据库 SQL开发教程 第05章 多表连接(共48页).pdf 数据库开发 Oracle数据库 SQL开发教程 第06章 分组函数(共41页).pdf ...
gp常用的建表语句,修改新增字段等常见操作,以及时间函数转换和case,基本函数使用,和具体表中遇到的问题。 ps:借用了其他同学的部分总结
数据库开发 Oracle数据库 SQL开发教程 第04章 单行函数(共61页).pdf 数据库开发 Oracle数据库 SQL开发教程 第05章 多表连接(共48页).pdf 数据库开发 Oracle数据库 SQL开发教程 第06章 分组函数(共41页).pdf ...
1、mysql数据库转国产化瀚高数据库; 2、有些函数在瀚高数据库中不存在,需要添加自定义函数。
数学运算函数 13 1.ABS 13 2.ACOS 14 3.ASIN 15 4.ATAN 16 6.CEILING 18 8.COT 19 9.DEGREES 20 10.EXP 21 11.FLOOR 21 12.LOG 22 13.LOG10 23 14.PI 23 15.POWER 24 16.RADIANS 25 17.RAND 27 18.ROUND 28 20.SIN ...
SAP-HANA数据库SQL中文完全参考手册,本文档完全翻译为中文,适合看不懂原版官方英文文档的人,内容做了精美的排版,里面包括各种函数,语法,限制信息等。内容非常完备,掌握这本手册,相信一定能掌握HANA
数据库开发 Oracle数据库 SQL开发教程 第04章 单行函数(共61页).pdf 数据库开发 Oracle数据库 SQL开发教程 第05章 多表连接(共48页).pdf 数据库开发 Oracle数据库 SQL开发教程 第06章 分组函数(共41页).pdf ...
数据库开发 Oracle数据库 SQL开发教程 第04章 单行函数(共61页).pdf 数据库开发 Oracle数据库 SQL开发教程 第05章 多表连接(共48页).pdf 数据库开发 Oracle数据库 SQL开发教程 第06章 分组函数(共41页).pdf ...
SQL Server 创建数据库 SQL Server 创建数据库是指在 SQL Server 中创建一个新的数据库,以便存储和管理数据。以下是创建数据库的知识点: 1. 创建数据库的步骤: - 定义数据库:定义数据库的名字、大小、文件...
数据库开发 Oracle数据库 SQL开发教程 第04章 单行函数(共61页).pdf 数据库开发 Oracle数据库 SQL开发教程 第05章 多表连接(共48页).pdf 数据库开发 Oracle数据库 SQL开发教程 第06章 分组函数(共41页).pdf ...
数据库开发 Oracle数据库 SQL开发教程 第04章 单行函数(共61页).pdf 数据库开发 Oracle数据库 SQL开发教程 第05章 多表连接(共48页).pdf 数据库开发 Oracle数据库 SQL开发教程 第06章 分组函数(共41页).pdf ...
数据库开发 Oracle数据库 SQL开发教程 第04章 单行函数(共61页).pdf 数据库开发 Oracle数据库 SQL开发教程 第05章 多表连接(共48页).pdf 数据库开发 Oracle数据库 SQL开发教程 第06章 分组函数(共41页).pdf ...
数据库开发 Oracle数据库 SQL开发教程 第04章 单行函数(共61页).pdf 数据库开发 Oracle数据库 SQL开发教程 第05章 多表连接(共48页).pdf 数据库开发 Oracle数据库 SQL开发教程 第06章 分组函数(共41页).pdf ...
数据库开发 Oracle数据库 SQL开发教程 第04章 单行函数(共61页).pdf 数据库开发 Oracle数据库 SQL开发教程 第05章 多表连接(共48页).pdf 数据库开发 Oracle数据库 SQL开发教程 第06章 分组函数(共41页).pdf ...
数据库开发 Oracle数据库 SQL开发教程 第04章 单行函数(共61页).pdf 数据库开发 Oracle数据库 SQL开发教程 第05章 多表连接(共48页).pdf 数据库开发 Oracle数据库 SQL开发教程 第06章 分组函数(共41页).pdf ...