2009-11-16 40 views

回答

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 

虽然它使p侧相当缓慢,这保存和验证就好了。

1

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

2

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

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

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

0

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

,你可以:

  • 使用App引擎的内在循环机制
  • 使用SQL的混合物的PeopleCode
  • 使用临时表并执行中间SQLS,在临时表中存储

除了给你的数据库一个心脏癫痫发作之外,当他看到SQL监视器中的语句时不提及DBA。如果你再次看到这个陈述,那么你正在拯救自己一个痛苦的世界。

我认为App Engines中的SQL存储为long,所以在Oracle下是4GB,在DB2下是类似的。