【发布时间】:2014-04-09 09:00:16
【问题描述】:
在早期阶段,我们的系统提供了保存上次使用的自动编号的表(而不是使用序列)。我们现在正在重做系统的客户端解决方案,并且需要“重新发明”如何获取下一个记录号 - 通过 SQL。
客户端应用程序是在 FileMaker 中制作的,数据库仍然驻留在 Oracle 中。挑战在于更新上次使用的自动编号并将其提供给客户端中启动的新记录 - 一次操作。
SELECT 语句可以检索最后使用的数字。
UPDATE 语句可以增加最后使用的数字。
选择和返回数字的函数不允许包含更新语句。
过程可以进行更新,并且可以保留将其返回到 OUT 参数中的新值,但不会将新值返回给客户端 - 除非客户端以某种方式可以从过程中读取 OUT 参数(我不要认为它读取 DBMS_OUTPUT)。
如果该过程继续在客户端准备 INSERT 的表上执行 INSERT,就我所见,插入将不相同。
所以 - 是否有一种语法可以让客户端访问 OUT 值作为包括过程调用的 SQL 语句的结果(也许以某种方式使 OUT 参数引用客户端的新参数)记录 recnr 字段),或者这完全是一条死胡同?
【问题讨论】:
-
Filemaker 不支持显式(多语句)事务吗?从简单的角度来看,这似乎就是您所需要的。
标签: sql oracle stored-procedures plsql filemaker