当前位置: 代码迷 >> Oracle管理 >> Oracle类型的SQL语句有关问题
  详细解决方案

Oracle类型的SQL语句有关问题

热度:56   发布时间:2016-04-24 05:04:50.0
Oracle类型的SQL语句问题
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;
  相关解决方案