易截截图软件、单文件、免安装、纯绿色、仅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 exp imp 初探

数据导出:
 1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中
   exp system/manager@TEST file=d:\daochu.dmp full=y
 2 将数据库中system用户与sys用户的表导出
   exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
 3 将数据库中的表in ......

Oracle 学习笔记: SYSDBA登陆权限问题

本文环境配置:Oracle10gR2,Windows XP
Oracle的用户信息一般来说是保存在数据字典里的,所以常规用户在Oracle数据库没有启动的时候是无法登陆的。但有两类用户例外,这就是具有sysdba或者sysoper权限的用户。Oracle sysdba或者sysoper用户的登陆有两种方式:一是通过OS认证,二是通过密码文件验证。
究竟使用哪一种验证 ......

Oracle自增ID实现

首先,你要有一张表!
       CREATE TABLE example(
             ID Number(4) NOT NULL PRIMARY KEY,
             NAME VARCHAR(25),
    ......

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 ......

QTP连接oracle并操作数据库的方法

QTP连接oracle并操作数据库的方法这里以oracle  9i为例子,其他的数据库连接方法是相通的。
a.首先要在本机建议ODBC数据源,这个属于基本操作,这里不讲,跳过;
b.获取oracle的连接串的方法,在本地新建一个.txt文件,修改扩展名名*.udl,双击*.udl文件,打开数据库链接属性,定位到“提供程序”选显卡, ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号