网上流传众多列数据聚合方法,现将各方法整理汇总,以做备忘. wm_concat 该方法来自wmsys下的wm_concat函数,属于Oracle内部函数,返回值类型varchar2,最大字符数4000.随着版本的变更返回值类型可能会有改动,项目中使用时候最好在新的用户下创建一个函数. 使用方法: select deptno,wm_concat(ename) from emp group by deptno; 排序方法(未必仅此一种写法): select * from (select wm_con
insert all into T_TRAIN_MARSHALLING <trim prefix="(GKEY," suffix=")" suffixOverrides=","><if test="ID != null and ID != '' ">ID,</if><if test="1 == 1">TRAIN_NUM,</if><if te
最近做mybatis+oracle项目的时候解决添加一条数据并返回所添加数据的主键问题 controller层 @RequestMapping("/addplan") public @ResponseBody OnlineAddplanWithBLOBs insertOnlineAddplan(OnlineAddplanWithBLOBs plan) throws Exception{ //plan是添加的数据,planid为数据主键,此时对象中主键为null int n = serv
1.主键自增实现方法:http://www.cnblogs.com/Donnnnnn/p/5959871.html 2.for循环往Oracle中插入n条数据 BEGIN .. loop insert into S_Depart(departId,Departname,Departorder)values(S_S_Depart.Nextval,); end loop; end; 上面循环了50次 执行后,记得commit提交.....
今天在review项目代码的时候看到这样一个问题,有一张号码表,每次需要从这样表中随机取6个空闲的号码,也就是每次取出来的6个号码应该都会有所不同.然后我就看到了这样的SQL select t.* from tel_number_tbl t where t.status = '空闲' and t.area_code = '0571' and t.delete_flg = '未删除' and rownum <= 6order by
在Oracle中实现select top N:由于Oracle不支持select top 语句,所以在Oracle中经常是用order by 跟rownum的组合来实现select top n的查询.简单地说,实现方法如下所示:select 列名1 ...列名n from(select 列名1 ...列名n from 表名 order by 列名1)where rownum <=N(抽出记录数)order by rownum asc 如:select id,name from (selec
oracle中的insert 和 mysql添加多条数据的 方式不太一样 用到的语法: insert all into 表名(需要添加的表字段)values(添加的字段数据一定要对应字段顺序) into 表名(需要添加的表字段)values(添加的字段数据一定要对应字段顺序) select 1 from dual; dual是虚拟表 这句话的意思就是返回一个值,这里的值就是1
前言 由于项目需求,需要将Excel中的数据进过一定转换导入仅Oracle数据库中.考虑到当Excel数据量较大时,循环Insert语句效率太低,故采用批量插入的方法.在插入操作运行时,会造成系统短暂的"卡死"现象.为了让用户知道插入的状态,需要制作一个进度条来显示插入的进度. 批量插入 项目中运用的是System.Data.OracleClient.首先将Excel数据通过转换函数转换为DataTable,其中的字段和数据库中相应表格的字段完全对应. public int Impor
如何在Oracle数据库中实现获取前几条数据的方法呢?就是类似SQL语句中的SELECT TOP N的方法.本文将告诉您答案,举例说明了哟! 1.在Oracle中实现SELECT TOP N : 由于ORACLE不支持SELECT TOP语句,所以在ORACLE中经常是用ORDER BY跟ROWNUM的组合来实现SELECT TOP N的查询. 简单地说,实现方法如下所示: SELECT 列名1...列名n FROM (SELECT 列名1...列名n FROM 表名ORDER B
oracle 与 mysql 不同. mysql 可以直接插入多条数据的操作: 采用 INSERT INTO 某表 VALUES(各个值),VALUES(各个值),.....; 或者 INSERT INTO VALUEES(各个值),(各个值),(各个值) . oracle 不直接支持这种操作,但项目中有时需要一次插入多条数据,多次连接数据库会浪费不少的资源,所以需要变通. 以下是个人总结出两种可以同时插入多条数据到数据库中 insert into 某表(字段1,字段2,字段3...) ( s
Oracle一次插入多条数据. 表结构: create table aa ( ID NUMBER(11) PRIMARY KEY, NAME VARCHAR2(20) ) 第一种方式: insert into aa (ID,NAME) select 1,'1' from dual union allselect 2,'2' from dual 第二种方式: INSERT ALLINTO aa (ID,NAME ) VALUES (3,'3')INTO aa (ID,NAME ) VALUES
例如我有一个test表 create table (stuid int,name varchar(20); 插入多条数据,注意不能直接使用insert into test values(1,'a'),(2,'b')之类的语句,应该使用以下语句 insert all into test values(1,'a') into test values(2,'b') select 1 from dual; #这句不知道有什么用处,但是缺少也不行
原创:lixx ---从UNWIREDATA 表中查询数据,如果该表中地磁状态发生改变(CARDSTATE)执行插入到MAINTABLE 表中---根据唯一值ERID判断,如果ERID值存在,修改该条数据中的地磁状态属性(CARDSTATE)create or replace trigger tri_dici after update of CARDSTATE ON UNWIREDATA FOR EACH ROW declare V_NUM number;BEGIN ----多次查询时,每次都将