希望有高手指点指点``````

w2571121444 2008-12-18 09:53:09
通过对存储过程的多天学习`,最后得出以下结果! 好像还有不少问题``希望有高手指点指点``~

create or replace procedure test
(CustomerID In Varchar2(20) ,
CustomerCode In varchar2(30) ,
Password In Varchar2(4) ,
CustomerName In Varchar2(4) ,
InputOperatorId In Varchar2(4),
str_sql Varchar2(200),
cur_result_out Out search_result)
Begin
Open cur_result_out For str_sql;

If CustomerID Not Null Then
CustomerID := 'and c.CustomerID=' ;
Else If CustomerCode Not Null Then
CustomerCode := 'and c.CustomerCode=' ;
Else If Password Not Null Then
Password := 'and c.Password=' ;
Else If CustomerName Not Null Then
CustomerName := 'and c.CustomerName=' ;
Else If InputOperatorId Not Null Then
InputOperatorId := 'and c.InputOperatorId=' ;
str_sql := 'select * from t_mc_customer c where 1=1'|| CustomerID ||
CustomerCode || Password || CustomerName || InputOperatorId ;

end test;
...全文
52 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
范佩西_11 2008-12-18
  • 打赏
  • 举报
回复
给你修改了下。只是语法。你自己对照下你的看看多少处错误。
create or replace procedure test(CustomerID      In out Varchar2,
CustomerCode In out varchar2,
Password In out Varchar2,
CustomerName In out Varchar2,
InputOperatorId In out Varchar2,

cur_result_out Out sys_refcursor) as
str_sql Varchar2(200);
Begin
If CustomerID is Not Null Then

CustomerID := 'and c.CustomerID=';
ElsIf CustomerCode is Not Null Then
CustomerCode := 'and c.CustomerCode=';
ElsIf Password is Not Null Then
Password := 'and c.Password=';
ElsIf CustomerName is Not Null Then
CustomerName := 'and c.CustomerName=';
ElsIf InputOperatorId is Not Null Then
InputOperatorId := 'and c.InputOperatorId=';
str_sql := 'select * from t_mc_customer c where 1=1' ||
CustomerID || CustomerCode || Password ||
CustomerName || InputOperatorId;
end if;
Open cur_result_out For str_sql;
end test;
w2571121444 2008-12-18
  • 打赏
  • 举报
回复
CustomerID In out Varchar2, 这里IN OUT是什么意思?

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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