如题,我在ORACLE怎么返回一个临时表里的数据
MD,真TM麻烦,比SQLSERVER二多了。。。。
CREATE OR REPLACE PROCEDURE Report_Month_Responsibility(
o_cur OUT SYS_REFCURSOR
)
IS
STR VARCHAR2(200);
BEGIN
STR:=' CREATE GLOBAL TEMPORARY TABLE REPROTTEST(
ID INT,
ANAME VARCHAR2(20)
) ON COMMIT PRESERVE ROWS';
execute immediate STR;
STR:='INSERT INTO REPROTTEST(ID,ANAME) VALUES(1,''1'')';
execute immediate STR;
STR:='SELECT * FROM REPROTTEST';
OPEN o_cur FOR STR; -- 给游标变量赋值
END Report_Month_Responsibility;
上面是写的一个测试的,麻烦高手帮俺瞅瞅,看有没要改的地方,或者是测试会有什么问题,我测试好像报错了。。不知道怎么出来一个结果集。。。。。
SHEN的答案试过了,首先建的时候就过不去
select count(*) into tb_count from dba_tables where table_name='REPROTTEST';
这里会报错。。。。。
我把你的IF那段注释了,直接
STR:=' CREATE GLOBAL TEMPORARY TABLE REPROTTEST(
ID INT,
ANAME VARCHAR2(20)
) ON COMMIT PRESERVE ROWS';
execute immediate STR;
然后出去测试也会报错,ORA-01031: insufficient privileges
ORACLE 存储过程怎么返回临时表结果集
while o_cur%found loop dbms_output.put_line('输出结果:'||v_id||','||v_aname);fetch o_cur into v_id,v_aname;end loop;commit;end;\/
ORACLE存储过程中游标作为输出参数调用时怎么报错
1.通过存储过程的出参,将“当前用户:user_id”连接串返回;比如:假设你的过程叫,prc_test,在参数列表中增加出参。create or replace procedure prc_test(入参 in 类型, 出参 out 类型) is begin -- 逻辑实现 end;出参就是你要把内容放进去,用来传值的变量。2.在过程中保存一张临时表,...
java如何获取oracle存储过程里的dbms_output.put_line()内容; 现在...
1.通过存储过程的出参,将“当前用户:user_id”连接串返回;比如:假设你的过程叫,prc_test,在参数列表中增加出参。create or replace procedure prc_test(入参 in 类型, 出参 out 类型) is begin -- 逻辑实现 end;出参就是你要把内容放进去,用来传值的变量。2.在过程中保存一张临时表,...
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 begin select @EmpCo=EmpCo...
oracle 怎么在存储过程中创建一个临时表,在里面插入数据,再查找这个临 ...
不知道楼主的需求如何 一般没必要创建临时表,处理数据后又它drop。存储过程中要用到的表应该会经常用到。就让它存在吧,用完用 truncate table 清理数据就可以了。空表不会占很多资源。 我们就是这样做的。
oracle 存储过程 怎么用内存表
TRANACTION结束后消失,即COMMIT\/ROLLBACK或结束SESSION都会清除TRANACTION临时表数据。当会话退出或者用户提交commit和回滚rollback事 务的时候,临时表的数据自动清空,但是临时表的结构以及元数据还存储在用户的数据字典中。当一个会话结束(用户正常退出、用户不正常退出、ORACLE实 例崩溃)或者一个事务结束的...
oracle存储过程 使用游标 比对临时表和业务表两张表 相同数据找出来 做...
使用merge into就可以了。示例 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)W...
oracle存储过程中循环调用存储过程
1、没有必要每次都提交,到了CKPT,系统自动处理的 2、出现异常你可以回滚 3、提交了的不会回滚 4、调用的时候不提交,循环后统一提交 后面的问题:关键的地方把SQL语句打印出来,根据这些SQL语句查询出数据做分析
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将查询的结果值作为下一个查询的字段列。
2. 不支持返回多行的查询,这种交互将用临时表来存储记录(参照例子如下)或者用REF cursors.3. 当执行SQL语句时,不要用分号,当执行PL\/SQL块时,在其尾部用分号.4. 在Oracle手册中,未详细覆盖这些功能。下面的例子展示了所有用到Execute immediate的可能方面.希望能给你带来方便.5. 对于Forms开发者,...