首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

pl/sql块异常

2013-12-19 
pl/sql块错误declarev_countoneintbeginselect count(1)into v_countone--`select count(1)from user_tab

pl/sql块错误

declare
    v_countone  int;
    begin
        select count(1)  into v_countone
        --`select count(1)
        from user_tables b
        where b.table_name='SHISHIBIAO' ;
        
       -- end;
        if(v_countone <> 0) then
            execute immediate 'drop table SHISHIBIAO';
        else
        execute immediate 'create table shishibiao
                            (
                            id int not null,
                            subject int not null,
                            begin date,
                            lend date
                            )';
           end if;    
          
           commit;
                   
        --end; 如果执行以上语句能成功
        insert into SHISHIBIAO(id,subject,begin,lend)
        values(1,1,to_date('2013-12-17','yyyy-mm-dd'),to_date('2009-11-11','yyyy-mm-dd'));
        commit;
end;
        --insert into语句和上面的放在一起就出错,查了很久都没弄清错误

[解决办法]
引用:
Quote: 引用:

如果在,你就drop,但没重建~~


declare
    v_countone  int;
    begin
        select count(1)  into v_countone
        --select count(1)
        from user_tables b
        where b.table_name=upper('shishibiao') ;
        
       -- end;
        if(v_countone <> 0) then
            execute immediate 'drop table shishibiao';
        end if;

        /*end;*/
        execute immediate 'create table shishibiao
                            (
                            id int not null,
                            subject int not null,
                            begind date,
                            lend date


                            )';           
           commit;           
        /*end;*/
        insert into shishibiao(id,subject,begind,lend)
        values(1,1,to_date('2013-12-17','yyyy-mm-dd'),to_date('2009-11-11','yyyy-mm-dd'));
        end;



代码改了下,但是还是有问题


你最后insert into 在编译的时候回去检查表是否存在。可以改为:

 execute immediate 'insert into shishibiao(id,subject,begind,lend)
    values(1,1,to_date(''2013-12-17'',''yyyy-mm-dd''),to_date(''2009-11-11'',''yyyy-mm-dd''))';

热点排行