oracle 存储过程+临时表 返回如下格式数据。 跪求例子。。。急用

如题所述

使用分析函数,可以实现楼主想要的结果:
select
naireid,questionid,optionid,opioname,
count(1),
sum(1) over (PARTITION by questionid order by naireid,questionid,optionid,opioname)
--使用分析函数,对questionid字段进行分区,然后加和。

from table
group by naireid,questionid,optionid,opioname
如果有不合适的地方,楼主稍作调整即可,有问题追问吧。追问

我主要是不会 从临时表里 查询出结果,,。oracle 是不是必须用游标啊。。。dbms_output.put_line 跟sql server 中的print 一样吧。。。
我想要一个 从临时表中查询的数据结构跟那个图片一样,asp.net后台转成datatable,dbms_output.put_line 输出的是类似文本的形式。。。后台接收不到。

追答

只是数据查询的话,没有必要用游标。
如果是asp.net数据参数传递的问题,把提问转到.net模块问问,看看有没有大神回答。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-12-09
只要用过T-SQL的,如sybase、mysql都会感到oracle非常万恶。

ORACLE 存储过程怎么返回临时表结果集
SQL> CREATE GLOBAL TEMPORARY TABLE REPROTTEST(2 ID NUMBER,3 ANAME VARCHAR2(20)4 ) ON COMMIT DELETE ROWS;(也可以用PRESERVER ROWS,看实际需求)Table created SQL> create or replace procedure report_month_responsibility(2 o_cur out sys_refcursor)3 as 4 begin 5 insert in...

oracle存储过程 游标 比对临时表和业务表 相同数据找出来 做标记 在插 ...
游标效率比临时表效率高 临时表如下:SELECT EmpCo FROM Employees select identity(int,1,1) as id,* into #T from Employees --第一条搜索语句 declare @i int declare @total int declare @EmpCo varchar(10)select @total = count(*) from #T set @i = 1 while @i <= @total beg...

oracle使用存储过程创建临时表提示ORA-24344: success with compil...
str:='INSERT INTO TEMP_ACTIVITY(SELECT TO_CHAR(A1."FEndTime",'YYYY')||'年'||TO_CHAR(A1."FEndTime",'MM')||'月'||TO_CHAR(A1."FEndTime",'DD')||'日' AS "ActivityDate",A2."FName" AS "ActivityUser",A1."FSFPlan" AS "ActivityPLan",A3."FName" AS "Activity...

oracle 怎么在存储过程中创建一个临时表,在里面插入数据,再查找这个临 ...
一般没必要创建临时表,处理数据后又它drop。存储过程中要用到的表应该会经常用到。就让它存在吧,用完用 truncate table 清理数据就可以了。空表不会占很多资源。 我们就是这样做的。

select保存到存储过程建临时表
insert #临时表名(列1, 列2, 列3, ...)select (列1, 列2, 列3)from 表名 [where 查询条件][group by ...][order by...]临时表的列1,列2,列3和表的列1,列2,列3可以不同,但必须要匹配。

存储过程中创建临时表显示查询结果,提示对象名无效
@sql;--将表内查询出的结果装入表 FETCH NEXT FROM colCursor INTO @col_name END close colCursor deallocate colCursor set @sql='select distinct * from ##t'exec sp_executesql @sql;--去除表内的重复数据 set @sql='drop table ##t'exec sp_executesql @sql;--删除表 end end ...

oracle存储过程 使用游标 比对临时表和业务表两张表 相同数据找出来 做...
示例 MERGE INTO bonuses D USING (SELECT employee_id, salary, department_id FROM employees WHERE department_id = 80) S ON (D.employee_id = S.employee_id)WHEN MATCHED THEN UPDATE SET D.bonus = D.bonus + S.salary*.01 DELETE WHERE (S.salary > 8000)WHEN NOT MATCHED THEN ...

sql server如何用存储过程把多个表的数据添加到一张表中,表字段都很...
然后字段是哪些 如果表名不变 字段类似的话 我帮你写个模型 create proc usp_tableall as insert into 表名 --这里表要存在 存储你处理的数据 否则就用select * into from tb 的格式 select col1,col2 from a union all select col1,col2 from b ……go exec usp_tableall ...

ORACLE存储过程中游标作为输出参数调用时怎么报错
1.通过存储过程的出参,将“当前用户:user_id”连接串返回;比如:假设你的过程叫,prc_test,在参数列表中增加出参。create or replace procedure prc_test(入参 in 类型, 出参 out 类型) is begin -- 逻辑实现 end;出参就是你要把内容放进去,用来传值的变量。2.在过程中保存一张临时表,...

oracle 在存储过程中动态的建一个临时表使用和在数据库里写死一个临时...
1. MySQL 会基本遵守 max_heap_table_size 的设定,在内存不够用时,直接将表转到磁盘上存储。2. 由于引擎不同(内存中表引擎为 heap,磁盘中表引擎则跟随 internal_tmp_disk_storage_engine 的配置),本次实验写磁盘的数据量和 实验 05 中使用内存的数据量不同。3. 如果临时表要使用磁盘,表...

相似回答