关于多用户创建相同表实现shell

关于多用户批量创建同样表shell解决方法
开发给的脚本事例
[oracle@OLEASM1 scripts]$ cat createaalltable.sql
--create table all
create table showlist
(id int primary key,name varchar2(50),url varchar2(50));
create table userlist
(id int primary key,uid varchar2(20),user_name varchar(50));
create table sales
(id int primary key,unit_price float not null,amount float not null,amounts float);

user.list 文件我取dba_user几个用户
SQL> select * from (select username from dba_users order by created desc) m where rownum<6;

USERNAME
------------------------------
ZNJKTEST
ZNJKTEST01
ZNJK
TEST1
TEST

[oracle@OLEASM1 scripts]$ cat user.list
ZNJKTEST
ZNJKTEST01
ZNJK
TEST1
TEST


[oracle@OLEASM1 scripts]$ for user in `cat user.list`; do cat createaalltable.sql|sed 's/table /&'$user'./'; done;
--create table ZNJKTEST.all
create table ZNJKTEST.showlist
(id int primary key,name varchar2(50),url varchar2(50));
create table ZNJKTEST.userlist
(id int primary key,uid varchar2(20),user_name varchar(50));
create table ZNJKTEST.sales
(id int primary key,unit_price float not null,amount float not null,amounts float);
--create table ZNJKTEST01.all
create table ZNJKTEST01.showlist
(id int primary key,name varchar2(50),url varchar2(50));
create table ZNJKTEST01.userlist
(id int primary key,uid varchar2(20),user_name varchar(50));
create table ZNJKTEST01.sales
(id int primary key,unit_price float not null,amount float not null,amounts float);
--create table ZNJK.all
create table ZNJK.showlist
(id int primary key,name varchar2(50),url varchar2(50));
create table ZNJK.userlist
(id int primary key,uid varchar2(20),user_name varchar(50));
create table ZNJK.sales
(id int primary key,unit_price float not null,amount float not null,amounts float);
--create table TEST1.all
create table TEST1.showlist
(id int primary key,name varchar2(50),url varchar2(50));
create table TEST1.userlist
(id int primary key,uids varchar2(20),user_name varchar(50));
create table TEST1.sales
(id int primary key,unit_price float not null,amount float not null,amounts float);
--create table TEST.all
create table TEST.showlist
(id int primary key,name varchar2(50),url varchar2(50));
create table TEST.userlist
(id int primary key,uids varchar2(20),user_name varchar(50));
create table TEST.sales
(id int primary key,unit_price float not null,amount float not null,amounts float);

这样就生成了我们要的语句了可以将这些语句保存到一个sql文件
for user in `cat user.list`; do cat createaalltable.sql|sed 's/table /&'$user'./'>>createtable.sql; done;

其实还可以用awk实现

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24486203/viewspace-1736783/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/24486203/viewspace-1736783/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值