string strSql = "INSERT INTO _TableName(ID,MYNAME) VALUES (:ID,:MYNAME); select max(ID) from _TableName";
这个SQL只能执行其中的一个,要么就添加、要么就查询,直接执行这条SQL就不行,无法识别;。SqlServer是可以的,请问Oracle的该怎么写?

解决方案 »

  1.   

    两个语句一起执行只能写个过程,
    但是过程里面不能直接select xxx from yyy,必须select xxx into zzz from yyy;例如:tony@ORCL1> create table tmp(id int, val int);Table created.tony@ORCL1> declare v int; begin insert into tmp values(1,1); select max(val) into v from tmp; end;
      2  /PL/SQL procedure successfully completed.
      

  2.   

    declare 
      v_id number(2);
      v_name varchar2(3);
      v_sql varchar2(256);
    beginselect max(ID) into v_id from TableName;v_name := 'xxx';v_sql := 'insert into TableName(ID,MYNAME) values (:1,:2)';
    execute immediate v_sql using v_id,v_name;
    commit;
    end;