问:关于Oracle数据库,我有以下几个问题想请教:
1、请问为何我们不能再自定义函数中调用一个存储过程呢?
2、请问能不能再触发器内部创建一个表?
答:当然可以在自定义函数中调用存储过程,请参考以下例子:
以下是引用片段:
SQL> create table test_tab (tab_id number);
Table created.
SQL> insert into test_tab values (10);
1 row created.
SQL> insert into test_tab values (20);
1 row created.
SQL> commit;
SQL> create table test_tab_audit (tab_id number, aud_date date);
Table created.
SQL> create or replace procedure test_proc (id number)
2 as
3 begin
4 null;
5 end;
6 /
Procedure created.
SQL> create or replace function test_fn(v_id number)
2 return number
3 as
4 begin
5 test_proc(v_id);
6 return v_id+1;
7 end;