存储过程名:User_AddUser
参数:V_OP_USER in char, V_PASSWORD in char, V_ALIAS in char, V_USER_CODE out char
流程:1、查找最大的USER_CODE在表USERS中
2、转换成数字
3、加1
4、赋值给V_USER_CODE
5、插入USERS表TIME_OF_CREATION,TIME_OF_MODIFICATION的值用sysdate(系统变量,就是当前系统的时间) user_code是char(8)类型,好像不能直接into到变量里。 返回的out也是char类型,要在把num格式转换成char例如:1=>'00000001',23=>'00000023' 请问这个存储过程我该怎么写?
参数:V_OP_USER in char, V_PASSWORD in char, V_ALIAS in char, V_USER_CODE out char
流程:1、查找最大的USER_CODE在表USERS中
2、转换成数字
3、加1
4、赋值给V_USER_CODE
5、插入USERS表TIME_OF_CREATION,TIME_OF_MODIFICATION的值用sysdate(系统变量,就是当前系统的时间) user_code是char(8)类型,好像不能直接into到变量里。 返回的out也是char类型,要在把num格式转换成char例如:1=>'00000001',23=>'00000023' 请问这个存储过程我该怎么写?
CREATE OR REPLACE User_AddUser(V_OP_USER in char, V_PASSWORD in char, V_ALIAS in char, V_USER_CODE out char)
AS
BEGIN
SELECT LPAD(TO_CHAR(MAX(TO_NUMBER(USER_CODE))+1),8,'0') INTO V_USER_CODE FROM USERS;
UPDATE USERS SET TIME_OF_CREATION=to_char(sysdate,'yyyy-mm-dd'),TIME_OF_MODIFICATION=to_char(sysdate,'yyyy-mm-dd') WHERE OP_USER=V_OP_USER AND PASSWORD=V_PASSWORD;
Commit;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END User_AddUser;应该是这样写的吧!你试一试!