我收到以下错误:AeSymResolveStatement [775] ... 语句 (108,512) 中位置 34338 处或附近的 Meta-SQL 错误。SQL 语句本身的长度超过 40,000 个字符,因此是个问题。
数据库是甲骨文。在工具 8.49.24 上运行。
我收到以下错误:AeSymResolveStatement [775] ... 语句 (108,512) 中位置 34338 处或附近的 Meta-SQL 错误。SQL 语句本身的长度超过 40,000 个字符,因此是个问题。
数据库是甲骨文。在工具 8.49.24 上运行。
我知道在应用程序引擎(SQL 步骤)中使用的 SQL 的大小是有限制的。我曾经在应用程序引擎中尝试使用异常长的 SQL 时收到类似的错误。
如果同样的限制适用于 SQL 对象,我不会感到惊讶。
为了解决这个问题,我能够将 SQL 拆分为 2 个(是一个更新语句)。希望这在您的情况下也是可能的。
没有这样的限制。
您可以通过创建如下 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 很慢,但它可以很好地保存和验证。
PeopleCode 中存在限制,主要是由于字符串长度的限制,但是我从未发现存储 SQL 语句的限制。
就个人而言,我会考虑以某种方式将声明分解成碎片。
你可以:
除了让您的数据库心脏病发作之外,当 DBA 在 SQL 监视器中看到该语句时,更别提他了。如果您不得不再次查看该声明,您正在为自己节省一个痛苦的世界。
我认为 App Engine 中的 SQL 以 long 形式存储,因此在 Oracle 下它将是 4GB,在 DB2 下同样巨大。