比如我要建99个用户,用户名分别是 n001到n099,请问用语句怎么 创建,字符串格式函数怎么写啊,小弟初学才几日,请各位师傅赐教.

解决方案 »

  1.   

    可以利用循环和动态sql建一个过程来完成你的需求,过程如下
    create or replace procedure adduser(p_username varchar2,p_password char,p_tablespace varchar2,p_temptablesp varchar2,p_counter number) as
    v_sql varchar2(300);
    v_username varchar2(50);
    begin
    for v_counter in 1..p_counter loop
    v_username:=p_username||to_char(v_counter,'000');
    v_username:=REPLACE(v_username,' ','');
    v_sql:='create user '||v_username||' identified by '||p_password||' default tablespace '||p_tablespace||' temporary tablespace '||p_temptablesp;
    execute immediate v_sql;
    dbms_output.put_line('user:'||v_username||' already created');
    end loop;
    end adduser;其中p_username是用户名前缀,p_password是密码,p_tablespace是默认表空间,p_temptablesp是默认临时表空间,p_counter是要建立的用户数.
    例:如果这些用户的默认表空间是test,临时表空间是temp
    建立好了,你执行 exec adduser('n','test','temp',99) 就可以了
      

  2.   

    不好意思例子中,用户密码忘了
    例:如果这些用户的默认表空间是test,临时表空间是temp,默认密码是mmmmmm
    建立好了,你执行 exec adduser('n','mmmmmm','test','temp',99) 就可以了