对不起,我没讲清楚 我的问题,就是,使用游标的时候怎么向游标里“添加”数值有无这种功能(有点类似网页中session变量的数值添加)
解决方案 »
- BETWEEN...AND 和>= AND <==的效率
- 表列的数量是否直接响查询速度
- 数据库突然全部断开,提示ORA-01041: 内部错误,hostdef 扩展名不存在
- 请教:安装了SQL Server2000的Windows Server 2003再安装Oracle9i2时出错。
- 和数据库间谍惊心动魄的对决!!高手给我参谋
- 如何判断在ORACLE中一字段是否是某表的主键
- Oracle10 中的“表数据编辑器”在那阿?
- 取任意十天内进行某操作三次以上SQL
- oracle sql语句 将某死为零的更新成另外一列的值,不为0的有值的不更新。
- oracle数据库远程连接失败
- 有没有人在AIX4.1.3下安装过ORACLE 8i
- 关于同时从两个表里SELECT的问题。
into Catalog of JReport because JReport can not create a report without a ResultSet.而我又要对多表(试图查询),举例我有个报表,但是each column的时间受到限制,0-30,31-60,61-90,91-120天,这里我其实仅仅对于一个表查询请问 不用storePrecedure,怎么实现,同时又要受到上述条件的限制。请高手赐教
首先,设想以下使用动态创建Table,然后记录创建的Table的名称即可,但这种方法好象行不通。
其次,考虑建一个大表或着说是公共表,例如结构及数据可以如下:
rows(行数或组数) colu(列名,或变量名) valu(值)
1 mc ...
1 liu ...
1 hh ...
2 mc ...
2 liu ...
... ... ... 如果返回结果集类型不一致,则必须要转换,可以使用:to_char,rowidtochar等转换函数实现,如果存在boolean型数据,则不能直接转换,用if判断以下就可以了。
另外,你所说的:“有个报表,但是each column的时间受到限制,0-30,31-60,61-90,91-120天,这里我其实仅仅对于一个表查询”到底是什么意思?
具我推断,可能有两种情况:(不知是否正确?)
一、条件组合,例如:
select ... from .. where (colu1 >= 1 and colu1 <= 30) and (colu2 >= 31 and colu2 <= 60) and ...
当然也可以使用Between来实现,当然需要计算天数了。
二、原表结构如下:
类别 天数 值
1 2 5
1 12 2
1 45 3
1 80 10
1 100 1
2 15 4
2 45 3
2 71 8
2 95 9
...
你希望的结果如下:
类别 0-30 31-60 61-90 91-120
1 7 3 10 1
2 4 3 8 9
...
这种情况可以用Decode()函数来实现,当然肯定不能写30个值了,你计算以下,用 SIGN(天数 - 30),SIGN(天数 - 60),...这样只需判断 -1就可以了,当然也可以用 TRUNC((天数 -1) / 30 , 0),这样结果为0,1,2,3 ...分别代表0-30,31-60,61-90,91-120 ... 最后说明,最好不要关联太多的表,这样绝对会降低工作效率的,如果真如你所说,需要太多的关联的话,你可以设法将其分成若干块,然后保存为临时表,再对临时表查询,这样也许会快些。我知道有一种语法:Create table ... Select...,但具体怎么用,记不太清了,另外可能不能写在Procedure中,你可以试试,但要记着,动态创建的表需要动态删除,否则你在管理上可能会出现混乱。
我要查询的显示,数据来自同一个表,但是列值要求表是不同的数值,他们仅存在时间要求的差异(0-30,31-60,……),开始我想通过存储过程(传递参数)返回多值的方法,这样就避免了建立临时表格,但是由于我使用的开发报表工具的限制,我必须按照你所说的建立临时表。谢谢你给我的提示,其实我是想找一个偷懒的方法,但是最好还要去做实际的行动,谢谢。还是那句话,怎么给你分呢?