不是很清楚oracle的语法
下面是在sql server下写的 就是一个在一个时间段内循环调用存储过程的,在oracle下面应该怎么写?谢谢!这个是sql的
CREATE PROCEDURE EBI_Calbal
@sdate varchar(10),
@edate varchar(10)
aswhile @sdate<=@edate
begin
exec EBI_CalculateBal @sdate
set @sdate=left(convert(varchar,cast(@sdate as datetime)+1,120),10)
end
GO在oracle下的 请指教CREATE OR REPLACE PROCEDURE DS(sdate in string,edate in string
,n_retcode out number) is
begindeclare
begin
while sdate<=edate loop
sdate:=left(convert(varchar2,cast(sdate as datetime)+1,120),10)
bfhgcsxf_in(sdate);
end loop;
下面是在sql server下写的 就是一个在一个时间段内循环调用存储过程的,在oracle下面应该怎么写?谢谢!这个是sql的
CREATE PROCEDURE EBI_Calbal
@sdate varchar(10),
@edate varchar(10)
aswhile @sdate<=@edate
begin
exec EBI_CalculateBal @sdate
set @sdate=left(convert(varchar,cast(@sdate as datetime)+1,120),10)
end
GO在oracle下的 请指教CREATE OR REPLACE PROCEDURE DS(sdate in string,edate in string
,n_retcode out number) is
begindeclare
begin
while sdate<=edate loop
sdate:=left(convert(varchar2,cast(sdate as datetime)+1,120),10)
bfhgcsxf_in(sdate);
end loop;
解决方案 »
- 用语句怎么修改一个列的长度?
- 急就高手:在pl/sql中我只要使用utl_file内置程序包读写文件,就会报错:无法处理的用户自定义异常事件
- 怎样让ORCALE不区分大小写?
- 怎样让另一台window的PLSQL工具或enterprise manager console来连结linux的oracle9
- 为什么我点安装文件是他没反应?别人的机子可以装上啊!
- 谁有Oracle在WIN2000下的安装教程?
- oracle 9011NTSrv_Disk1 再2k server 上安装说找不到 temp/jre/bin/jrew.exe 我有虚拟机! 可是没这个文件!
- 关于表复制(在oracle下)
- 讲oracle基础的课程我该从哪出发?晚10点结帐!加急!回答的人越多越好!分不够再加~
- 关于在oacle中删除一具有DBA权限的用户,为何用system/manager@服务名进入sqlplus出错
- ORA-43853: SECUREFILE lobs cannot be used in non-ASSM tablespace "SYSTEM"
- 令人费解的ISEDIT!!!
v_sdate varchar2(10),
v_edate varchar2(10)
AS
WHILE v_sdate <= v_edate LOOP
exec EBI_CalculateBal v_sdate
v_sdate := to_char(to_date(v_sdate,'YYYY-MM-DD')+1,'YYYY-MM-DD');
END LOOP;
END;
/
--------------------------------
2010-09-20-- 以上是你在SQL Server中使用的日期格式!,
-- 所以,类似Oracle中的日期格式:YYYY-MM-DD
-- YYYY 表示年份,MM表示月份,DD表示具体的哪一天(如:21号)
CREATE PROCEDURE EBI_Calbal(
v_sdate varchar2(10),
v_edate varchar2(10)
AS
WHILE v_sdate <= v_edate LOOP
exec EBI_CalculateBal(v_sdate);
v_sdate := to_char(to_date(v_sdate,'YYYY-MM-DD')+1,'YYYY-MM-DD');
END LOOP;
END;
/
CREATE PROCEDURE EBI_Calbal(
v_sdate varchar2(10),
v_edate varchar2(10)
)
AS
WHILE v_sdate <= v_edate LOOP
exec EBI_CalculateBal(v_sdate);
v_sdate := to_char(to_date(v_sdate,'YYYY-MM-DD')+1,'YYYY-MM-DD');
END LOOP;
END;
/
--输入时间参数 格式如:20100920
CREATE PROCEDURE EBI_Calbal(
v_sdate varchar2(10),
v_edate varchar2(10))
AS
WHILE v_sdate <= v_edate LOOP
EBI_CalculateBal;
v_sdate := to_char(to_date(v_sdate,'yyyymmdd')+1,'yyyymmdd');
END LOOP;
END;
CREATE PROCEDURE EBI_Calbal(
v_sdate varchar2(10),
v_edate varchar2(10)
)
AS
BEGIN
WHILE v_sdate <= v_edate LOOP
exec EBI_CalculateBal(v_sdate);
v_sdate := to_char(to_date(v_sdate,'YYYY-MM-DD')+1,'YYYY-MM-DD');
END LOOP;
END;
/
i_sdate VARCHAR2
)
AS
BEGIN
dbms_output.put_line('日期:'||i_sdate||' 是:'||to_char(to_date(i_sdate,'YYYY-MM-DD'),'Day'));
END;
/CREATE OR REPLACE PROCEDURE EBI_Calbal(
v_sdate varchar2,
v_edate varchar2
)
AS
i_sdate VARCHAR2(10);
v_str VARCHAR2(100);
BEGIN
i_sdate := v_sdate;
WHILE i_sdate <= v_edate LOOP
EBI_CalculateBal(i_sdate);
dbms_output.put_line(v_str);
i_sdate := to_char(to_date(i_sdate,'YYYY-MM-DD')+1,'YYYY-MM-DD');
END LOOP;
END;
/
scott@SZTYORA> SET SERVEROUTPUT ON;
scott@SZTYORA>
scott@SZTYORA> EXEC EBI_Calbal('2010-09-01','2010-09-21');
日期:2010-09-01 是:星期三
日期:2010-09-02 是:星期四
日期:2010-09-03 是:星期五
日期:2010-09-04 是:星期六
日期:2010-09-05 是:星期日
日期:2010-09-06 是:星期一
日期:2010-09-07 是:星期二
日期:2010-09-08 是:星期三
日期:2010-09-09 是:星期四
日期:2010-09-10 是:星期五
日期:2010-09-11 是:星期六
日期:2010-09-12 是:星期日
日期:2010-09-13 是:星期一
日期:2010-09-14 是:星期二
日期:2010-09-15 是:星期三
日期:2010-09-16 是:星期四
日期:2010-09-17 是:星期五
日期:2010-09-18 是:星期六
日期:2010-09-19 是:星期日
日期:2010-09-20 是:星期一
日期:2010-09-21 是:星期二PL/SQL 过程已成功完成。scott@SZTYORA>