出血本啦!!!200分求一存储过程!好难呀!

morethan 2003-09-12 10:17:50
我的表结构如下

员工号,姓名,出生日期,职务,职称,所属部门,最高学历。

题目要求,用一个存储过程中实现,根据任意条件查询,返回查询结果。

例如,只输入员工号进行查询,或输入所属部门和最高学历进行查询,或按年龄和职称进行查询等。。

也就是说每次输入的查询条件都不定,请问有什么办法吗??

用其它方法实现也行??多谢各位啦!
...全文
24 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
JCC0128 2003-09-14
  • 打赏
  • 举报
回复
肯定用小虫的方法啦
在前台过滤数据就行了
小虫一百分,我一百分算了!~~~~~~~~~~~~~~~~~~~~~~

顺便问,浪子是台湾同胞?呵呵,你好
bunnysky 2003-09-14
  • 打赏
  • 举报
回复
CREATE OR REPLACE p_query
(
emp_id IN VARCHAR2,
name IN VARCHAR2,
birthday IN VARCHAR2,
……
v_cur OUT pk_type.ref_cursor
/*
存储过程所需要的所有条件由前台传过来,前台在获取用户检索条件的时候由代码判断对应的条件,如果为空,则对应的变量设置为'%',如果不为空则设为'%用户条件%',然后用这些条件调用存储过程,过程返回检索到的数据。
*/
)

AS
……
BEGIN
OPEN v_cur for
SELECT relation,nvl(sum(num_cdrs),0),nvl(sum(durations),0),nvl(sum(sett_fees/100),0)
FROM trw_settle_report
WHERE 员工号 LIKE 'emp_id'
AND 姓名 LIKE 'name'
AND 出生日期 LIKE 'birthday'
AND ……;
EXCEPTION:
WHEN OTHERS THEN
……;

END;

jiezhi 2003-09-13
  • 打赏
  • 举报
回复
任意條件?總是有范圍的。
你可以提供几個查詢項讓用戶進行查詢。
這個當然在前端做方便拉,至少查詢條件的獲取是在前端做的。
qinkm 2003-09-13
  • 打赏
  • 举报
回复
这种要求,你做一个视图,将你要查询的字段都包括进去.在前端进行控制就行了.为什么要写存储过程?你又不往表里写数据,写存储过程没有意义!
morethan 2003-09-13
  • 打赏
  • 举报
回复
up
beckhambobo 2003-09-13
  • 打赏
  • 举报
回复
str:='select * from tab1 where empno=nvl('||p_empno||',empno) and name=nvl('||p_name||',name) and bdate=nvl('||p_bdate||',bdate) and zm=nvl('||p_zm||',zm) and zf=nvl('||p_zf||',zf) and dept=nvl('||p_dept||',dept) and xj=nvl('||p_xj||',xj)';
open str for p_rc;
onejune4450 2003-09-13
  • 打赏
  • 举报
回复
用一条sql,在应用程序中带入变量:

select * from emp
where 员工号 = decode(员工号_参数,null,员工号,员工号_参数)
and 姓名 = ....

或把字段是字符类型的改写为 emp_col like 某参数||'%'
zly1980 2003-09-13
  • 打赏
  • 举报
回复
就算你用什么债实现了这个过程,我觉得也没什么意义!~
首先那些条件是谁提出的?肯定是前端用户。
beckhambobo 2003-09-13
  • 打赏
  • 举报
回复
CREATE OR REPLACE PACKAGE pkg_test
AS
TYPE myrctype IS REF CURSOR;
END pkg_test;
/
create procedure pro(p_empno in varchar2,p_name in varchar2,p_bdate in date,p_zm in varchar2,p_zf in varchar2,p_dept in varchar2,p_xj in varchar2,p_rc out pkg_test.myrctype)
as
str varchar2(100);
begin
str;='select * from tab1 where 1=1';
if p_empno is not null then
str:=str||' and empno='||p_empno;
end if;
if p_name is not null then
str:=str||' and name='||p_name;
end if;
if p_bdate is not null then
str:=str||' and bdate='||p_bdate;
end if;
if p_zm is not null then
str:=str||' and zm='||p_zm;
end if;
if p_zf is not null then
str:=str||' and zf='||p_zf;
end if;
if p_dept is not null then
str:=str||' and dept='||p_dept;
end if;
if p_xj is not null then
str:=str||' and xj='||p_xj;
end if;
open str for p_rc;
end;
/
Drate 2003-09-13
  • 打赏
  • 举报
回复
这种查询我都是在前段的用户界面上实现的,而且一般也就是返回一条SQL语句,所以我以为没有必要写成存储过程。。
rhuang666 2003-09-13
  • 打赏
  • 举报
回复
这个不难,可以用过程的重载
robertcj 2003-09-13
  • 打赏
  • 举报
