oracle sql 存储过程问题,可以追加分数

如题:(求大神把这个sqlserver的存储过程改写成oracle的要求输出效果一样)createprocedureimp_dat(v_strat_datedate,v_... 如题:(求大神把这个sqlserver的存储过程改写成oracle的 要求输出效果一样)
create procedure imp_dat(v_strat_date date,v_end_date)
as
begin
select*from t_test t where t.bizdate between v_strat_date and v_end_date;
end ;
展开
 我来答
灬Linhoo
2013-05-10 · TA获得超过104个赞
知道小有建树答主
回答量:226
采纳率:0%
帮助的人:143万
展开全部
这么给你说 。 你这是可以输出一个的所有列嘛。。。
但是oracle 是不能的
只能输出 你想要的列 当然 你要的多的话 输出就就很多 。
就要用 DBMS_OUTPUT.PUT_LINE();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
17号观察室
2013-05-10 · TA获得超过5730个赞
知道大有可为答主
回答量:3666
采纳率:66%
帮助的人:1369万
展开全部
--我测试过了 没有问题 而且日期这样的处理方法避免了时分秒带来的麻烦 希望采纳
create or replace procedure imp_dat (
v_strat_date nvarchar2 default null,
v_end_date nvarchar2 default null,
cv_1 out sys_refcursor
)
is
iv_strat_date date:=to_date(v_strat_date,'yyyy-mm-dd');
iv_end_date date:=to_date(v_end_date,'yyyy-mm-dd')+1;
begin
open cv_1 for

select * from t_test t where t.bizdate between iv_strat_date date and iv_end_date date;

end ;
更多追问追答
追问
请问这样返回的结果集等同于直接select的结果集而不是dbms_out那样打印的吗?  我想要的效果就跟直接SELECT出来的结果集一样  谢谢您了  还有   您写的这个存储过程带out了  那怎么调用呢?
谢谢 我oracle白痴
追答
这个是指针 在存储过程声明变量后都有的 是一种格式 这点和sql server的区别比较大
dbms输出也可以 效果差不多 但比较正式 我只是按照你的存储过程转的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
厍曼冬6o
2013-05-10 · TA获得超过1569个赞
知道小有建树答主
回答量:1336
采纳率:0%
帮助的人:1206万
展开全部
create or replace procedure imp_dat(v_strat_date date,v_end_date date)
is
begin
cursor cursor_test is select * fromt_test;
row_test a%rowtype;
begin
for row_test in cursor_test loop
dbms_output.put_line(row_test.字段1||row_test.字段2||row_test.字段3);
end loop;
end;
调用方法:
declare
v_strat_date date;
v_end_date date;
begin
imp_dat(v_strat_date date,v_end_date date);
end;
更多追问追答
追问
为什么在创建存储过程时建立的那两个参数没有在存储过程里面用到呢?在调用的时候反而又声明了一遍呢?
追答
在select 语句有添加条件:
cursor cursor_test is select * from t_test t where t.bizdate between v_strat_date and v_end_date;
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
老生丶新学
2013-05-11
知道答主
回答量:29
采纳率:0%
帮助的人:10.7万
展开全部
其实oracle和sqlserver除了数据类型的名字,基本是一样的
create or replace procedure imp_dat(start date,end date)
is
begin
select * from t_test t where t.bizdate between start and end;

end;
追问
你这样能执行?别乱说好不好
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式