题目是这样的:
创建一个存储过程,存储过程名为p_login,用于操作用户登录的校验,登录需要使用EMPNO和EMPPASS,并需要提示登录中的错误,如是EMPNO不存在,还是EMPNO存在EMPPASS错误,还是其他错误等。
要求:
1)不同的输出状态用不同的输出编号标识(out_code)如EMPNO存在且密码正确out_code=0,EMPNO不存在此类错误的out_code=1,用户名存在密码错误out_code=2,其他错误out_code=3
2)不同的输出状态对应不同的输出描述或提示,输出描述用out_desc标识
3)存储过程运行结束要把输出状态对应的输出标识(out_code)和输出描述(out_desc)输出。
以下是我写的脚本:
create or replace procedure p_login ( NO IN number, PASS IN nvarchar2, out_code OUT number, out_desc OUT nvarchar2)
is
count1 number(10);
vcount number(10);
other EXCEPTION;
begin
select ID into count1 from EMP where EMPNO= NO;
select ID into vcount from EMP where EMPPASS= PASS and EMP.ID = count1;
if (count1 is not null and vcount is not null) then
out_code:=0;
out_desc:= '登录成功';
elsif (count1 is Null and vcount is Null) then
out_code:=1;
out_desc:= 'EMPNO不存在';
elsif (count1 is not Null and vcount is Null) then
out_code:=2;
out_desc:= '密码错误';
else out_code:=3;
out_desc:= '其他错误';
end if;
dbms_output.put_line(out_code||out_desc);
end p_login;
运行的时候会有错。主要原因是:在oracle中,只要某个参数为空的话 那么系统就报错了。。。这种情况应该怎么处理呢?貌似用IS NULL没用啊?
第1题:
A 它可作为一个独立的数据库对象并作为一个单元供用户在应用程序中调用
B 存储过程必须带参数,要么是输入参数,要么是输出参数
C 存储过程可以传入(输入)和返回(输出)参数值
D 存储过程提高了执行效率
第2题:
第3题:
第4题:
第5题:
检索公司员工中姓张的员工信息。显示字段:empno、ename、deptno。
第6题:
关于登录和用户,下列各项表述不正确的是()。
第7题:
使用存储过程应对SQL注入攻击时,尤其需要注意()
第8题:
数据库中有一张表名为Emp,包含有如下列:EmpNO(雇员编号,Varchar(20),Pk),Job(职位Varchar(10)),HirDate(雇佣日期,Date),Sal(月薪,Float),Comm(奖金,Float,可为空)。查询出雇员编号不为791,792,793的雇员信息应该是用哪些数据查询?()
第9题:
下列有关存储过程的叙述中错误的是()。
第10题:
确认是验证用户的标识,如登录口令验证、指纹验证、电子证书存储器。
第11题:
电e宝上选择户号登录时,需要填写与手机号登录一样的登录密码,否则提示密码错误。
第12题:
执行存储过程要比执行T-SQL批处理代码快。
在一个存储过程中可以调用其他存储过程。
定义存储过程只是为了减少重复编写T-SQL代码。
使用存储过程可以减少网络通信量。
第13题:
A 登录账户是在服务器级创建的,数据库用户是在数据库级创建的
B 用户和登录账户必须同名
C 创建用户时必须存在该用户的登录账户
D 一个登录账户可以对应多个用户
第14题:
试题12
有一个标题为“登录”的用户登录窗体,窗体上有两个标签,标题分别是“用户名:”和“密码:”,用于输入用户名的文本框名为“UserName”,用于输入密码的文本框名为“UserPassword”,用于进行倒计时显示的文本框名为“Tnum”,窗体上有一个标题为“确认”的按钮名为“OK”,用于输入完用户名和密码后单击此按钮确认。
输入用户名和密码,如用户名或密码错误,则给出提示信息;如正确,则显示“欢迎使用!”信息,要求整个登录过程要在30秒中完成,如果超过30秒还没有完成正确的登录操作,则程序给出提示自动终止整个登录过程。
请在程序空白处填入适当的语句,使程序完成指定的功能。
Option ,Compare Database
Dim Second As Integer
Private Sub Form_open(Cancel As Integer)
Second=0
End Sub
Private Sub Form_Timer()
If Second > 30 Then
MsgBox “请在30秒中登录”, vbcritical, “警告”
Docmd.close
Else
Me!Tnum=30-Second
End If
Second =___【12】__
End Sub
Private Sub OK_Click()
If Me.UserName< > “123” Or Me.UserPassword < > “456” Then
MsgBox “错误!”+“您还有”& 30-Second & “秒”,vbcritical,“提示”
Else
Me.TimerInterval=___【13】____ ‘终止Timer事件继续发生
End If
End Sub
第15题:
第16题:
请简要说明使用企业管理创建登录账号和用户账号的过程。
(1)在SQL Server的企业管理器下,展开“SQL Server组”文件夹,找到需要建立登录账号的服务器并展开其文件夹,再展开“安全性”文件夹,在“登录”选项上右击鼠标,在出现的快捷菜单中单击“新建登录”菜单命令,打开“SQL Server登录属性->新建登录”对话框。
(2)SQL Server支持“Windows身份验证”和单击“SQL Server身份验证”两种认证模式。选择“SQL Server身份验证”单选钮,在“名称”文本框中输入要创建的登录账号名称,例如“mysa”,在“身份验证”选项组中,并输入密码。
(3)设置完毕后,单击“确定”按钮,即可完成登录账号的创建。
接下来,开始创建用户账号,基本方法是:
(1)在企业管理器中,展开SQL Server组及其服务器,在“数据库”文件夹中,展开某一数据库,例如“进销存”的文件夹,然后在“用户”选项上右击,在弹出的快捷菜单中选择“新建数据库用户”命令,打开新建用户对话框。
(2)单击“登录名”下拉列表框右端的下拉箭头,会看到刚刚创建的“mysa”登录帐号。选择“mysa”登录账号,此时“用户名”文本框中自动显示为“mysa”。可以更改“用户名”文本框中的用户名,也可以在“数据库角色成员”列表框中选择新建用户应该属于的数据库角色。
(3)设置完毕后,单击“确定”按钮,即可在“进销存”数据库中创建一个新的用户账号。如果不想创建用户账号,单击“取消”按钮即可。
略
第17题:
下列说法错误的是()。
第18题:
在ORACLE中,关于同义词说法错误的是()
第19题:
下面的查询中哪一个会产生笛卡尔集()
第20题:
数据库中有一张表名为Emp,包含有如下列:EmpNO(雇员编号,Varchar(20),Pk),Job(职位Varchar(10)),HirDate(雇佣日期,Date),Sal(月薪,Float),Comm(奖金,Float,可为空)。查询出雇员编号为791,792,793的雇员信息是()
第21题:
在存储过程中可以用RETURN语句定义返回值,表示过程执行状态。如果存储过程返回100,表示()。
第22题:
账号登录时提示:“用户登录失败,密码错误!您已有1此登录失败,超过5次之后将被锁定”,原因为用户名输入错误。
第23题:
登录是在服务器级创建的,用户是在数据库级创建的
创建用户时必须存在一个用户的登录
用户和登录必须同名
一个登录可以对应多个用户