还是:怎样才能把条件传到oracle存贮过程中去?有详细点的例子最好,谢谢!!

Tuxedo10 2003-10-09 09:11:59
jsp生成“and rq>sysdate”

存储过程中有一个
select * from test where 这里要加上jsp的and语句

create or replace procedure djdxgtodjd (Str varchar2) is
executesql varchar2(200) ;--内部存储sql变量
zdjbh zwdjdxg.djbh%type;--单据编号用于确定游标,出现错误写日志
v_ErrorMsg varchar2(200);--错误代码编码

Num number;--测试用,记录总数

cursor zwdjdxg_cur is
select z.djbh from zwdjdxg z where 1=1 ||Str;
--游标,这里需要加入传入的条件
begin
Num:=0;

open zwdjdxg_cur ;--打开游标
fetch zwdjdxg_cur into zdjbh;
while zwdjdxg_cur%found loop
begin
if Num<>0 then
fetch zwdjdxg_cur into zdjbh;
end if;
Num:=Num+1;
insert into zwdjd a select * from zwdjdxg b where b.djbh=zdjbh;
commit;
update zwdjd a set a.gxcs='0' where a.djbh=zdjbh;
delete from zwdjdxg b where b.djbh=zdjbh;
EXCEPTION
WHEN DUP_VAL_ON_INDEX OR NO_DATA_FOUND OR VALUE_ERROR THEN
--产生错误处理
-- Assign values to the log variables, using built-in
-- functions.
v_ErrorMsg := SQLERRM;
-- Insert the log message into log_table.
INSERT INTO log l (l.workerid,l.czrq,l.funcid,l.actor,l.operate)
VALUES ('8888',sysdate,'批量确认入网数据失败','单据编号为+'||zdjbh,v_ErrorMsg);
WHEN OTHERS THEN
NULL;
end;
end loop;
commit;
close zwdjdxg_cur;
end djdxgtodjd;
...全文
29 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ygrmry 2003-10-09
  • 打赏
  • 举报
回复
这是一个用JAVA调用存储过程的问题,要用到JDBC的CallableStatement接口了
………………………………
CallableStatement stm = null;
stm = con.prepareCall("call djdxgtodjd(?)");//调用存储过程
stm.setString(1," and rq>sysdate ");//传入参数,有些数据类型要做一下灵活变动
stm.executeUpdate();//执行存储过程;因为该存储过程没有返回结果.所以无需设置返回参数!
…….close()之类的语句!
………………………………
Tuxedo10 2003-10-09
  • 打赏
  • 举报
回复
up
qiyousyc 2003-10-09
  • 打赏
  • 举报
回复
看pl/sql开发的书

简单的动态sql
//动态的修改或删除sql语法
is
v_cursor number;
v_sel varchar2(100);
v_num integer;
begin
v_sel:='UPDATE XZ_COMPARE_SOURCE SET COST=34';
v_cursor:=DBMS_SQL.OPEN_CURSOR;
DBMS_SQL.PARSE(v_cursor,v_sel,DBMS_SQL.V7);
v_num:=DBMS_SQL.EXECUTE(v_cursor);
DBMS_SQL.CLOSE_CURSOR(v_cursor);
UPDATE XZ_COMPARE_SOURCE SET AMOUNT=v_num;
EXCEPTION
WHEN OTHERS THEN
UPDATE XZ_COMPARE_SOURCE SET AMOUNT=3;
end;
Tuxedo10 2003-10-09
  • 打赏
  • 举报
回复
to : qiyousyc(沈阳棋友)
不知道这个东西怎么用
只看到包里有一些过程函数的
那里有讲这些东西的书呢?
qiyousyc 2003-10-09
  • 打赏
  • 举报
回复
要调用dbms_sql包
具体的可以查看包的语法

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