日期:2014-05-17  浏览次数:20855 次

mysql-->oracle求助
公司项目要从mysql到oracle 小弟初学 oracle 很多地方还不是很了解尤其是函数

BEGIN
create temporary table if not exists tmp_table (id number(20));
SET@@max_sp_recursion_depth=99;
call iterative(iid,layer);
select * from tmp_table;
drop temporary table if exists tmp_table;
END
这是mysql 里的函数一段代码 函数名 findLChild 大神帮下转下oracle 函数语法格式的函数 谢谢了!! 学习下 小弟就能举一反三了
------解决方案--------------------

create or replace function findLChild RETURN NUMBER AS
 v_num number;
  max_sp_recursion_depth VARCHAR2(20);
begin
  select count(*) into v_num from tabs where table_name = 'tmp_table';
  if v_num > 0 THEN
     EXECUTE IMMEDIATE('create table tmp_table(id number)');
  END IF;
  max_sp_recursion_depth := 99 ;
 -- 如果是调用存储过程直接写存储过程名称,不需要call关键字  iterative(iid, layer);
  --select * from tmp_table;
  select count(*) into v_num from tabs where table_name = 'tmp_table';
  IF v_num < 0 THEN
     EXECUTE IMMEDIATE('DROP tmp_table');
  END IF;
end findLChild;