我的一條SQL如下:我在.NET中如何得到j的返回值?我不用存儲過程。
declare i number;
j number(10) :=0;
begin
select count(1) into i from TEST_TB where id=1 and TNAME='Sky';
if i=0 then
begin
insert into TEST_TB(id, tname)values(1, 'Sky');
end;
else
j := j+1;
end if;
select count(1) into i from TEST_TB where id=2 and TNAME='Grubby';
if i=0 then
begin
insert into TEST_TB(id, tname)values(2, 'Grubby');
end;
else
j := j+1;
end if;
select count(1) into i from TEST_TB where id=3 and TNAME='Moon';
if i=0 then
begin
insert into TEST_TB(id, tname)values(3, 'Moon');
end;
else
j := j+1;
end if;
end;
declare i number;
j number(10) :=0;
begin
select count(1) into i from TEST_TB where id=1 and TNAME='Sky';
if i=0 then
begin
insert into TEST_TB(id, tname)values(1, 'Sky');
end;
else
j := j+1;
end if;
select count(1) into i from TEST_TB where id=2 and TNAME='Grubby';
if i=0 then
begin
insert into TEST_TB(id, tname)values(2, 'Grubby');
end;
else
j := j+1;
end if;
select count(1) into i from TEST_TB where id=3 and TNAME='Moon';
if i=0 then
begin
insert into TEST_TB(id, tname)values(3, 'Moon');
end;
else
j := j+1;
end if;
end;
而是PL/SQL块,这怎么可能在.net得到返回值
除非.net有执行PL/SQL块的东东
j number(10) :=0;
l_sql varchar2(1000);
begin
select count(1) into i from TEST_TB where id=1 and TNAME='Sky';
if i=0 then
begin
insert into TEST_TB(id, tname)values(1, 'Sky');
end;
else
j := j+1;
end if;
select count(1) into i from TEST_TB where id=2 and TNAME='Grubby';
if i=0 then
begin
insert into TEST_TB(id, tname)values(2, 'Grubby');
end;
else
j := j+1;
end if;
select count(1) into i from TEST_TB where id=3 and TNAME='Moon';
if i=0 then
begin
insert into TEST_TB(id, tname)values(3, 'Moon');
end;
else
j := j+1;
end if;
l_sql :='select '''||j||''''||' from Test_tb';
--DBMS_OUTPUT.PUT_LINE(l_sql);
execute immediate l_sql;
end;.Net中當然有執行的語句
各位達達,這樣行嗎?
还不知道.net里居然也能执行一个PL/SQL块
楼主能不能让我学习一下,告诉怎么做
那就只能改成数个select语句连接来看了!