CREATE OR REPLACE PROCEDURE YANZHENG ( C_NAME VARCHAR2,--用户名称 C_PASSWORD VARCHAR2,---用户密码 FLAG OUT NUMBER) --返回状态0表示错误,1表示存在) IS COUNTS NUMBER; PCOUNTS NUMBER; BEGIN SELECT COUNT(*) INTO COUNTS FROM USER WHERE USERNAME=C_NAME; IF COUNTS>0 THEN SELECT COUNT(*) INTO PCOUNTS FROM USER WHERE PASSWORD=C_PASSWORD; IF PCOUNTS>0 THEN FLAG:=1; END IF; ELSE FLAG:=0; END IF; END YANZHENG; 这是个简单的,抛砖引玉~~~一 般这种考虑到安全以及其他方面是在程序中判断的,所以建议不要这样用
这样的程序签名,该怎么写过程呢???,请指教! procedure logvalidate(v_ename employee.logname%type, v_password employee.password%type, v_result out boolean) 验证用户登录是否合法
create or replace procedure writechat(v_sour chatlog.source%type, v_target chatlog.target%type, v_msg chatlog.msg%type, v_type chatlog.msgtype%type, v_stat chatlog.status%type)is begin select source,target,msg,msgtype,status into v_sour,v_target,v_msg,v_type,v_stat from employee;上面我的问题这样写对 吗》?请高手告诉下啊 ,,,
写错了。create or replace procedure writechat( v_sour IN chatlog.source%type, --IN不写可以的,没写IN/OUT默认是IN v_target IN chatlog.target%type, v_msg IN chatlog.msg%type, v_type IN chatlog.msgtype%type, v_stat IN chatlog.status%type)is begin --直接insert即可。 insert into employee(source,target,msg,msgtype,status) values(v_sour,v_target,v_msg,v_type,v_stat); --出错则抛出给调用方 exception when others then raise; end; /
大家在帮我看下我下面写的对 吗??多谢了 --3,未发送信息获取 create or replace procedure readnondelivery(v_target chatlog.target%type, v_result out sys_refcursor) is begin open v_result for select * from chatlog where target=v_target; end; --获取指定用户尚未接收的消息--4,员工签到、签退 create or replace procedure log_manage(v_user emplog.username%type, v_oper emplog.operat%type) is begin select username,operat into v_user,v_oper from emplog where in ('login','logout'); end; --实现员工签到或是签退信息的记录
--5,用户信息写入 create or replace procedure writeinformation(v_logname employee.logname%type, v_username employee.username%type, v_password employee.password%type, v_birthday employee.birthday%type, v_constellation employee.constellation%type, v_taste employee.taste%type, v_dept employee.department%type, v_ext employee.extension%type, v_purview employee.purview%type, v_directory employee.directory%type) is begin insert into employee(logname,username,password,birthday,constellation,taste,dept,ext,purview,directory) values(v_logname,v_username,v_password,v_birthday,v_constellation,v_taste,v_dept,v_ext,v_purview,v_directory); end; --将用户的信息保存到对应的表中--6,用户信息读取 create or replace procedure getinformation(v_logname employee.logname%type, v_result out sys_refcursor) is begin open v_result for select * from employee where logname=v_logname; end; --获取指定用户的信息--7,更新用户信息 create or replace procedure updateinformation(v_logname employee.logname%type, v_newbirthday employee.birthday%type, v_oldbirthday employee.birthday%type, v_newpassword employee.password%type, v_oldpassword employee.password%type, v_newconstellation employee.constellation%type, v_oldconstellation employee.constellation%type, v_newtaste employee.taste%type, v_oldtaste employee.taste%type) is begin 这个该怎么写啊?? end; --更新指定用户的个人信息--8,文件操作记录 create or replace procedure writefilelog(v_operator fileoperate.operator%type, v_filename fileoperate.filename%type, v_operdirectory fileoperate.operdirectory%type, v_operattype fileoperate.operattype%type) is begin select operator,filename,operdirectory,operattype into v_operator,v_filename,v_operdirectory,v_operattype from fileoperate where in ('pri','deptpub','pub') and operattype in ('upload','down'); end; --实现文件上传或下载过程的记录--9.用户权限获取 create or replace procedure getpurview(v_logname employee.logname%type, v_purview out number) is v_purview number(2); begin select purview into v_purview from employee where logname=v_logname; end; --获取用户的权限值--10,获取私人文件路径 create or replace procedure getpersondirectory(v_logname employee.logname%type, v_directory out varchar2) is v_directory varchar2(100); begin select directory into v_directory from employee where logname=v_logname; end; --获取指定用户的私人文件存放路径--11,获取部门文件路径 create or replace procedure getdeptdirectory(v_logname employee.logname%type, v_directory out varchar2) is v_directory varchar2(100); begin select directory into v_directory from employee where logname=v_logname; end; --获取指定用户的部门文件存放路径
(
C_NAME VARCHAR2,--用户名称
C_PASSWORD VARCHAR2,---用户密码
FLAG OUT NUMBER) --返回状态0表示错误,1表示存在)
IS
COUNTS NUMBER;
PCOUNTS NUMBER;
BEGIN
SELECT COUNT(*) INTO COUNTS FROM USER WHERE USERNAME=C_NAME;
IF COUNTS>0 THEN
SELECT COUNT(*) INTO PCOUNTS FROM USER WHERE PASSWORD=C_PASSWORD;
IF PCOUNTS>0 THEN
FLAG:=1;
END IF;
ELSE
FLAG:=0;
END IF;
END YANZHENG;
这是个简单的,抛砖引玉~~~一
般这种考虑到安全以及其他方面是在程序中判断的,所以建议不要这样用
procedure logvalidate(v_ename employee.logname%type,
v_password employee.password%type,
v_result out boolean)
验证用户登录是否合法
v_target chatlog.target%type,
v_msg chatlog.msg%type,
v_type chatlog.msgtype%type,
v_stat chatlog.status%type
)将用户发送的消息记录到数据库中该怎么写啊姐姐
v_target chatlog.target%type,
v_msg chatlog.msg%type,
v_type chatlog.msgtype%type,
v_stat chatlog.status%type)is
begin
select source,target,msg,msgtype,status into v_sour,v_target,v_msg,v_type,v_stat from employee;上面我的问题这样写对 吗》?请高手告诉下啊 ,,,
v_sour IN chatlog.source%type, --IN不写可以的,没写IN/OUT默认是IN
v_target IN chatlog.target%type,
v_msg IN chatlog.msg%type,
v_type IN chatlog.msgtype%type,
v_stat IN chatlog.status%type)is
begin
--直接insert即可。
insert into employee(source,target,msg,msgtype,status) values(v_sour,v_target,v_msg,v_type,v_stat);
--出错则抛出给调用方
exception when others then
raise;
end;
/
大家在帮我看下我下面写的对 吗??多谢了
--3,未发送信息获取
create or replace procedure readnondelivery(v_target chatlog.target%type,
v_result out sys_refcursor)
is
begin
open v_result for select * from chatlog where target=v_target;
end;
--获取指定用户尚未接收的消息--4,员工签到、签退
create or replace procedure log_manage(v_user emplog.username%type,
v_oper emplog.operat%type)
is
begin
select username,operat into v_user,v_oper from emplog where in ('login','logout');
end;
--实现员工签到或是签退信息的记录
--5,用户信息写入
create or replace procedure writeinformation(v_logname employee.logname%type,
v_username employee.username%type,
v_password employee.password%type,
v_birthday employee.birthday%type,
v_constellation employee.constellation%type,
v_taste employee.taste%type,
v_dept employee.department%type,
v_ext employee.extension%type,
v_purview employee.purview%type,
v_directory employee.directory%type)
is
begin
insert into employee(logname,username,password,birthday,constellation,taste,dept,ext,purview,directory) values(v_logname,v_username,v_password,v_birthday,v_constellation,v_taste,v_dept,v_ext,v_purview,v_directory);
end;
--将用户的信息保存到对应的表中--6,用户信息读取
create or replace procedure getinformation(v_logname employee.logname%type,
v_result out sys_refcursor)
is
begin
open v_result for select * from employee where logname=v_logname;
end;
--获取指定用户的信息--7,更新用户信息
create or replace procedure updateinformation(v_logname employee.logname%type,
v_newbirthday employee.birthday%type,
v_oldbirthday employee.birthday%type,
v_newpassword employee.password%type,
v_oldpassword employee.password%type,
v_newconstellation employee.constellation%type,
v_oldconstellation employee.constellation%type,
v_newtaste employee.taste%type,
v_oldtaste employee.taste%type)
is
begin
这个该怎么写啊??
end;
--更新指定用户的个人信息--8,文件操作记录
create or replace procedure writefilelog(v_operator fileoperate.operator%type,
v_filename fileoperate.filename%type,
v_operdirectory fileoperate.operdirectory%type,
v_operattype fileoperate.operattype%type)
is
begin
select operator,filename,operdirectory,operattype into v_operator,v_filename,v_operdirectory,v_operattype from fileoperate where in ('pri','deptpub','pub') and operattype in ('upload','down');
end;
--实现文件上传或下载过程的记录--9.用户权限获取
create or replace procedure getpurview(v_logname employee.logname%type,
v_purview out number)
is
v_purview number(2);
begin
select purview into v_purview from employee where logname=v_logname;
end;
--获取用户的权限值--10,获取私人文件路径
create or replace procedure getpersondirectory(v_logname employee.logname%type,
v_directory out varchar2)
is
v_directory varchar2(100);
begin
select directory into v_directory from employee where logname=v_logname;
end;
--获取指定用户的私人文件存放路径--11,获取部门文件路径
create or replace procedure getdeptdirectory(v_logname employee.logname%type,
v_directory out varchar2)
is
v_directory varchar2(100);
begin
select directory into v_directory from employee where logname=v_logname;
end;
--获取指定用户的部门文件存放路径
一般密码要经过加密(比如md5)再储存到数据库中,登录时,对登录密码进行加密,然后和数据库里储存的值进行比较