易截截图软件、单文件、免安装、纯绿色、仅160KB

【转】oracle行转列通用过程

oracle行转列通用过程(转)
环境oracle 10g
工作关系,常做些行转列报表,报表通常不是在大数据集合上处理.
所以写了个过程.
本过程比较适合在于需要动态输出报表的地方,例如web中.
不是很完美,但已经可以解决绝大部分的问题.
create or replace function func_RowToCol(
viewName Varchar2,
grpCols Varchar2,
colCol Varchar2,
valueCol Varchar2,
fillEmptyWithZero Number:=1,
rowOrder Varchar2:='',
colOrder Varchar2:='',
rowOrderinGrp Integer:=1,
colOrderStyle Varchar2:=' asc ',
fillValue Varchar2:=''
) return varchar2
Is
/*****************************************************************************************************
名称:func_RowToCol
参数说明:
viewName 视图名称,实际上可以是数据库的表格名称,视图名称,也可以是SQL语句.
grpCols 需要分组的列,以格式 col1,col2..coln传入,其中n是大于0的整数
colCol 由行转为列的那个列
valueCol 行转列后,依然作为值填充的那个列,只能是一个列
--viewIsSql 视图是否是sql语句,如果是则传入1,反之传入2,默认是1(是sql)
fillEmptyWithZero 用0来填充空值,默认空值依然保留空值.如果是1,则只对valueCol为数值类型的有效.
rowOrder 结果默认的排序语句,如果有,则使用这个,这个是对结果的行排序
colOrder 对转成的列进行排序的依据.
rowOrderinGrp 行的排序列是否在分组列(grpcols)中,0 表示不是,1表示是,默认是在分组列中。
colOrderStyle 这个参数说明了列的排序方式
fillValue 填充值,如果非空,且fillEmptyWithZero=1,则用.
举例:有一个表格EmpSalary(SalMonth number,EmpName varchar2(20),salary number) 其中
salMonth,EmpName组成唯一约束
假设有以下数据:
SALMONTH EMPNAME SALARY
---------- -------------------- ----------
200801 lzf 8000
200801 wth 8000
200801 lxl 7000
200801 fjl 8000
200801 wcl 40000
200802 lzf 9000
200802 wth 8000
....
现在需要按照这样的格式输出
salaryMonth lzf wth lxl fjl wcl
200801 8000 8000 7000 8000 40000
200801 9000 8000
那么参数应该这样传递func_RowToCol('empsalary','','salarymonth','empname','salary',0,1);
输出:
如果成功,则返回一个基于tempdata_manycols的查询sql字符串
如果失败,则返回空值.
注意事项:
本函数是基于一个叫tempdata_manyCols


相关文档:

Oracle创建表空间、创建用户以及授权、查看权限

创建临时表空间
创建临时表空间
CREATE TEMPORARY TABLESPACE test_temp
TEMPFILE 'C:\oracle\product\10.1.0\oradata\orcl\test_temp01.dbf'
SIZE 32M
AUTOEXTEND ON
NEXT 32M MAXSIZE 2048M
EXTENT MANAGEMENT LOCAL;
创建用户表空间
创建用户表空间
C ......

28.5 Oracle图形化管理工具——OEM

28.5  Oracle图形化管理工具——OEM
Oracle企业管理器(Oracle Enterprise Manager,OEM)是Oracle提供的一个基于Web的图形化数据库管理工具。通过OEM,用户可以完成几乎所有的原来只能通过命令行方式完成的工作,包括数据库对象、用户权限、数据文件、定时任务的管理,数据库参数的配置,备份与恢复,性能 ......

28.6 Oracle常见问题处理

28.6  Oracle常见问题处理
本节介绍在Red Hat Enterprise Linux 5.2上安装及配置Oracle数据库服务器中,常见的问题及解决方法,包括如何获得数据库创建过程中的详细信息,访问OEM出现“安全连接失败,使用了无效的安全证书”错误以及忘记sys用户口令后的处理方法等。 ......

查看oracle的系统文件内容

在命令格式下,进入sqlplus的编辑状态中
 
(1)查看控制文件的内容:
SQL> DESC v$controlfile
 名称                               &n ......

Oracle 9i/10g 默认的用户和密码

sys/change_on_install
system/manager
sysman/oem_temp
scott/tiger
aqadm /aqadm
Dbsnmp/dbsnmp
用户名 口令 登录身份及说明
sys/change_on_install SYSDBA或SYSOPER,但不能以NORMAL登录,可作为默认的系统管理员。
system/Manager SYSDBA或NORMAL,但不能以SYSOPER登录,可作为默认的系统管理员。
scott/Tig ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号