需要建立一个很多表的oracle数据库测试一个程序用
以前没接触过OR,现写了一段下面的代码在PL/SQL中执行: declare
str varchar2(200);
begin
for i in 1..200 loop
str:='CREATE TABLE table'||to_char(i)|| ' (col1 VARCHAR2(10));' ;
dbms_output.put_line(str);
dbms_job.run(str);
--EXECUTE IMMEDIATE str;
end loop ;
end;
功能就是想建立一个table1 table2...tablei i能自己设定的表用dbms_job.run(str)打出来后检查str串里的东西存的没错可是一用注释起来的语句提交就错了,因为不是很了解or的语法和机制,所以希望哪位能点拨一下 ,怎么改或是如何实现类似功能谢谢了
以前没接触过OR,现写了一段下面的代码在PL/SQL中执行: declare
str varchar2(200);
begin
for i in 1..200 loop
str:='CREATE TABLE table'||to_char(i)|| ' (col1 VARCHAR2(10));' ;
dbms_output.put_line(str);
dbms_job.run(str);
--EXECUTE IMMEDIATE str;
end loop ;
end;
功能就是想建立一个table1 table2...tablei i能自己设定的表用dbms_job.run(str)打出来后检查str串里的东西存的没错可是一用注释起来的语句提交就错了,因为不是很了解or的语法和机制,所以希望哪位能点拨一下 ,怎么改或是如何实现类似功能谢谢了
下次注意出错信息:表名无效
str:='CREATE TABLE table' ¦ ¦to_char(i) ¦ ¦ ' (col1 VARCHAR2(10));' ; 里面是不需要 ; 的
str:='CREATE TABLE table' ||to_char(i) || ' (col1 VARCHAR2(10))' ;
顺便把完成后的句子给大家分享下,没什么大用就是,能快速建许多表,方便测试程序。
declare
str varchar2(200);
tem varchar2(200);
begin
for i in 1..200 loop ---表数
str:='CREATE TABLE table'||to_char(i)|| ' (姓名 VARCHAR2(20),编号 number(20) PRIMARY KEY,年龄 number(10),出生日期 date)' ;
dbms_output.put_line(str);
EXECUTE IMMEDIATE str;
for j in 1..2000 loop------加表的行数
tem:='INSERT INTO table'||i||' (姓名 ,编号,年龄,出生日期 ) VALUES (''张三'','||j||','||18||','||'''1999-1-1'')';
dbms_output.put_line(tem);
EXECUTE IMMEDIATE tem;
end loop ;
end loop ;
end;