- 浏览: 151904 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (130)
- PL/SQL (18)
- JSTL (2)
- Linux (5)
- 反射 (1)
- 路径 (6)
- za (5)
- 数组 (1)
- 无聊代码 (2)
- GC (1)
- 源代码学习 (1)
- ThreadLocal (3)
- 多线程 (5)
- 锁 (2)
- 服务器 (2)
- exception (3)
- struts (2)
- spring (7)
- hibernate (3)
- oracle (8)
- JS (4)
- jsp/servlet基础 (1)
- 菜 (1)
- JVM (2)
- PC (1)
- 设计模式 (2)
- uml (1)
- Bean (2)
- IO (3)
- eclipse (0)
- Collection (14)
- 内部类 (1)
- 正则 (4)
- 编码?? (1)
- 加密 (2)
- Date (3)
- 佛 (3)
- XML (1)
- JFreeChart (1)
- itext (0)
- JDBC (1)
- word (1)
最新评论
-
qq_27688163:
public static void printIsta ...
基础多态 -
qq_27688163:
最后运行的结果应该是:i=3lalai=3lalaBB13
基础多态 -
mercyblitz:
Thread 没有生命周期时间,对于这种资源(需要关闭的),T ...
ThreadLocal3
PROCEDURE cross_table_test(DATACUR OUT SYS_REFCURSOR,L_QUERY_OUT OUT LONG) IS L_QUERY LONG; L_DYNAMIC_COLUMN LONG; NUM_MAX_YEAR NUMBER; NUM_MIN_YEAR NUMBER; BEGIN SELECT MAX(NUM_YEAR) INTO NUM_MAX_YEAR FROM CROSS_TABLE_TEST; SELECT MIN(NUM_YEAR) INTO NUM_MIN_YEAR FROM CROSS_TABLE_TEST; --DBMS_OUTPUT.put_line(NUM_MAX_YEAR); --DBMS_OUTPUT.put_line(NUM_MIN_YEAR); /* 动态构造交叉表 */ FOR i in NUM_MIN_YEAR..NUM_MAX_YEAR LOOP --DBMS_OUTPUT.put_line(i); L_DYNAMIC_COLUMN := L_DYNAMIC_COLUMN || ' SUM(DECODE(NUM_YEAR, ' || i || ' , NUM_COST, 0)) ' || 'AS cost_'|| i || ',' ; IF i = NUM_MAX_YEAR THEN L_DYNAMIC_COLUMN := L_DYNAMIC_COLUMN || ' SUM(DECODE(NUM_YEAR, ' || i || ' , NUM_SALES, 0)) ' || 'AS sales_'|| i /*|| ','*/; ELSE L_DYNAMIC_COLUMN := L_DYNAMIC_COLUMN || ' SUM(DECODE(NUM_YEAR, ' || i || ' , NUM_SALES, 0)) ' || 'AS sales_'|| i || ','; END IF; END LOOP; L_QUERY := ' SELECT ID_PART, TXT_PART, '; L_QUERY := L_QUERY || ' SUM(NUM_COST) AS TOT_COST , SUM(NUM_SALES) AS TOT_SALES ,'; L_QUERY := L_QUERY || L_DYNAMIC_COLUMN ; L_QUERY := L_QUERY || ' FROM CROSS_TABLE_TEST GROUP BY ID_PART, TXT_PART' ; /* 输出动态SQL ,调试用 */ L_QUERY_OUT := L_QUERY; /* 非动态的交叉表 OPEN DATACUR FOR SELECT ID_PART, TXT_PART, SUM(DECODE(NUM_YEAR, 2004, NUM_COST, 0)) AS cost_2004, SUM(DECODE(NUM_YEAR, 2004, NUM_SALES, 0)) AS sales_2004 FROM CROSS_TABLE_TEST GROUP BY ID_PART, TXT_PART; */ OPEN DATACUR FOR L_QUERY; END cross_table_test;
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import oracle.jdbc.OracleCallableStatement; import oracle.jdbc.OracleTypes; public class Test { /** * @param args * @throws ClassNotFoundException * @throws IllegalAccessException * @throws InstantiationException * @throws SQLException */ public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException { Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url="jdbc:oracle:thin:@3.242.164.94:1521:xxxx"; //xxxx为数据库的SID String user="xxxx"; String password="xxxx"; Connection conn= DriverManager.getConnection(url,user,password); OracleCallableStatement proc = (OracleCallableStatement)conn.prepareCall("{call cross_table_test(?,?)}"); proc.registerOutParameter(1, OracleTypes.CURSOR); proc.registerOutParameter(2, OracleTypes.LONGVARCHAR); proc.execute(); ResultSet rs = (ResultSet)proc.getObject(1); String str = proc.getObject(2).toString(); //System.out.println(str); ResultSetMetaData rsMetaData = rs.getMetaData(); int intColumn = rsMetaData.getColumnCount(); for (int i =1;i<=intColumn;i++){ String strColumn =rsMetaData.getColumnName(i); System.out.print( (strColumn.length()>7?strColumn.substring(0,7):strColumn) +"\t\t"); } System.out.println(); while(rs.next()) { for (int i =1;i<=intColumn;i++){ System.out.print(rs.getString(i)+"\t\t"); } System.out.println(); } } }
发表评论
-
update1
2010-08-19 09:41 845UPDATE COST_EVENT CE SET (C ... -
增加不存在的数据
2010-08-18 00:21 815select siteID, siteN ... -
无聊的经典SQL
2010-07-28 15:27 8852007年07月27日 星期五 上 ... -
DB2用一张表更新其他表的数据
2010-07-28 15:12 4248表结构: CREATE TABLE ATEST (ID ... -
oracle merge
2010-07-19 22:37 777create table PRODUCTS ( ... -
put_line_unlimit mail.pkg --attachment
2010-07-18 15:08 789create or replace procedure put ... -
SQL1
2010-06-23 16:22 691select * from (select e.id, ... -
oracle临时表
2010-06-23 16:10 675drop table Student create gl ... -
data in DB
2010-06-22 12:47 675create or replace procedure EIS ... -
at 测试使用attachment
2010-06-19 11:06 772测试使用 attachment -
oracle 连接 join at
2010-06-16 21:24 1405--1 等值连接 SELECT * FROM EMP e, ... -
level 100?
2010-02-26 18:49 855SELECT MQ.DT_COL, SUM ... -
消失的日期
2010-02-26 16:06 8911582年前使用的是凯撒时期制定的儒略历,4年一闰。1582年 ... -
date function
2010-02-26 14:48 683--Trunc ,Round return date - ... -
不存在的数据
2010-02-25 17:28 709表A id name time 1 aa 2 ... -
无聊SQL1
2010-01-12 13:09 715select (select min(event.event_ ... -
分割字符
2009-12-29 17:04 749CREATE OR REPLACE TYPE mytable ...
相关推荐
在编程领域,尤其是在使用C#进行数据处理时,动态交叉表查询是一种常用的技术,它能够帮助我们以矩阵或网格的形式展示数据,使我们能够轻松地分析多维数据集。动态交叉表查询允许开发者根据需求自定义列和行,提供...
### 基于动态交叉表的Web多维分析系统设计与实现 #### 一、引言 在现代商业环境中,企业越来越依赖于大数据分析来驱动决策制定。在这些场景下,传统的在线分析处理(OLAP)工具虽然强大,但在基于Web的应用程序中...
在SQL编程中,动态交叉表查询是一种非常实用的技术,它能够帮助我们以表格形式展示多维度数据,使得数据更易理解和分析。交叉表,又称作透视表或转置表,通常用于将行与列的数据位置互换,或者将某一列的数据作为新...
动态交叉表则是指在数据库查询过程中,根据实际运行时的动态条件,生成交叉表查询结果的技术。本文将探讨如何在SQL Server数据库中利用存储过程实现动态交叉表。 首先,我们需要理解交叉表的基本概念。在数据分析和...
"在Sql Server数据库中利用存储过程实现动态交叉表.pdf" 本文主要讲述了在Sql Server数据库中利用存储过程实现动态交叉表的技术。交叉表是一种特殊的表格形式,它可以将数据按照某种规则进行转换和重新组织,以便更...
### Jfreechart动态交叉表的生成与应用 #### 摘要 本文主要探讨了如何在Java与Oracle环境下生成动态交叉表(Crosstab),并分析了其在实际应用中的重要性和具体实施方法。数据库设计时需遵循数据范式的要求以确保...
例如,将学生表、科目表、成绩表等通过JOIN操作连接,可以生成类似于表1的动态交叉表,显示每个学生在各个科目的成绩。 关键词中的“多表联合”即指此类操作,通过INNER JOIN、LEFT JOIN、RIGHT JOIN或FULL OUTER ...
《范式下的Oracle数据库设计及其动态交叉表的生成》这篇文献主要探讨了在数据库设计中遵循范式的重要性,以及如何在Oracle数据库中实现动态交叉表的生成。文章以提高数据库性能和数据完整性为目标,深入剖析了数据库...
Oracle动态交叉表生成是数据库管理中的一个重要概念,尤其在处理范式化数据时。范式化设计是数据库设计的基础,它旨在减少数据冗余、提高数据一致性并降低维护成本。Oracle数据库作为广泛应用的大型关系数据库管理...
【水晶报表动态绑定数据源实现动态交叉表】是一种在.NET和SQL Server环境下处理报表生成的技术。动态交叉表是根据用户需求灵活展示数据的一种方式,它能够根据数据的分类和汇总实时调整列的数量和名称。在规范化...
给定的部分内容展示了如何通过SQL Server的存储过程实现动态交叉表的功能。下面将对这段代码进行逐行分析: ```sql CREATE PROC p_qry @TableNames sysname,-- @sysname,-- @sysname,-- @sysname,--ֶ @ǷӺϼ...
BIRT(Business Intelligence and Reporting Tools)是Eclipse基金会下的一个开源报表系统,它提供了一整套工具,使得开发者能够利用API动态地创建和定制复杂的报表,包括交叉表(Cross Tab)。交叉表是一种数据汇总...
交叉表的语法,动态交叉的sql语句交叉表的语法,动态交叉的sql语句 交叉表的语法,动态交叉的sql语句交叉表的语法,动态交叉的sql语句
动态交叉表,也被称为Pivot Table,在数据分析领域中是一种强大的工具,用于整理和汇总大量数据。它是Excel、SQL、Python的pandas库等数据分析软件中的一个重要功能,可以帮助用户快速理解和总结复杂的数据集。 1. ...
总结来说,"abc.rar"可能是一个具有动态交叉表功能的程序,它允许用户灵活地分析和探索数据,以适应不同的业务需求。要充分利用这个工具,需要了解其内部结构,学习如何配置和操作,以及如何结合具体的数据集进行...
摘要:VB源码,数据库应用,交叉表查询 VB6.0与SQL2000结合演示的动态交叉表查询方法,测试前请首先附加Database文件中的数据库,然后再运行可执行文件。 数据库的附加方法如下: 1.将目录database下的xs_Data.MDF...
通过以上步骤,我们可以看到,在SQL Server中生成交叉表不仅可以利用动态SQL来实现,而且这种方式非常灵活,可以根据不同的需求动态调整查询逻辑。这种方法适用于需要快速响应不同数据透视需求的场景,尤其对于报表...