Subject RE: [firebird-support] Implementation limit exceeded.: block size exceeds implementation restriction.
Author Alan McDonald
> This a typical "but I don't have changed anything" case. I have query,
> which has been working for years and now I get the error:
>
> Unsuccessful execution caused by an unavailable resource.
> Implementation limit exceeded.
> block size exceeds implementation restriction.
>
> The statement is definitely not bigger than 64KB. I run FB 1.5 on
> Windows XP. Here's the statement:
>
> insert into PRODUCTS
> (PCID,PCPAID,PCMPID,PCSPID,PCGEID,PCPUID,PCUNID1,PCUNID2,
> PCRTID,PCCCID,PCMNID1,PCMNID2,PCPGID,PCNR,PCNAME1,PCUPC,PCAVAILABI
> LITY,PCDELIVERYQUANTITY,
> PCPACKETQUANTITY,PCCOPYPROTECTION,
> PCTRANSFERPRICE,PCNETPRICE,PCLISTPRICE,PCRRP,
> PCTRANSFERPRICE_CC,PCNETPRICE_CC,PCLISTPRICE_CC,PCRRP_CC,
> PCDAYONE,PCLIFETIME,PCTARGETRELEASEDATE,PCACTUALRELEASEDATE,PCDELI
> VERYTIME,PCBUNDLE,
> PCDYNAMICFORECAST,PCFORECAST1,PCFORECAST2,PCFORECAST3,PCFORECAST4,
> PCFORECAST5,PCFORECAST6,
> PCFORECAST7,PCFORECAST8,PCFORECAST9,PCFORECAST10,PCFORECAST11,PCFO
> RECAST12,
> PCCOMMISSION,PCCOMMISSIONYEAR,
> PCAMNESTY,PCAMNESTYYEAR,PCPRICEGROUP,
> PCUKID,PCCOMMISSION_BUNDLE,PCCOMMISSION_PERFORMANCE1,PCCOMMISSION_
> PERFORMANCE2,
> PCCOMMISSION_PERFORMANCE3,PCCOMMISSION_FACTOR1,PCCOMMISSION_FACTOR2,
> PCCOMMISSION_FACTOR3,PCACTIVE,PCONEFORECAST,PCSTRATEGYBONUSQUANTITY,
> PCSB_ONLY_RELEASEMONTH,PCSB_FROM_YEAR,PCSB_UNTIL_YEAR,
> PCSB_FROM_MNID,PCSB_UNTIL_MNID,PCMINSTOCKQUANTITY,PCMINORDERQUANTITY,
> PCIGNOREATFORECASTSPLITBUNDLES,PCCANCELED,PCPOID400,PCPOID500,PCPOID600,
> PCCommissionUseWidthDistr,PCCommissionMinWidthDistr,PCCommissionMinSales,
> PCCOMMISSIONWIDTHDISTRFORALLUS,PCVisible)
> values
> (:PCID ,:PCPAID ,:PCMPID ,:PCSPID ,:PCGEID ,:PCPUID ,:PCUNID1
> ,:PCUNID2 ,
> :PCRTID ,:PCCCID ,:PCMNID1 ,:PCMNID2 ,:PCPGID ,:PCNR ,:PCNAME1
> ,:PCUPC ,:PCAVAILABILITY ,:PCDELIVERYQUANTITY ,
> :PCPACKETQUANTITY ,:PCCOPYPROTECTION ,
> (select RESULT1 from P_CALCULATE_CC_TO_EURO(:PCTRANSFERPRICE
> ,NULL,NULL,NULL,NULL)),
> (select RESULT1 from P_CALCULATE_CC_TO_EURO(:PCNETPRICE
> ,NULL,NULL,NULL,NULL)),
> (select RESULT1 from P_CALCULATE_CC_TO_EURO(:PCLISTPRICE
> ,NULL,NULL,NULL,NULL)),
> (select RESULT1 from P_CALCULATE_CC_TO_EURO(:PCRRP
> ,NULL,NULL,NULL,NULL)),
> :PCTRANSFERPRICE_CC ,:PCNETPRICE_CC ,:PCLISTPRICE_CC ,:PCRRP_CC ,
> :PCDAYONE ,:PCLIFETIME ,:PCTARGETRELEASEDATE ,
> :PCACTUALRELEASEDATE ,:PCDELIVERYTIME ,:PCBUNDLE ,:PCDYNAMICFORECAST
> ,:PCFORECAST1 ,:PCFORECAST2 ,
> :PCFORECAST3 ,:PCFORECAST4 ,:PCFORECAST5 ,:PCFORECAST6 ,:PCFORECAST7
> ,:PCFORECAST8 ,:PCFORECAST9 ,
> :PCFORECAST10 ,:PCFORECAST11 ,:PCFORECAST12 ,:PCCOMMISSION
> ,:PCCOMMISSIONYEAR ,
> :PCAMNESTY ,
> :PCAMNESTYYEAR ,:PCPRICEGROUP ,:PCUKID ,:PCCOMMISSION_BUNDLE ,
> :PCCOMMISSION_PERFORMANCE1 ,:PCCOMMISSION_PERFORMANCE2 ,
> :PCCOMMISSION_PERFORMANCE3 ,:PCCOMMISSION_FACTOR1
> ,:PCCOMMISSION_FACTOR2 ,
> :PCCOMMISSION_FACTOR3 ,:PCACTIVE ,:PCONEFORECAST
> ,:PCSTRATEGYBONUSQUANTITY ,
> :PCSB_ONLY_RELEASEMONTH ,:PCSB_FROM_YEAR ,:PCSB_UNTIL_YEAR ,
> :PCSB_FROM_MNID ,:PCSB_UNTIL_MNID ,:PCMINSTOCKQUANTITY
> ,:PCMINORDERQUANTITY ,
> :PCIGNOREATFORECASTSPLITBUNDLES ,:PCCANCELED ,:PCPOID400 ,:PCPOID500
> ,:PCPOID600 ,
> :PCCommissionUseWidthDistr ,:PCCommissionMinWidthDistr
> ,:PCCommissionMinSales ,
> :PCCOMMISSIONWIDTHDISTRFORALLUS ,:PCVisible )
>
> Any ideas, what can cause the error?
>
> Regards
>
> Guido

never struck this error but really, IMHO, this statment would be too easy to
break up into an insert and several updates under the one transaction, so it
would never hold my development up.
Alan