存储过程名: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' 请问这个存储过程我该怎么写? 

解决方案 »

  1.   


    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;应该是这样写的吧!你试一试!