在Oracle中从一个存储过程调用另一个存储过程

3
在Oracle数据库中,
假设有两个存储过程,而存储过程sp1调用另一个存储过程sp2
问题是:
被调用的sp2是否能够访问sp1temp表?
1个回答

4

我猜你的意思是:数据库中有临时表,sp1正在填充该表,sp2能够访问(读取或更改)这些数据吗?

是的,它可以。(当然,前提是sp1在sp2调用之前没有执行“commit”操作。)

Oracle临时表用于在会话或事务期间存储数据。Sp1和sp2都在同一个会话中工作。


@KOMapOB.. 感谢答案...我有一个疑问...如果 sp1 在 sp2 调用之前提交并且临时表具有 on commit preserve rows 子句...在这种情况下...sp2 是否能够访问 sp1 的全局临时表数据? - lowLatency
“保留行”是非常重要的术语。如果您的表具有此子句,则数据将在会话结束后被删除。因此,在sp1中进行“提交”不会删除它,而sp2将能够访问这些数据。 - Vasily Komarov
如果您的表没有这个子句,或者您的表有“ON COMMIT DELETE ROWS”子句,则数据将在“commit”之后被删除,sp2会感到不满意。 - Vasily Komarov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接