我觉得不存在批量这个概念, createtable.sql create table1 ( id number(10) not null, name varchar2(20) ) / create table4 ( id number(10) not null, name varchar2(20) ) / create table3 ( id number(10) not null, name varchar2(20) ) / create table2 ( id number(10) not null, name varchar2(20) ) /然后在执行此命令文件就可以了, 我觉得这个能算批量吗?
建一个过程,用本地动态SQL创建表,用循环形式。create or replace procedure name_pro() begin for v_num in 1...n loop v_sql:='CREATE TABLE execute_table'||v_num||' (col1 VARCHAR(10))' EXECUTE IMMEDIATE v_sql; end loop end;
在sqlplus下执行下面语句:c:\test.log中有你创建表的代码 set serveroutput on SET TERMOUT OFF SET ECHO OFF spool c:\test.log declare i integer; begin
dbms_output.enable(1000000); for i in 1..10 loop dbms_output.put_line('create table table'||to_char(i)||';'); end loop; end; / spool off;
调用SQL WorkSheet,把 create table1 ( id number(10) not null, name varchar2(20) ) / create table4 ( id number(10) not null, name varchar2(20) ) / create table3 ( id number(10) not null, name varchar2(20) ) / create table2 ( id number(10) not null, name varchar2(20) )语句写商并且保存,以后每次可以用SQL WorkSheet直接读取这个SQL文件, 执行就可以了(不过每次建的都是一样的)
createtable.sql
create table1
(
id number(10) not null,
name varchar2(20)
)
/
create table4
(
id number(10) not null,
name varchar2(20)
)
/
create table3
(
id number(10) not null,
name varchar2(20)
)
/
create table2
(
id number(10) not null,
name varchar2(20)
)
/然后在执行此命令文件就可以了,
我觉得这个能算批量吗?
begin
for v_num in 1...n loop
v_sql:='CREATE TABLE execute_table'||v_num||' (col1 VARCHAR(10))'
EXECUTE IMMEDIATE v_sql;
end loop
end;
在Oracle没有批量建表的概念(包括类似的功能)用存储过程只产生相同或相似的表,没在太大的实用功能(个人意见)
beckhambobo(beckham)的方法是高效,不过小心管理员杀了你!
set serveroutput on
SET TERMOUT OFF
SET ECHO OFF
spool c:\test.log
declare i integer;
begin
dbms_output.enable(1000000);
for i in 1..10 loop
dbms_output.put_line('create table table'||to_char(i)||';');
end loop;
end;
/
spool off;
create table1
(
id number(10) not null,
name varchar2(20)
)
/
create table4
(
id number(10) not null,
name varchar2(20)
)
/
create table3
(
id number(10) not null,
name varchar2(20)
)
/
create table2
(
id number(10) not null,
name varchar2(20)
)语句写商并且保存,以后每次可以用SQL WorkSheet直接读取这个SQL文件,
执行就可以了(不过每次建的都是一样的)
用工具,如powerdesigner