oracle存储过程查询结果
‘壹’ oracle怎么把存储过程查询出来的结果集显示出来
create or replace procere p_cnt(
p_time in varchar2,---查询的条件
p_cur out SYS_REFCURSOR)---游标返回
IS
v_sql varchar2(1000) :='';
v_date varchar2(20);
BEGIN
v_date := replace(p_time, '-', '');---时间的格式转换
v_sql := 'select * from dapartment d where d.d_time ='''|| v_date||'''';
END;
OPEN p_cur FOR v_sql;
END p_cnt;
‘贰’ oracle存储过程查数据并生成文件怎么实现
在存储过程中加入如下语句就可以实现数据的查询并保存为文件。
set
pagesize
0;
spool
c:\tmp.txt;
(文件件名字及路径可以自已设。)
select
*
from
table(这是你要查询的表名,可以加筛选条件等。);
spool
off;
‘叁’ oracle 怎么在存储过程中查询数据
oracle数据库中,已建立好的存储过程信息存储在系统表ALL_SOURCE 中,需要用sysdba身份登录数据库,进行查询操作,SQL命令如下:
1
2
3
4
5
SELECT line,text FROM ALL_SOURCE
WHERE TYPE='PROCEDURE'
AND NAME='过程名称'
AND OWNER='用户名'
ORDER BY line;
存储过程分成多行,每一行会存储为一条数据,所以,查询出来的会是多行,line表示行号。
ALL_SOURCE 表中还存储了以下类型信息:
1
2
3
4
5
6
7
8
9
10
SQL> select distinct type from all_source ;
TYPE
------------
TYPE (对象)类型
TYPE BODY 类型体
PROCEDURE <a href="https://www..com/s?wd=%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-TLwGUv3EnW6srHTsrjnz" target="_blank" class="-highlight">存储过程</a>
FUNCTION 函数
TRIGGER <a href="https://www..com/s?wd=%E8%A7%A6%E5%8F%91%E5%99%A8&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-TLwGUv3EnW6srHTsrjnz" target="_blank" class="-highlight">触发器</a>
PACKAGE 包
PACKAGE BODY 包体
‘肆’ 在Oracle存储过程中查询的数据结果怎样返回
oracle
跟ms不一样。
要返回表的记录数据,只能通过游标,或者自定义对象数组在存储过程中组装好后返回。
‘伍’ oracle存储过程 查询
oracle下,不能像SQL SERVER那样直接在存储过程里返回一个列表结果的结果集,可以考虑用游标输出参数返回输出结果集,然后再调用游标来循环显示结果集(请参考下面的示例):
假设你的表的结构这样:
create table we_temp1(id int,name varchar(20))
那建立存储过程如下:
create or replace procere wy_temp
(
o_result out sys_refcursor
)
is
begin
open o_result for select * from we_temp1;
end wy_temp;
调用存储过程并显示游标的结果集:
declare
v_result sys_refcursor;
v_id int;
v_name varchar2(20);
begin
wy_temp(v_result);
loop
fetch v_result into v_id,v_name;
exit when v_result%notfound;
dbms_output.put_line('列id的值:'||to_char(v_id));
dbms_output.put_line('列name的值:'||v_name);
end loop;
close v_result;
exception
when others then
dbms_output.put_line(sqlerrm);
end;
‘陆’ Oracle中怎么在存储过程中select结果啊
也是习惯了SQL Server的存储过程中直接可以使用select语句输出结果集,但这个在Oracle中就行不通了。
如果你仅仅是想看到存储过程中语句所影响的记录内容,那么可以考虑使用游标,然后循环游标用dbms_output将内容输出,从而可以在dbms的输出中看到;
如果是要使用在其它地方,那么要给此存储过程设置一个ref cursor输出参数,并且在存储过程中设置好此游标。
‘柒’ oracle存储过程怎样返回查询出来的数据解决方案
create or replace procere p_cnt(
p_time in varchar2,---查询的条件
p_cur out SYS_REFCURSOR)---游标返回
IS
v_sql varchar2(1000) :='';
v_date varchar2(20);
BEGIN
v_date := replace(p_time, '-', '');---时间的格式转换
v_sql := 'select * from dapartment d where d.d_time ='''|| v_date||'''';
END;
OPEN p_cur FOR v_sql;
END p_cnt;
‘捌’ 求高手个简单问题,如何查看ORACLE存储过程结果
1.在sql
plus上打开你的存储过程文件
2.在右侧树形文件中找到proceres里你的文件>在文件名上>右键>test
(没有刷新一下)
3.就会看到新的界面
4.输入值
5.点击运行按钮
这样就ok了
‘玖’ oracle 如何用存储过程来执行查询出来的语句
这是存储过程执行动态sql,具体做法是在存储过程执行
executeimmediate(v_sqlstr);