云网站服务器_国内数据云存储_移动云数据库服务器主机-搜集站云

网站空间_富士康企业邮箱_排行榜

小七 141 0

网站空间_富士康企业邮箱_排行榜

这是怎么回事?

这只是一个简短的博客,让我分享一个解决方案,解决你在处理大量数据时遇到的一个常见问题,你无法从数据库中一次读取所有数据。

这是对这些光标的古老诅咒!

旧的方法是使用游标:

问题是,在"做点什么"的时候,如果有一个隐式的数据库提交、提交工作或数据库回滚,你会得到一个无效的游标转储DBSQL\u invalid\u cursor.

BI提取器经常以这种方式使用游标–提供的示例函数模块表明了这一点。我发现您可以在这样一个提取器中使用CALL函数启动新任务来实现并行处理,而且它可以工作。但是在RSA3中进行测试时会出现转储,因为有某种类型的提交正在进行。

阅读opencursor的帮助,会有一些操作提示。帮助说:

现代诅咒这些诅咒

所以这给了我一个提示。现代的(我可能指的是1995年以后的什么)从数据库中读取大量数据的方法是使用类似于:

现在,如果在"做某事"中发生提交,您将得到一个无效的游标转储—这次是SAPSQL\usqls\usinvalid\uscursor。我还没有找到任何文件能准确解释你什么时候会有这些垃圾。如果提交工作是在"do something"中,那么您肯定会这样做,如果存在隐式数据库提交,那么也会这样做。

所有事物的基本互连性

还记得上面关键字help中的提示吗?第二段谈到了附加连接。

我正在开发一个解决方案,提取大量数据并通过代理发送给PI。问题是,云主机,代理调用导致SASQL\u SQLS\u无效\u游标转储。我突然想到代理调用一定是在进行某种类型的提交(隐式或其他方式)。

我读了一些关于连接之后会发生什么的内容。通常(或经常?)您可以使用它连接到DBCON中定义的辅助数据库。但是如果你说的是连接r/3*matt,那么这将创建到普通数据库服务器的第二个连接。重要的是r/3*——星号后面的内容指定了一个唯一的连接。随便你怎么称呼它。

所以现在我们有:

在最后的怒火中倒下

是的!现在我的光标被保护了。或者我想…

你看,在我调用代理之后,商城建站系统,我真的很想做一个数据库提交。所以我在通话后添加了提交工作…嘿,presto–转储又回来了。

我有了另一个想法并阅读了提交文档。这个命令提交连接有一个版本。如您所料,它用于在指定的连接上提交数据库操作。问题是我想要在标准数据库上提交。

在OPEN CURSOR的帮助中,我可以使用FM DB\u commit,但是仔细查看提交连接的文档可以发现我可以简单地使用提交连接默认值。

问题解决了,大数据分析培训机构,大家都很高兴。或者我是这么想的…

诅咒所有条目

我现在发现正在提取的数据对所有条目都有一个select using。在BSEG上。选择…包裹大小的帮助是:

哦,企业内部软件,天哪。幸运的是,在我正在使用的系统上,折扣返利,BSEG是一个透明的表,因此我们可以将select作为内部联接进行修改。但这是另一天的故事。

RTFM*

我想说的一点是,最近在问题中,我看到大量的问题可以通过阅读文档,特别是ABAP关键字文档轻松解决。我在ABAP发展了20年。你看到我还在看文件吗?这里面没有羞耻。新手-请尝试一下。你可能会学到一些精彩的东西!