回复
把所有字段有连接函数连在一起成一个大的字符串,然后用类似查询看输入的字符串是否出现在以上的字符串中,返回结果!
网络安全知识竞赛小测试 -网络攻击技术 1、通过寻找目标的安全漏洞、盗窃存放系统口令的文件、破译加密的口令,属于哪种行为( ) [单选题] * A.破解系统口令文件(正确答案) B.网络嗅探 C.键盘记录 D.中间人攻击 2、关于摆渡攻击的描述错误的是( )[单选题] * A.摆渡攻击是百度的一种攻击方式(正确答案) B.摆渡攻击是一种专门针对移动存储设备的攻击方式 C.摆渡攻击就是利用 u 盘作为"渡船" D.摆渡木马隐蔽性、针对性很强,一般只感染特定的计算机 3、以下选项中( )不属于 APT 攻击的特点。[单选题] * A.潜伏性 B.针对性 C.社会工程性 D.传染性(正确答案) 4、比特币是( )[单选题] * A.美国法定货币 B.网络通用电子货币 C.国际通用货币 D.有一定流通性和认可性的虚拟货币(正确答案) 5、使网络服务器中充斥着大量要求回复的信息,消耗带宽,导致网络或系统停止正常服务,这 属于什么攻击类型( )[单选题] * A.拒绝服务(正确答案) B.文件共享 C.BIND 漏洞 D.远程过程调用 6、关闭 WIFI 的自动连接功能可以防范( )[单选题] * A.所有恶意攻击 B.假冒热点攻击(正确答案) C.恶意代码 D.拒绝服务攻击 7、下列哪个不是 QQ 中毒的主要症状( )[单选题] * A.QQ 老是掉线,提示异地登陆 B.QQ 空间存在垃圾广告日志 C.自动给好友发送垃圾消息 D.登录时无网络连接(正确答案) 8、从网络攻击的位置来分,可以分为远程攻击和( )两种。[单选题] * A.本地攻击(正确答案) B.主动攻击 C.被动攻击 D.伪远程攻击 9、黑客在攻击中进行端口扫描可以完成( )。[单选题] * A.检测黑客自己计算机已开放哪些端口 B.口令破译 C.获知目标主机开放了哪些端口服务(正确答案) D.截获网络流量 10、许多黑客攻击都是利用软件实现中的缓冲区溢出的漏洞,对于这一威胁,最可靠的解决方 案是( )[单选题] * A.安装防火墙 B.给系统安装最新的补丁(正确答案) C.安装入侵检测系统 D.安装防病毒软件 11、Man-in-the-middle 攻击,简称 MITM,即( )[单选题] * A.重放攻击 B.拒绝服务攻击 C.中间人攻击(正确答案) D.后门漏洞攻击 12、使用漏洞库匹配的扫描方法,能发现( )[单选题] * A.未知的漏洞 B.已知的漏洞(正确答案) C.自行设计的软件中的漏洞 D.所有漏洞 13、哪一项不是防范漏洞的措施( )[单选题] * A.使用正版软件 B.关注信息安全新闻 C.利用补丁 D.使用盗版软件(正确答案) 14、以下关于黑帽子描述正确的是( )[单选题] * A.获得国际资质的黑客 B.没有获得国际资质的骇客 C.没有获得国际资质的高级程序员 D.放弃道德信念而恶意攻击的黑客(正确答案) 15、以下不能防止拖库的方法是( )[单选题] * A.重要帐号单独管理,其他的帐号无所谓 B.可以电脑允许自动"保存密码",但定期修改密码 C.分级管理密码,把密码记录在本地磁盘的某个特定的文档中 D.以上全部(正确答案) 16、摆渡攻击通常不会用以下哪个途径来窃取资料( )[单选题] * A.摄像头(正确答案) B.U 盘 C.移动硬盘 D.移动载体 17、心脏出血漏洞与以下哪个协议直接相关( )[单选题] * A.HTTP B.SSL(正确答案) C.TCP D.SMTP 18、中国工商银行的官网为 http://www.icbc.com.cn,某同学从网上获取到一个网址为 http://www.icdc.com.cn,用浏览器打开后跟官网的几乎完全相同。针对第二个网址以下说法 正确的是:( )[单选题] * A.该网站是工商银行网站的备份网站,可以放心使用。 B.该网站可能属于钓鱼网站,冒充工商银行网站进行诈骗活动。(正确答案) C.先确保防火墙已经打开,防病毒软件已正确工作,然后放心打开并使用。 D.发给同学让同学去打开,确保安全后再用 19、攻击者常用的攻击工具有(1)DoS 攻击工具,(2)木马程序,(3)分布式工具。其中 DoS 是指( )[单选题] * A.一种磁盘操作系统 B.拒绝服务(正确答案) C.一种黑客工具软件的名称 D.一种病毒的名称 20、TCP SYN 泛洪攻击的原理是利用了( )[单选题] * A.TCP 三次握手过程(正确答案) B.TCP 面向流的工作机制 C.TCP 数据传输中的窗口技术 D.TCP 连接终止时的 FIN 报文 21、以下对 TCP 协议发起连接进行三次握手的叙述错误的是( )[单选题] * A.握手第一步:客户端发送一个 SYN 和 ACK 报文到服务器(正确答案) B.握手第二步:

17,377

社区成员

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

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