在Oracle的存储过程中,如果涉及到操作不同schema下的对象的时候,可以在不同的schema下写相同的procedure,但这样带来的问题是维护和同步带来了麻烦,可以在procedure中加上authid current_user,来说明procedure中操作的对象是当前连接用户的对象而并不是procedure所属用户下的对象。
create or replace PROCEDURE sp_tmp_test(NAME IN VARCHAR2, ages IN INT)
authid current_userasv_num INT; .....即可。这样的过程只能执行一次,下次执行除非把临时表删了,否则就不能再执行了。