公司项目要从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;