各位大侠: 我写了一个存储过程,代码如下
CREATE OR REPLACE PROCEDURE CMCC.TEST_PROC5(
stathour in varchar2,
statdate in varchar2
)IS
begintime varchar2(17);
endtime varchar2(17);
sqlstr varchar2(4000);
BEGINif stathour = '0'
stathour := '00';
if stathour = '1'
stathour := '01';
if stathour = '2'
stathour := '02';begintime := statdate || ' ' || stathour || ':00:00';
endtime := statdate || ' ' || stathour || ':59:59';sqlstr := ’具体的查询语句‘;execute immediate sqlstr;
commit;END TEST_PROC5;现在的问题是,编译时,其中的两条if语句老是出错,不知到该怎么办?
我想实现的功能就是,当判断到stathour 的值是0-9之间时,就在前面加上一个0,变成00,01,02等;不知道大家还有其他的办法没有,谢谢了!!
CREATE OR REPLACE PROCEDURE CMCC.TEST_PROC5(
stathour in varchar2,
statdate in varchar2
)IS
begintime varchar2(17);
endtime varchar2(17);
sqlstr varchar2(4000);
BEGINif stathour = '0'
stathour := '00';
if stathour = '1'
stathour := '01';
if stathour = '2'
stathour := '02';begintime := statdate || ' ' || stathour || ':00:00';
endtime := statdate || ' ' || stathour || ':59:59';sqlstr := ’具体的查询语句‘;execute immediate sqlstr;
commit;END TEST_PROC5;现在的问题是,编译时,其中的两条if语句老是出错,不知到该怎么办?
我想实现的功能就是,当判断到stathour 的值是0-9之间时,就在前面加上一个0,变成00,01,02等;不知道大家还有其他的办法没有,谢谢了!!
if 条件 thenelseend if;
你看看你的IF语句
then stathour := '00';else
stathour := '01';
end if还是不行啊
ELSIF ...
END IF
假设你取的数要补足两位
lpad(stathour ,2,'0')
length(a)=1就可以了
ELSIF ...
END IF