declare
t number(5);
f number(5);
strsql varchar2(200);
str_ta varchar2(200);
str_seq varchar2(200);
begin
strsql:='insert into';
str_seq:=' create sequence seq_student increment by 1 start with 0 nomaxvalue minvalue 0';
execute immediate str_seq;
str_ta:='create table student(sid number(5),code varchar2(200),birthday date ,sex varchar2(200), address varchar2(200))';
execute immediate str_ta;
commit;
for i in 1..10
loop
select mod(i,2) into f from dual;
if f=1 then
strsql:='insert into student(sid,code,birthday,sex,address)values (seq_student.nextval,''student'||i||''',sysdate - 10*'||i||',''女'',''随便取'')';
else
strsql:='insert into student(sid,code,birthday,sex,address)values (seq_student.nextval,''student'||i||''',sysdate - 10*'||i||',''男'',''随便取'')';
end if;
execute immediate strsql;
end loop;
end;我想在判断男女的地方不用select,加if,改的简洁些,
像 decode(sex,mod(i,2), o ,'男',1,'女')
能有更好的办法请写详细点,刚刚开始学,很多不懂。
t number(5);
f number(5);
strsql varchar2(200);
str_ta varchar2(200);
str_seq varchar2(200);
begin
strsql:='insert into';
str_seq:=' create sequence seq_student increment by 1 start with 0 nomaxvalue minvalue 0';
execute immediate str_seq;
str_ta:='create table student(sid number(5),code varchar2(200),birthday date ,sex varchar2(200), address varchar2(200))';
execute immediate str_ta;
commit;
for i in 1..10
loop
select mod(i,2) into f from dual;
if f=1 then
strsql:='insert into student(sid,code,birthday,sex,address)values (seq_student.nextval,''student'||i||''',sysdate - 10*'||i||',''女'',''随便取'')';
else
strsql:='insert into student(sid,code,birthday,sex,address)values (seq_student.nextval,''student'||i||''',sysdate - 10*'||i||',''男'',''随便取'')';
end if;
execute immediate strsql;
end loop;
end;我想在判断男女的地方不用select,加if,改的简洁些,
像 decode(sex,mod(i,2), o ,'男',1,'女')
能有更好的办法请写详细点,刚刚开始学,很多不懂。
解决方案 »
- DOS命令窗口下SQL连接,协议适配器错误
- 含有lob,如何在INTERVAL分区中将lob和data分开循环存储?
- oracle 自定义分组
- pro*c sql文最大长度的问题
- 在线急问`急急急急````
- Oracle 10.2.0.1在SuSE Linux 10 ES上使用裸设备建库不成功的问题
- 在Enterprise Manager Console下看不到表的内容
- 在线等待...oracle8i下数据库恢复...谢谢
- Unix下的weblogic7访问Windows2000server下的Oracle的中文字符乱码问题?
- pl/sql中可不可以调用shell命令例如想执行exe文件。
- oracle9i与Win7的兼容性问题
- kettle大量抓取时oracle很慢,怎么解决?
strsql:='insert into student(sid,code,birthday,sex,address)values (seq_student.nextval,''student'||i||''',sysdate - 10*'||i||',''女'',''随便取'')';
else
strsql:='insert into student(sid,code,birthday,sex,address)values (seq_student.nextval,''student'||i||''',sysdate - 10*'||i||',''男'',''随便取'')';
end if;改成 strsql:='insert into student(sid,code,birthday,sex,address)values (seq_student.nextval,''student'||i||''',sysdate - 10*'||i||',
case when mod('||i||',2)=1 then ''男'' else ''女'' end,''随便取'')';
t number(5);
f number(5);
strsql varchar2(200);
str_ta varchar2(200);
str_seq varchar2(200);
begin
strsql:='insert into';
str_seq:=' create sequence seq_student increment by 1 start with 0 nomaxvalue minvalue 0';
execute immediate str_seq;
str_ta:='create table student(sid number(5),code varchar2(200),birthday date ,sex varchar2(200), address varchar2(200))';
execute immediate str_ta;
commit;
strsql:='insert into student(sid,code,birthday,sex,address)values (seq_student.nextval,''student'||i||''',sysdate - 10*'||i||',
case when mod('||i||',2)=1 then ''男'' else ''女'' end,''随便取'')';
execute immediate strsql;
end loop;
end;
t number(5);
f number(5);
strsql varchar2(200);
str_ta varchar2(200);
str_seq varchar2(200);
begin
strsql:='insert into';
str_seq:=' create sequence seq_student increment by 1 start with 0 nomaxvalue minvalue 0';
execute immediate str_seq;
str_ta:='create table student(sid number(5),code varchar2(200),birthday date ,sex varchar2(200), address varchar2(200))';
execute immediate str_ta;
commit;
strsql:='insert into student(sid,code,birthday,sex,address)values (seq_student.nextval,''student'||i||''',sysdate - 10*'||i||',
case when mod('||i||',2)=1 then ''男'' else ''女'' end,''随便取'')';
execute immediate strsql;
commit;
end;