Thread: Nested funtion
Hi
Is there any way to create nested function?
oracle to postgres migration required super function variable reference into nested function without nested function parameter
Oracle sample:
-------------------------------
create or replace function f1(n number) return number
is
vs number:=1;
function nf1(m number) return number is
begin
return vs + m + n;
end;
begin
return nf1(2);
end;
/
run:
--------
SQL> select f1(9) from dual;
F1(9)
----------
12
Thanks
Sridhar BN
Hi
2016-03-28 6:14 GMT+02:00 Sridhar N Bamandlapally <sridhar.bn1@gmail.com>:
HiIs there any way to create nested function?
Some languages supports this feature, like plv8, but plpgsql doesn't support it,
You have to use two function and some implementation of session variables.
Regards
Pavel
oracle to postgres migration required super function variable reference into nested function without nested function parameterOracle sample:-------------------------------create or replace function f1(n number) return numberisvs number:=1;function nf1(m number) return number isbeginreturn vs + m + n;end;beginreturn nf1(2);end;/run:--------SQL> select f1(9) from dual;F1(9)----------12ThanksSridhar BN
HiIs there any way to create nested function?oracle to postgres migration required super function variable reference into nested function without nested function parameterOracle sample:-------------------------------create or replace function f1(n number) return numberisvs number:=1;function nf1(m number) return number isbeginreturn vs + m + n;end;beginreturn nf1(2);end;/run:--------SQL> select f1(9) from dual;F1(9)----------12
PostgreSQL's pl/pgsql langauge doesn't grok closures. You are welcome to write "f1" in a language that does. Perl and Python are built-in and many others are available. I assume at least one of them can do this.
David J.