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

Oracle类型的SQL语句有关问题

2012-09-29 
Oracle类型的SQL语句问题string strSql INSERT INTO _TableName(ID,MYNAME) VALUES (:ID,:MYNAME) sel

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;

热点排行
Bad Request.