PeopleSoft App Engine SQL步骤/操作中的SQL文本是否有大小限制?

时间:2009-11-16 01:36:50

标签: sql peoplesoft peoplesoft-app-engine

我收到以下错误:AeSymResolveStatement [775] ...语句(108,512)中位置34338处或附近的元SQL错误。 SQL语句本身超过40,000个字符,因此问题。

数据库是oracle。在工具8.49.24上运行。

4 个答案:

答案 0 :(得分:2)

我知道应用程序引擎中使用的SQL的大小有限(SQL步骤)。我曾尝试在应用程序引擎中使用异常长的SQL时收到类似的错误。

如果同样的限制适用于SQL对象,我不会感到惊讶。

为了解决这个问题,我能够将SQL拆分为2(是一个更新语句)。希望你的情况也是可能的。

答案 1 :(得分:1)

没有这样的限制。

您可以通过创建如下的SQL来自行确认:

select 'x' from PS_INSTALLATION where 
      1 = 1 and 
      1 = 1 and
      1 = 1 and
      1 = 1 and
      /* ... copy paste '1 = 1 and' 90000 times or so times more */
      1 = 1

虽然它使得pside很慢,但它可以保存和验证。

答案 2 :(得分:1)

PeopleCode中存在限制,主要是由于字符串长度的限制,但我从未发现存储的SQL语句的限制。

答案 3 :(得分:0)

就个人而言,我会考虑以某种方式将声明分成几部分。

你可以:

  • 使用App Engines的内置循环机制
  • 混合使用SQL和PeopleCode
  • 使用临时表并执行中间SQL,存储在临时表中

除了给你的数据库一个心脏病发作,而不是在他看到SQL监视器中的语句时提及DBA。如果你不得不再次看一下这句话,你就是在拯救自己一个痛苦的世界。

我认为App Engines中的SQL存储为long,因此在Oracle下它将是4GB,在DB2下也是如此。