string strSql = "INSERT INTO _TableName(ID,MYNAME) VALUES (:ID,:MYNAME); select max(ID) from _TableName";
这个SQL只能执行其中的一个,要么就添加、要么就查询,直接执行这条SQL就不行,无法识别;。SqlServer是可以的,请问Oracle的该怎么写?
------解决方案--------------------
两个语句一起执行只能写个过程,
但是过程里面不能直接select xxx from yyy,必须select xxx into zzz from yyy;
例如:
- SQL code
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.
------解决方案--------------------
declare
v_id number(2);
v_name varchar2(3);
v_sql varchar2(256);
begin
select 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;