0

我有一个访问 Oracle 12 数据库的 ASP.NET 应用程序。我已经使用全局临时表编写了一个存储过程来提供帮助。

全局临时表是使用“ON COMMIT DELETE ROWS”创建的。

基本上,存储过程执行以下操作:

  • 获取一些数据。添加一个字符列。插入到全局临时表。
  • 使用一个键(在每一行中)调用另一个存储过程。
  • 存储过程返回“Y”或“N”。
  • 返回值将更新到全局临时表中的相应行。
  • 完成所有行后,返回如下:open refcursor for select * from global_temp_table

我测试存储过程。它工作正常。

然后我在我的 ASP.NET 项目中,在 Web 服务 (asmx) 中添加另一个函数。我试图参与其中,但它说:“找不到对象”。

我已经阅读了一些帖子并说更改为“ON COMMIT PRESERVE ROWS”。我不想留下数据。有没有办法解决这个问题?我已经搜索了一段时间。

[编辑] 其他队友在数据库中添加了许多其他存储过程。他们不必授予它任何权利。从 Web 服务调用时,存储过程正确执行。当然,他们的 sp 不使用全局临时表。

我已经在网上搜索过。我在那里看到过类似的帖子。在 ASP.NET 中使用全局临时表调用 Oracle 存储过程将显示相同的错误 - 找不到对象。

无论如何,我已经找到了一条路。那就是使用 WITH 子句。这是一个参考链接:https ://oracle-base.com/articles/misc/with-clause

[/编辑]

4

0 回答 0