create or replace procedure PROC_DEMO_CURRENT_FLAG(OLD_CORP_EMS_NO varchar2,OLD_MODIFYTIMES integer) IS begin declare I_temp integer; V_OLD_CORP_EMS_NO varchar2(6); I_OLD_MODIFYTIMES integer;
begin V_OLD_CORP_EMS_NO := OLD_CORP_EMS_NO; I_OLD_MODIFYTIMES := OLD_MODIFYTIMES - 1; select count(*) into I_temp from T_DEMO_HEAD where T_DEMO_HEAD.CORP_EMS_NO=V_OLD_CORP_EMS_NO and T_DEMO_HEAD.MODIFY_TIMES=I_OLD_MODIFYTIMES; end;
exception when NO_DATA_FOUND then dbms_output.put_line('不能修改当前标记'); when others then dbms_output.put_line('错误号' ¦ ¦SQLCODE); end PROC_DEMO_CURRENT_FLAG; /
3楼把答案说了..... 楼主会写动态语句不给你个例子好了 . 记得给分! create or replace function Noinsert(v_a5 varchar,v_a6 varchar,v_a7 varchar ) return integer is Result integer; str varchar2(500); N_COUNT varchar2(10); begin
str:= 'select count(* ) from sokutei where DayHour='||v_a5||' and X_Messyu='||v_a6||' and Y_Messyu='||v_a7||''; execute immediate str into N_COUNT ; IF N_COUNT = 0 THEN RETURN 0; else RETURN 1; END IF;
end Noinsert;
存储过程中不能用 select * 要 select 字段 into 变量 where xx=parm;你的格式不对 如果想返回整个select * 的结果 ,可以使用ref 游标,然后再开发语言中还要再定义一个cursor来接受,才能能够使用
IS
begin
declare
I_temp integer;
V_OLD_CORP_EMS_NO varchar2(6);
I_OLD_MODIFYTIMES integer;
begin
V_OLD_CORP_EMS_NO := OLD_CORP_EMS_NO;
I_OLD_MODIFYTIMES := OLD_MODIFYTIMES - 1;
select count(*) into I_temp from T_DEMO_HEAD
where T_DEMO_HEAD.CORP_EMS_NO=V_OLD_CORP_EMS_NO and T_DEMO_HEAD.MODIFY_TIMES=I_OLD_MODIFYTIMES;
end;
exception
when NO_DATA_FOUND then
dbms_output.put_line('不能修改当前标记');
when others then
dbms_output.put_line('错误号' ¦ ¦SQLCODE);
end PROC_DEMO_CURRENT_FLAG;
/
select *
要select 字段
into
变量 你的格式不对
oracle的存储过程跟sqlserver的过程有点区别,就是不能简单使用select,你的问题我觉得可以使用动态语句执行,如果非要使用存储过程,恐怕你只能将获取的内容写入游标或者索引表中,
那个东西挺爽!!
create or replace function Noinsert(v_a5 varchar,v_a6 varchar,v_a7 varchar ) return integer is
Result integer;
str varchar2(500);
N_COUNT varchar2(10);
begin
str:= 'select count(* ) from sokutei where DayHour='||v_a5||' and X_Messyu='||v_a6||' and Y_Messyu='||v_a7||'';
execute immediate str into N_COUNT ;
IF N_COUNT = 0 THEN
RETURN 0;
else
RETURN 1;
END IF;
end Noinsert;
select *
要 select 字段
into
变量 where xx=parm;你的格式不对
如果想返回整个select * 的结果 ,可以使用ref 游标,然后再开发语言中还要再定义一个cursor来接受,才能能够使用