ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

»ùÓÚORACLEÊý¾Ý¿âµÄÑ­»·½¨±í¼°Ñ­»·´´½¨´æ´¢¹ý³ÌµÄSQLÓï¾äʵÏÖ(Èý)
2015-07-24 10:57:30 À´Ô´: ×÷Õß: ¡¾´ó ÖРС¡¿ ä¯ÀÀ:4´Î
Tags£º»ùÓÚ ORACLE Êý¾Ý¿â Ñ­»· ´´½¨ ´æ´¢ ¹ý³Ì SQL Óï¾ä ʵÏÖ
eno is already in DB begin return; end; else -- the employeeno is not in DB begin insert into tb_employeeinfo5(employeeno, employeeage) values(v_employeeno, v_employeeage); end; end if; end; elsif v_tableindex = '6' then begin select count(*) into v_employeecnt from tb_employeeinfo6 where employeeno = v_employeeno; if v_employeecnt > 0 then -- the employeeno is already in DB begin return; end; else -- the employeeno is not in DB begin insert into tb_employeeinfo6(employeeno, employeeage) values(v_employeeno, v_employeeage); end; end if; end; elsif v_tableindex = '7' then begin select count(*) into v_employeecnt from tb_employeeinfo7 where employeeno = v_employeeno; if v_employeecnt > 0 then -- the employeeno is already in DB begin return; end; else -- the employeeno is not in DB begin insert into tb_employeeinfo7(employeeno, employeeage) values(v_employeeno, v_employeeage); end; end if; end; elsif v_tableindex = '8' then begin select count(*) into v_employeecnt from tb_employeeinfo8 where employeeno = v_employeeno; if v_employeecnt > 0 then -- the employeeno is already in DB begin return; end; else -- the employeeno is not in DB begin insert into tb_employeeinfo8(employeeno, employeeage) values(v_employeeno, v_employeeage); end; end if; end; elsif v_tableindex = '9' then begin select count(*) into v_employeecnt from tb_employeeinfo9 where employeeno = v_employeeno; if v_employeecnt > 0 then -- the employeeno is already in DB begin return; end; else -- the employeeno is not in DB begin insert into tb_employeeinfo9(employeeno, employeeage) values(v_employeeno, v_employeeage); end; end if; end; end if; commit; exception when others then begin rollback; return; end; end; / prompt 'create procedure pr_insertdata ok'

Èý¡¢Ñ­»·´´½¨µÄʵÏÖ·½Ê½
ÔÚ¸ÃʵÏÖ·½Ê½ÖУ¬ÎÒÃDzÉÓÃÑ­»·µÄ·½·¨½¨Á¢Ô±¹¤ÐÅÏ¢±í¼°´æ´¢¹ý³Ì¡£¾ßÌåSQLÓï¾äÈçÏ£º
½¨±íÓï¾ä£º

-- tb_employeeinfo0~9 begin declare i int;tmpcount int;tbname varchar2(50);strsql varchar2(1000); begin i:=0; while i<10 loop begin tbname := 'tb_employeeinfo'||to_char(i); i := i+1; select count(1) into tmpcount from user_tables where table_name = Upper(tbname); if tmpcount>0 then begin execute immediate 'drop table '||tbname; commit; end; end if; strsql := 'create table '||tbname|| '( employeeno varchar2(10) not null, -- employee number employeeage int not null -- employee age )'; execute immediate strsql; strsql := 'begin execute immediate ''drop index idx1_'||tbname || ' ''' || ';exception when others then null; end;'; execute immediate strsql; execute immediate 'create unique index idx1_'||tbname||' on '||tbname||'(employeeno)'; end; end loop; end; end; /

´æ´¢¹ý³Ì´´½¨Óï¾ä£º

begin declare v_i int;v_procname varchar(50);v_employeeinfotbl varchar(50);strsql varchar(4000); begin v_i := 0; while v_i < 10 loop v_procname := 'pr_insertdata'||substr(to_char(v_i),1,1); v_employeeinfotbl := 'tb_employeeinfo'||substr(to_char(v_i),1,1); v_i := v_i + 1; strsql := 'create or replace procedure '||v_procname||'( v_employeeno in varchar2, v_employeeage in int ) as v_employeecnt int; begin select count(*) into v_employeecnt from '||v_employeeinfotbl||' where employeeno = v_employeeno; if v_employeecnt > 0 then -- the employeeno is already in DB begin return; end; else -- the employeeno is not in DB begin insert into '||v_employeeinfotbl||'(employeeno, employeeage) values(v_employeeno, v_employeeage); end; end if; commit; exception when others then begin rollback; return; end; end;'; execute immediate strsql; end loop; end; end; /

ËÄ¡¢×ܽá
µ±ÏàͬÀàÐ͵ıíµÄ¸öÊý½Ï¶àʱ(ÈçÓÐÉϰٸö)£¬ÏÔÈ»ÓÃÑ­»·´´½¨µÄʵÏÖ·½Ê½¿ÉÒÔ½ÚÔ¼´óÁ¿µÄ¹¤×÷ʱ¼ä£¬Ìá¸ß¹¤×÷ЧÂÊ¡£µ«ÊÇ£¬ÔÚʹÓø÷½·¨µÄʱºò£¬ÒªÌرð×Ðϸ£¬ÓÈÆäҪעÒâµ¥ÒýºÅµÄʹÓ㬱ÜÃâΪÁËʡʶøÒýÈë´úÂëÂß¼­ÎÊÌâ¡£

Ê×Ò³ ÉÏÒ»Ò³ 1 2 3 ÏÂÒ»Ò³ βҳ 3/3/3
¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
·ÖÏíµ½: 
ÉÏһƪ£ºÊý¾Ý¿â¸´Ï°3¨D¨DÊý¾Ý¿âÍêÕûÐÔ ÏÂһƪ£ºOracle¿ç¿â²éѯ¸´ÖƱíÊý¾Ý·Ö²¼Ê½..

ÆÀÂÛ

ÕÊ¡¡¡¡ºÅ: ÃÜÂë: (ÐÂÓû§×¢²á)
Ñé Ö¤ Âë:
±í¡¡¡¡Çé:
ÄÚ¡¡¡¡ÈÝ:

¡¤Linuxϵͳ¼ò½é (2025-12-25 21:55:25)
¡¤Linux°²×°MySQL¹ý³Ì (2025-12-25 21:55:22)
¡¤Linuxϵͳ°²×°½Ì³Ì£¨ (2025-12-25 21:55:20)
¡¤HTTP Åc HTTPS µÄ²î„ (2025-12-25 21:19:45)
¡¤ÍøÕ¾°²È«±ØÐ޿ΣºÍ¼ (2025-12-25 21:19:42)