整体思路:通过使用外部表将用户名导入Oracle的表中,然后通过PL/SQL遍历数据表,批量创建用户。

具体步骤如下:

1、在安装数据库的服务器的C盘根目录创建一个User List.txt文件,内容如下:

2、以sys用户登录数据库,创建directory对象。

create directory test_d as 'c:\';

3、给scott用户赋予读写directory对象的权限;

grant read, write on directory test_d to scott;

4、切换到scott用户,创建外部表,并关联到c盘根目录下的User List.txt文件

SQL> show user;
User is "scott"

create table t_ex_user
(
uname VARCHAR2(100)
)
organization external
(
type oracle_loader
default directory test_d
location ('User List.txt')
)
reject limit unlimited;

5、检查一下t_ex_user表中是否有内容

SQL> select * from t_ex_user;

UNAME
--------------------------------------------------------------------------------
user1
user2
user3
user4

6、切换回sys用户批量建立用户

begin
for us in (select uname from scott.t_ex_user) loop
dbms_output.put_line(us.uname);
execute immediate 'create user ' || us.uname || ' identified by ' ||
us.uname;
end loop;
end;
/

7、查看用户是否成功创建

SQL> select * from dba_users where username like '%USER%';

USERNAME                          USER_ID PASSWORD                       ACCOUNT_STATUS                   LOCK_DATE   EXPIRY_DATE DEFAULT_TABLESPACE             TEMPORARY_TABLESPACE           CREATED     PROFILE   ...
------------------------------ ---------- ------------------------------ -------------------------------- ----------- ----------- ------------------------------ ------------------------------ ----------- ----------------------
USER3 102 OPEN 2018-02-26 USERS TEMP 2017-08-30 DEFAULT ...
USER1 100 OPEN 2018-02-26 USERS TEMP 2017-08-30 DEFAULT ...
USER4 103 OPEN 2018-02-26 USERS TEMP 2017-08-30 DEFAULT ...
USER2 101 OPEN 2018-02-26 USERS TEMP 2017-08-30 DEFAULT ...
  

注意事项:

1、本文用的测试文件在安装数据库的服务器上,开始我把文件放到了PL/SQL Developer所在的机器上,报以下错误。是否可以用远程文件需要再研究。

ORA-29913: 执行 ODCIEXTTABLEOPEN 调出时出错
ORA-29400: 数据插件错误打开文件 d:\T_EX_USER_1240_2936.log 时出错
ORA-06512: 在 line 2

2、文件应该支持txt、csv,开始用xlsx不行。。。

3、其实用UltraEdit的列编辑整理一下最方便。。。

Oracle使用外部表批量创建用户的更多相关文章

  1. Oracle基础--创建临时表空间/表空间/创建用户/授权

    总结:创建用户一般分四步: 第一步:创建临时表空间(创建用户之前要创建"临时表空间",若不创建则默认的临时表空间为temp.) SQL> CREATE TEMPORARY T ...

  2. Oracle起步---创建临时表空间/表空间/创建用户/授权

    1. 安装: 百度一下你就知道 2. sqlplus登录/sqlplus命令登录 在安装Oracle时,你需要记住设置的“全局数据库名”(默认为orcl) 和 口令,在以两种方式登录时: 用户名: s ...

  3. Oracle的外部表

    一.外部表特性 数据文件位于操作系统之外,并且具有一定的格式分割的文本文件或其他类型文件.ORACLE的外部表通过SQL的形式访问数据文件中的数据,数据并不需要加载到数据库中且数据是可读的,所以不用D ...

  4. Oracle 之 外部表

    一.外部表概述 外部表只能在Oracle 9i 之后来使用.简单地说,外部表,是指不存在于数据库中的表. 通过向Oracle 提供描述外部表的元数据,我们可以把一个操作系统文件当成一个只读的数 据库表 ...

  5. [工具] 分布式系统下批量创建用户及分发公钥打通ssh通道的脚本

    在分布式系统下偶尔会有这样的需求,要增加一个服务时,需要在集群的所有节点上创建同一个用户,然后打通ssh通道,再分发软件包.配置.执行命令.启动服务... 这个问题的根源是如何集中配置和管理系统,专业 ...

  6. salt进程查看插件&salt批量创建用户

    接受key 剔除主机   启动 salt-minion-d     软件包的安装   salt '*' state.sls init.env-init test=true   salt批量创建用户: ...

  7. SERVER 2012 R2 core域环境下批量创建用户

      Write by xiaoyang 转载请注明出处 步骤一:创建域 基本配置 1.         输入命令进入配置 2.         输入8进入网络配置 3.         选择要配置的网 ...

  8. windows批量创建用户

    一.建立用户的命令行语法: 建立用户:net  user  用户名  密码  /add           (如:net user test 123 /add)  提升权限:net  localgro ...

  9. shell脚本实例-实现监控tcp的链接状态另一种方式批量创建用户

    Array实现TCP的链接状态 #!/usr/bin/bash declare -A status type=`ss -an | grep :80|awk '{print $2}'` for i in ...

随机推荐

  1. css引用与html语义化

    一.CSS引用1. 使用外部样式表:    CSS代码在一个独立的文件中,HTML通过link元素引入到页面 格式:link + tab键<link rel="stylesheet&q ...

  2. NGINX 502错误排查(转)

    一.NGINX 502错误排查 NGINX 502 Bad Gateway错误是FastCGI有问题,造成NGINX 502错误的可能性比较多.将网上找到的一些和502 Bad Gateway错误有关 ...

  3. pytest自动化7:assert断言

    前言:assert断言就是将实际结果和期望结果做对比,符合预期结果就测试pass,不符合预期就测试failed. 实例1:简单断言 实例1优化版--增加异常信息文字描述 异常断言 excinfo 是一 ...

  4. oracle 同义词synonym

    在A用户下,想访问B用户下的表,一遍需要用 “用户名.表名 ”的格式进行访问.如果想不加用户名,直接访问,需要建同义词. 同义词语法如下: CREATE [PUBLIC] SYNONYM synony ...

  5. selenium中的上传文件

    # 上传文件driver.find_element_by_xpath("//input[@value='上传文件']").send_keys(r"C:\Users\YKD ...

  6. 【亲测】Asp.net Mvc5 + EF6 code first 方式连接MySQL总结

    本文原文地址为:https://www.cnblogs.com/summit7ca/p/5423637.html 原文测试环境为windows 8.1+Vs2013+MySql5.7.12 本人在wi ...

  7. Beta冲刺 4

    前言 队名:拖鞋旅游队 组长博客:https://www.cnblogs.com/Sulumer/p/10123035.html 作业博客:https://edu.cnblogs.com/campus ...

  8. react-native-scrollable-tab-view 中嵌套了react-native-swiper产生的bug

    前段时间用RN的时候遇到过这个问题用scrollable-tab-view(scrollableView)这个组件然后嵌套轮播swiper会出现,在scrollableView  nitialPage ...

  9. CentOS7的网卡重启方法

    1.centos6的网卡重启方法:service network restartcentos7的网卡重启方法:systemctl restart network 2.DNS配置文件:cat /etc/ ...

  10. springboot +mybatis 搭建完整项目

    springboot + mybatis搭建完整项目 1.springboot整合mybatis注解版 转:https://blog.csdn.net/u013187139/article/detai ...