Numeric overflow error using binary integer

Hi experts,
I am facing issue while solving a numeric overflow error. after analyzing we came to know that in the below code BINARY_INTEGER is causing the issue as input is exceeding its range. I tried to replace BINARY_INTEGER by varchar2(20) but its saying
"Error(580,20): PLS-00657: Implementation restriction: bulk SQL with associative arrays with VARCHAR2 key is not supported."
We need to remove this binary_integer. I dont know how to do this. Can anybody give some idea or what code change required here ? thanks in advance. Cheers.. Below is the code,
===================================================
   PROCEDURE UpdateCost_
      p_Cost_typ IN OUT NOCOPY CM_t,
   IS
      TYPE ObjektIdTab_itabt IS TABLE OF ObjektId_tabt INDEX BY BINARY_INTEGER;
      v_cost_IdTab_itab ObjektIdTab_itabt;
      v_CM_ID INTEGER := p_Cost_typ.costm.CM_ID;
      BEGIN
            SELECT CAST(MULTISET
                    (SELECT Costwps.CMKostId
                      FROM CM_Pos_r NRPos,
                            CMK_z_r costzpps,
                            CMG_Cost_v Costwps
                      WHERE NRPos.CM_ID = v_CM_ID
                        AND NRPos.SNRId_G = SNRCT.SNRPos.SNRId_G
                        AND costzpps.CM_ID = NRPos.CM_ID
                        AND costzpps.CMSNRPosId = NRPos.CMSNRPosId
                        AND costzpps.Kost_s = Kost.Costnzl.Kost_s
                        AND Costwps.CMKz_Id = costzpps.CMKz_Id
                        AND Costwps.TypCode NOT IN
                            (SELECT kw.TypCode
                               FROM TABLE(Kost.Kostwt_tab) kw
                    ) AS ObjektId_tabt )
              BULK COLLECT
              INTO v_cost_IdTab_itab
              FROM TABLE(p_Cost_typ.SNR_tab) SNRCT,
                   TABLE(SNRCT.Kost_tab) Kost
         FOR v_i IN 1 .. v_cost_IdTab_itab.COUNT LOOP
            FOR v_j IN 1 .. v_cost_IdTab_itab(v_i).COUNT LOOP
               DELETE FROM CMG_Cost_v WHERE CMKostId = v_cost_IdTab_itab(v_i)(v_j);
            END LOOP;
         END LOOP;
END;
===================================================

Thanks for your reply. I tried with INDEX by NUMBER. but oracle says its not a valid use of index by thing. and moreover I also tried with by removing INDEX BY clause. but in that case we are not at all getting any data in for loop. some people says to use extend clause. But again I am not sure How to do so. Can you please let me know code for this.
I know you are trying to help by you need to STOP telling us what problem you have and SHOW US. Saying 'Oracle says' is useless. Post EXACTLY what code you are using, the EXACT steps you are using to compile that code and the EXACT result that you are getting.
You also made no comment about the 'overflow' issue. A BINARY_INTEGER (PLS_INTEGER) has a very large range of values:
http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/datatypes.htm#i10726
>
The PLS_INTEGER data type stores signed integers in the range -2,147,483,648 through 2,147,483,647, represented in 32 bits.
>
If you are trying to create a collection of more than 2 BILLION of anything you have a serious problem with either WHAT you are trying to do or HOW you are trying to do it. Your 'overflow' issue is more likely a symptom that you are really running out of memory. You should ALWAYS have a LIMIT clause when you do BULK COLLECT statements.
Also see this section in that doc: SIMPLE_INTEGER Subtype of PLS_INTEGER
You need to address your LIMIT issue first and then address any other issues that arise from actually executing the code.
Then see the section 'SELECT INTO Statement with BULK COLLECT Clause' in that doc
http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/tuning.htm#BABEIACI
That section has an example that shows you do NOT need to use an INDEX BY clause to create collections as you are trying to do. So your not 'getting any data in for loop' is NOT related to the lack of that clause.
That example also shows you that you do NOT use 'extends' when doing BULK COLLECT. The bulk collection automatically extends the collection as needed to hold the entire results (assuming you don't run out of memory for 2 BILLION things).
Example 12-22 in that same doc shows the proper way to use a double loop and a BULK COLLECT with a LIMIT clause
http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/tuning.htm#BABCCJCB
Here is very simple sample code you can use in the SCOTT schema to understand how the double loop and LIMIT clauses work together.
>
The FETCH does a BULK COLLECT of all data into 'v'. It will either get all the data or none if there isn't any.
The LOOP construct would be used when you have a LIMIT clause so that Oracle would 'loop' back to
get the next set of records. Run this example in the SCOTT schema and you will see how the LIMIT clause works.
I have 14 records in my EMP table.
DECLARE
  CURSOR c1 IS (SELECT * FROM emp);
  TYPE typ_tbl IS TABLE OF c1%rowtype;
  v typ_tbl;
BEGIN
  OPEN c1;
  LOOP                                                 --Loop added
    FETCH c1 BULK COLLECT INTO v LIMIT 3; -- process 3 records at a time
        -- process the first 3 max records
       DBMS_OUTPUT.PUT_LINE('Processing ' || v.COUNT || ' records.');
        FOR i IN v.first..v.last LOOP
            DBMS_OUTPUT.PUT_LINE(v(i).empno);
        END LOOP; 
    EXIT WHEN c1%NOTFOUND;
  END LOOP;
  DBMS_OUTPUT.PUT_LINE('All done');
END;
In the FOR loop you would do any processing of the nested table you want to do
and could use a FORALL to do an INSERT into another table.
>
I strongly suggest that you modify your code to work with a VERY SMALL set of data until it works properly. Then expand it to work with all of the data needed, preferably by using an appropriate LIMIT clause of no more than 1000.

Similar Messages

  • Numeric Overflow error on NPer function

    I am trying to use this NPer function and it's acting real weird. If I use the same numbers that my database fields hold, it works and when I switch to database fields it works fine one time and next time I try to refresh data, it gives me this "numeric overflow" error..
    In Crystal help example, they shows that the payment has to be a negative number. So I am following that. If i switch it to the positive number, then it works bit it gives me negative # of months plus it's wrong number.
    Not sure whats going on and would really appreciate any help...
    Thanks
    Raj

    Please re-post if this is still an issue or purchase a case and have a dedicated support engineer work with your directly

  • CR XI R2 Cannot find Nth root - "Numeric Overflow" Error

    In Crystal Reports Xi Release 2, when i try to perform a calculation within a formula  X ^ Y where  Y = 1/years  and Y < 1, I receive a "Numeric Overflow" error when running the report.   Is there anything that can be done to work around or fix this?
    Thanks.

    Hello Jay,
    I'm assuming you meant 0 < years < 1
    One limitation is that Crystal Reports uses IEEE double precision floating point representation for internal numerical computation.  This limits the maximum expressible numeric value to approximately 10 ^ 308.
    If computational results exceed this magnitude, the "Numeric Overflow" error will result.
    Sincerely,
    Ted Ueda

  • Function - numeric Overflow error

    Dear All,
    I have a function that is causing a ORA-01426: numeric overflow error
    My values from the variables are as follows
    v_highest_Uprn is 10033233499
    v_start_uprn is 10033223500
    Any ideas how to fix this. Thanks in advance.
    FUNCTION get_next_uprn RETURN NUMBRT IS
    /* Loop through numbers betweeen the next_uprn and the highest in the active range. */
    /* Check to see if the new uprn exists in the database , if no rows returns then return the new uprn. */
    v_start_uprn NUMBER;
    v_highest_uprn NUMBER;
    v_uprn_exists NUMBER;
    v_new_uprn NUMBER;
    BEGIN
    SELECT next_uprn ,
    highest_uprn
    INTO v_start_uprn,v_highest_uprn
    FROM PD_PROPERTY_NUMBERS
    WHERE active_sequence = '*';
    v_new_uprn :=v_start_uprn ;
    FOR rec IN v_start_uprn..v_highest_uprn LOOP
    IF v_new_uprn > v_highest_uprn THEN
    Bs7666_Standard.bs7666_error(35635);
    END IF;
    SELECT uprn INTO v_uprn_exists
    FROM PD_BLPUS
    WHERE uprn = v_new_uprn;
    v_new_uprn := v_new_uprn + 1;
    END LOOP;
    RETURN v_new_uprn;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    RETURN v_new_uprn;
    END get_next_uprn;

    Hi
    The loop control variable in a FOR loop is an integer (or similar) it seems; those numbers are simply too big for it.
    Change your code to something like:
    FOR rec IN 1 .. v_highest_uprn - v_start_uprn + 1 LOOP
    Luis

  • Numeric overflow error in aggregation level formula

    The formula for Revenue/Quantity is giving me the following error:
    Error: [314]: numeric overflow: search table error:  [6944] AttributeEngine: overflow in numeric calculation;Error executing physical plan: exception 6944: AttributeEngine/Parallel/Aggregation.cpp:573 AttributeEngine: overflow in numeric calculation; $function$=read; $message$=unable to read measures RAOL01:_SYS_CE__popid_24_531C272BF80A349FE10000007F000002_558972en TEST_Revenue fixed16.12 ,in executor::Executor in cube: RAOL01:_SYS_CE_$REQUEST$_popid_24_531C272BF80A349FE10000007F000002_558973: calcEngine search on olapIndex failed.
    I am aware that if Quantity is zero then we get this error, but I have already handled it and Quantity is never zero.
    Both the measures are Decimal, any suggestions as to how to handle this?

    My first guess you have reached the upper limit of the datatype on concerned column and the AttributeEngine is not capable now to handle the numeric overflow, hence throwing the error message.
    Try converting it to higher datatypes like double, you can also try to do an workaround with datatype conversion functions like TO_DOUBLE before aggregation func.
    If you are using something like sum("COL1") try using sum(TO_DOUBLE("COL1"))

  • Numeric overflow error in proc

    hi guys
    while executing below proc i am getting error numeric overflow at lineno 36.. please help me.
    ORA-01426: numeric overflow
    Thanks & Regards
    ************************************Proc Code******************************************************
    create or replace PROCEDURE proc_tab1 IS
    V_Rlt varchar2(4);
    cursor c1 is
    select a.ref,b.key_ref from a,b where a.ref(+) = b.ref;
    cursor c2 is
    select x.id||x.dt_key, x.d_value from x, y
    where y.s_ref = 'ML21' and y.id = 'RT' and x.f_ref = y.s_ref;
    type curr is table of c1%rowtype;
    c_table curr;
    type curr2 is table of c2%rowtype;
    c2_table curr2;
    begin
    open c1;
    loop
    fetch c1 bulk collect into c_table;
    exit when c1%NOTFOUND;
    end loop;
    open c2;
    loop
    fetch c2 bulk collect into c2_table;
    exit when c2%NOTFOUND;
    end loop;
    for i in 1..c_table.count
    loop
    if c2_table.exists(c_table(i).ref||c_table(i).key_ref)---after concat value length is 16
    then
    v_rlt := c2_table(c_table(i).ref||c_table(i).key_ref).d_value;
    else
    v_rlt :='R';
    end if;
    insert into tab1 (ref,rlt) values(c_table(i).ref,v_rlt);
    end loop;
    end;

    lineno 36can you please highlight which is the exact line where you get the error?
    Please post your code using ** tags.                                                                                                                                                                                                                                                                   

  • Cfstoredproc - Numeric Overflow Error - CF8

    I recently upgraded to CF8 and have started having problems
    with cfstoredproc. Here is the code:
    <cfstoredproc datasource="#request.myDSN#"
    procedure="dbo.p_online_password.get_account" >
    <cfprocparam cfsqltype="cf_sql_varchar"
    value="#attributes.email#" type="in" maxlength="50">
    <cfprocparam cfsqltype="cf_sql_bigint" type="out"
    variable="appvars.online_password_id">
    <cfprocparam cfsqltype="cf_sql_varchar" type="in"
    value="#attributes.password#" maxlength="30">
    <cfprocparam cfsqltype="cf_sql_bigint" type="out"
    variable="appvars.account_status">
    <cfprocparam cfsqltype="cf_sql_varchar" type="out"
    variable="appvars.loginmessage" maxlength="500">
    <cfprocparam cfsqltype="cf_sql_bigint" type="out"
    variable="appvars.personid">
    </cfstoredproc>
    Here is the logged dbcall:
    spy(2007/12/27 15:29:58.361)>> Driver Name = Oracle
    spy(2007/12/27 15:29:58.361)>> Driver Version = 3.60.26
    (023731.010811.016225)
    spy(2007/12/27 15:29:58.361)>> Database Name = Oracle
    spy(2007/12/27 15:29:58.361)>> Database Version =
    9.2.0.8.0
    spy(2007/12/27 15:29:58.361)>> OK (Connection[6])
    spy(2007/12/27 15:29:58.361)>>
    Connection[6].setTransactionIsolation(int level)
    spy(2007/12/27 15:29:58.361)>> level = 2
    spy(2007/12/27 15:29:58.361)>> OK
    spy(2007/12/27 15:29:58.361)>>
    Connection[6].isReadOnly()
    spy(2007/12/27 15:29:58.361)>> OK (false)
    spy(2007/12/27 15:29:58.361)>>
    Connection[6].getAutoCommit()
    spy(2007/12/27 15:29:58.361)>> OK (true)
    spy(2007/12/27 15:29:58.361)>>
    Connection[6].prepareCall(String sql)
    spy(2007/12/27 15:29:58.361)>> sql = {call
    dbo.p_online_password.get_account(?, ?, ?, ?, ?, ?)}
    spy(2007/12/27 15:29:58.377)>> OK
    (CallableStatement[1])
    spy(2007/12/27 15:29:58.377)>>
    CallableStatement[1].setObject(int parameterIndex, Object x, int
    targetSqlType)
    spy(2007/12/27 15:29:58.377)>> parameterIndex = 1
    spy(2007/12/27 15:29:58.377)>> x =
    [email protected]
    spy(2007/12/27 15:29:58.377)>> targetSqlType = 12
    spy(2007/12/27 15:29:58.377)>> OK
    spy(2007/12/27 15:29:58.377)>>
    CallableStatement[1].registerOutParameter(int parameterIndex, int
    sqlType)
    spy(2007/12/27 15:29:58.377)>> parameterIndex = 2
    spy(2007/12/27 15:29:58.377)>> sqlType = -5
    spy(2007/12/27 15:29:58.377)>> OK
    spy(2007/12/27 15:29:58.377)>>
    CallableStatement[1].setObject(int parameterIndex, Object x, int
    targetSqlType)
    spy(2007/12/27 15:29:58.377)>> parameterIndex = 3
    spy(2007/12/27 15:29:58.377)>> x =
    spy(2007/12/27 15:29:58.377)>> targetSqlType = 12
    spy(2007/12/27 15:29:58.377)>> OK
    spy(2007/12/27 15:29:58.377)>>
    CallableStatement[1].registerOutParameter(int parameterIndex, int
    sqlType)
    spy(2007/12/27 15:29:58.377)>> parameterIndex = 4
    spy(2007/12/27 15:29:58.377)>> sqlType = -5
    spy(2007/12/27 15:29:58.377)>> OK
    spy(2007/12/27 15:29:58.377)>>
    CallableStatement[1].registerOutParameter(int parameterIndex, int
    sqlType)
    spy(2007/12/27 15:29:58.377)>> parameterIndex = 5
    spy(2007/12/27 15:29:58.377)>> sqlType = 12
    spy(2007/12/27 15:29:58.377)>> OK
    spy(2007/12/27 15:29:58.377)>>
    CallableStatement[1].registerOutParameter(int parameterIndex, int
    sqlType)
    spy(2007/12/27 15:29:58.377)>> parameterIndex = 6
    spy(2007/12/27 15:29:58.377)>> sqlType = -5
    spy(2007/12/27 15:29:58.377)>> OK
    spy(2007/12/27 15:29:58.377)>>
    CallableStatement[1].execute()
    spy(2007/12/27 15:29:58.486)>> java.sql.SQLException:
    [Macromedia][Oracle JDBC Driver]Numeric overflow. ErrorCode=0
    SQLState=HY000
    java.sql.SQLException: [Macromedia][Oracle JDBC
    Driver]Numeric overflow.
    at
    macromedia.jdbc.base.BaseExceptions.createException(Unknown Source)
    at macromedia.jdbc.base.BaseExceptions.getException(Unknown
    Source)
    at macromedia.jdbc.oracle.OracleVNU.convertVNUToLong(Unknown
    Source)
    at
    macromedia.jdbc.oracle.OracleImplStatement.convertAndPropagateOutputParams(Unknown
    Source)
    at
    macromedia.jdbc.oracle.OracleImplStatement.execute(Unknown Source)
    at macromedia.jdbc.base.BaseStatement.commonExecute(Unknown
    Source)
    at
    macromedia.jdbc.base.BaseStatement.executeInternal(Unknown Source)
    at
    macromedia.jdbc.base.BasePreparedStatement.execute(Unknown Source)
    at
    macromedia.jdbc.base.BasePreparedStatementPoolable.execute(Unknown
    Source)
    at macromedia.jdbcspy.SpyPreparedStatement.execute(Unknown
    Source)
    at
    coldfusion.server.j2ee.sql.JRunPreparedStatement.execute(JRunPreparedStatement.java:89)
    at coldfusion.sql.Executive.executeCall(Executive.java:860)
    at coldfusion.sql.Executive.executeCall(Executive.java:775)
    at coldfusion.sql.Executive.executeCall(Executive.java:726)
    at coldfusion.sql.SqlImpl.executeCall(SqlImpl.java:445)
    at
    coldfusion.tagext.sql.StoredProcTag.executeQuery(StoredProcTag.java:272)
    at
    coldfusion.tagext.sql.StoredProcTag.doEndTag(StoredProcTag.java:225)
    at
    cfprocGetAccount2ecfm1970365621.runPage(C:\Inetpub\wwwroot\FBARO\model\login\procGetAccou nt.cfm:63)
    at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:192)
    at
    coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:366)
    at
    coldfusion.runtime.CfJspPage._emptyTag(CfJspPage.java:2644)
    at
    cflogin2eloginuser2ecfm500887643._factor72(C:\Inetpub\wwwroot\FBARO\parsed\login.loginuse r.cfm:24)
    at
    cflogin2eloginuser2ecfm500887643._factor80(C:\Inetpub\wwwroot\FBARO\parsed\login.loginuse r.cfm:17)
    at
    cflogin2eloginuser2ecfm500887643._factor81(C:\Inetpub\wwwroot\FBARO\parsed\login.loginuse r.cfm:5)
    at
    cflogin2eloginuser2ecfm500887643.runPage(C:\Inetpub\wwwroot\FBARO\parsed\login.loginuser. cfm:1)
    at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:192)
    at
    coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:366)
    at
    coldfusion.runtime.CfJspPage._emptyTag(CfJspPage.java:2644)
    at
    cffusebox52ecfm1910112018.runPage(C:\Inetpub\wwwroot\FBARO\fusebox5.cfm:179)
    at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:192)
    at
    coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:366)
    at
    coldfusion.runtime.CfJspPage._emptyTag(CfJspPage.java:2644)
    at
    cffusebox42eruntime2ecfmx2ecfm1434713790.runPage(C:\Inetpub\wwwroot\FBARO\fusebox4.runtim e.cfmx.cfm:1)
    at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:192)
    at
    coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:366)
    at
    coldfusion.runtime.CfJspPage._emptyTag(CfJspPage.java:2644)
    at
    cfindex2ecfm1115026679.runPage(C:\Inetpub\wwwroot\FBARO\index.cfm:28)
    at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:192)
    at
    coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:366)
    at
    coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65)
    at
    coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:279)
    at
    coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48)
    at
    coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40)
    at coldfusion.filter.PathFilter.invoke(PathFilter.java:86)
    at
    coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:70)
    at
    coldfusion.filter.BrowserDebugFilter.invoke(BrowserDebugFilter.java:74)
    at
    coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:2 8)
    at
    coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
    at
    coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46)
    at
    coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)
    at
    coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
    at
    coldfusion.filter.RequestThrottleFilter.invoke(RequestThrottleFilter.java:126)
    at coldfusion.CfmServlet.service(CfmServlet.java:175)
    at
    coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)
    at jrun.servlet.FilterChain.doFilter(FilterChain.java:86)
    at
    coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42 )
    at
    coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
    at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)
    at jrun.servlet.FilterChain.service(FilterChain.java:101)
    at
    jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106)
    at
    jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
    at
    jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:284)
    at
    jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543)
    at
    jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203)
    at
    jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:320)
    at
    jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)
    at
    jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:266)
    at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)
    spy(2007/12/27 15:29:58.486)>>
    CallableStatement[1].close()
    spy(2007/12/27 15:29:58.486)>> OK
    spy(2007/12/27 15:29:58.502)>>
    Connection[6].setAutoCommit(boolean autoCommit)
    spy(2007/12/27 15:29:58.502)>> autoCommit = true
    spy(2007/12/27 15:29:58.502)>> OK
    spy(2007/12/27 15:29:58.502)>>
    Connection[6].setTransactionIsolation(int level)
    spy(2007/12/27 15:29:58.502)>> level = 2
    spy(2007/12/27 15:29:58.502)>> OK
    spy(2007/12/27 15:29:58.502)>>
    Connection[6].setReadOnly(boolean readOnly)
    spy(2007/12/27 15:29:58.502)>> readOnly = false
    spy(2007/12/27 15:29:58.502)>> OK
    Any ideas?
    Thanks,
    Jim

    FYI, there is a table near the bottom of the LiveDocs page
    for the
    cfqueryparam
    tag that "
    shows the mapping of ColdFusion SQL data types with JDBC SQL
    types and those of the listed database management systems".
    (The same mapping applies to the cfprocparam tag as well, and I am
    surprised that they don't have it listed there as well.)
    You will notice that CF_SQL_BIGINT doesn't map to Oracle, and
    that only CF_SQL_DECIMAL and CF_SQL_FLOAT seem to map to Oracle
    type number. However, I use CF_SQL_NUMERIC all of the time with
    Oracle 10g and Oracle type NUMBER with CF7, but I can't speak for
    CF8 since we are still on 7.
    Phil

  • Context overflow error using ITS

    hi guys.
    I have an ABAP ALV report to be displayed on a grid. While this report is being displayed, it also creates an extract in the foreground in Excel format (Used GUI-DOWNLOAD FM) when I run it on my local PC using SAP GUI. But when I run this report on WebGUI ITS, it sometimes gives me this error : Run Time Error- Context Overflow Error. How to avoid this ?  Thanks in advance!

    Hi Tobias,
      Q :     I am also having same problem. I have increased maxctxtsize from 1677216 to 5242880 and 10485750 but it doesn't work.  Can you please help me in this..
      Ans: i fixed the problem on my own. I need to increase both sessions and context size then it started working.
    thanks...
    Message was edited by:
            rao

  • Oracle 10g Numeric Overflow

    Hello, I am getting a Numeric Overflow error when trying to return a NUMBER back to the Java side from within an Oracle package that is inserting a row into a table. The NUMBER being returned is the table ID and is obtained on the Oracle side by using a NextVal. But on the Java side, when I try to call a getInt to get the value returned, I get a Numeric Overflow error. However, the package is inserting correctly into the table and the numbers it is inserting are no bigger than 500, which is more than enough for an Integer. Oddly enough, this problem started occurring when our Linux server was switched to use Oracle 10g drivers. Could that be the issue?

    Run ADDM report and PGA advice.

  • MSync numeric overflow

    One of our clients is using Ora 9i Lite. It has worked perfectly well so far but they are now unable to MSync due to a numeric overflow error that occurred at the start of the Receiving phase.
    We suspected some rogue value exceeding the permitted range but they have been unable to find anything so far. We had a similar problem on our dev box about a year ago due to a 1+126 value.
    I have just dropped the Mobileclient user and re-created the repository with repwizard. I am seeing this error during the Processing phase.
    on@82751 || Overflow Exception
    It is now imperative that we fix this so help much appreciated.

    looking at msync (same if the APIs are used) from the perspective of the client device, the behaviour of the four progress bars can be a bit misleading
    First bar is composing - this is an extract from the client database to create a packed binary file (you should see something like username_snd, or just _snd)
    If there is already a send file, then this is added to each time - this in itself can be a problem, as some types of errors (invalid block length for example) are related to corruption in this file
    Second bar is sending - this will move progressively across as the data is uploaded, unpacked and inserted into the in queue tables - more data, longer it takes. The end of this stage is EITHER the end of the data file OR an error being sent from the server (ie: a server error causes premature ending of the upload) due to an upload problem. In the case of a server error, you will sometimes see the sending bar suddenly jump to the end
    Third bar is recieving - normally there is a slight delay between the end of sending and recieving (whilst the server prepares the data for download), and it then it moves progressively across as the data is downloaded (to a binary file on the client <username>olres.bin). If this jumps across to the end quickly, this is normally due to either an upload error (nothing to download), or a failure during the select for download (constraint violations, invalid packages etc.)
    last bar is processing - this is the downloaded binary file being unpacked and written to the client database (you will see second copies of the database files appearing on the client whilst this is running). If the server has sent an error in the download file, it will stop at that point and report the eror.
    NOTE the binary files do not get automatically cleared, so you may have to manually remove them, or they will get re-processed next time you sync, and you will see the same error even if it has been fixed.
    So from the above
    error on upload (normally related to unpacking the upload file, or the inserts into the in queue table) will make the sending complete quickly, go through recieving queickly and fail almost immediately in the processing stage
    error on download (normally data selection issues on the server) will have a normal sending phase (and in fact the data will be on the server ready for processing, or in the error queue), but the recieving phase will suddenly jump to the end. The failure will be reported part way thouigh the processing stage

  • JDBC Numeric Overflow / IP address conversion

    Hi Folks;
    I am using an application that imports data via a JDBC connection to an instance. It bombs anytime I try to pull over large NUMBER values. Specifically, I have numeric representations of IP addresses. (For example a stored value of 3520061480 converts to "209.207.224.40")
    When I try to pull this data, I get numeric overflow errors. Interestingly, if I use either ODBC or OLEDB there is not a problem, which is why I am focusing on the JDBC issue.
    They may be coming from jdbc or SOAP.
    Dat::getData: SOAP getData call failed
         Error:      -2147467259 (0x80004005)
                   Unspecified error
         Job ID:      [178294c0-99d0-11d7-7d8d-00108db889b7]
         timeout:      [60]
         Code:      [Server.SQLFailure]
         String:      [Failed to get data: Numeric Overflow]
         StackTraceTop:      [unknown]
    Dat::getData: SOAP getData call failed
         Error:      -2147467259 (0x80004005)
                   Unspecified error
         Job ID:      [178294c0-99d0-11d7-7d8d-00108db889b7]
         timeout:      [60]
         Code:      [Server.SQLFailure]
         String:      [Failed to get data: Numeric Overflow]
         StackTraceTop:      [unknown]
    Unspecified error
    Two questions:
    1) Are there known issues along these lines for large numbers?
    2) MySQL and Perl both have built-in functions for converting from a numeric representation of an ip address to the ascii notation. (Looks like
    SELECT INET_NTOA(3520061480);
    -> "209.207.224.40"
    Does anyone know of an analogous function for Oracle that can be called from SQL? Do I need to write my own function? It would seem that someone has done this somewhere....
    Thanks!

    Probably being clever but he just explained it more.
    My original interpretation was wrong so no question
    anymore.
    I think I now need to remember how to convert things
    to bits!I wouldn't recommend this approach, but if you want to do it, or have no choice, here you go.
    public static void main(String[] args) {
         String IP = "127.6.34.2";
         String [] quads = IP.split("[.]");
         byte [] ipbytes = new byte[4];
         int i = 0;
         int ip = 0;
         for(String q : quads)
             ipbytes[i] = Byte.valueOf(q);
             ip = (ip << 8) | ipbytes[i++];
         System.out.println("String in : " + IP + "\nIP out : " + ip);
         String [] rev = new String[4];
         for(i = 0; i < 4; i++)
             rev[i] = String.valueOf((ip >> (i * 8)) & 0xff);
         for(String ip_rev : rev)
             System.out.println(ip_rev);
        }~Tim

  • Numeric overflow with DBMS_CDC_PUBLISH.CREATE_CHANGE_TABLE

    Hello all-
    I'm running Oracle 9i on WinXP sp. 2.
    I'm trying to create a CDC table with the standard SYS package and am getting a numeric overflow error. The code I'm attempting to execute is this:
    BEGIN
    sys.dbms_cdc_publish.create_change_table(
    OWNER => 'CDC_USER',
    CHANGE_TABLE_NAME => 'PA_BUDGET_ENTRY_METHODS',
    CHANGE_SET_NAME => 'SYNC_SET',
    SOURCE_SCHEMA => 'PA',
    SOURCE_TABLE => 'PA_BUDGET_ENTRY_METHODS',
    COLUMN_TYPE_LIST => 'BUDGET_ENTRY_METHOD_CODE VARCHAR2(30)',
    CAPTURE_VALUES => 'NEW',
    RS_ID => 'N',
    ROW_ID => 'Y',
    USER_ID => 'Y',
    TIMESTAMP => 'Y',
    OBJECT_ID => 'N',
    SOURCE_COLMAP => 'N',
    TARGET_COLMAP => 'N',
    OPTIONS_STRING => NULL);
    END;
    The error I'm getting is this:
    ORA-01426: numeric overflow
    ORA-06512: at "SYS.DBMS_CDC_PUBLISH", line 299
    ORA-06512: at line 2
    This happens every time, regardless of the source table i'm trying to capture changes for.
    Clearly this is a normal exception (i.e., not only thrown in the CDC packages) so I'm having a hard time figuring out what it could be. Anyone out there familiar with CDC have any thoughts?
    Thanks in advance,
    James

    I tried that but no luck yet, also tried put all in a single line, but the same error. It doesn't something tricky here, but actual problem with package. "ddl_markers" is new to 11g and not much documentation is available on that.
    Also setting ddl_markers=N removed 3 columns from Publisher table, and the effect of it on Subscriber's view is still a gray area,

  • Numeric overflow in data modeling tool

    It only happens with one of my schemas but when I attempt to import it from the data dictionary it fails with a numeric overflow error:
    2009-04-01 10:15:34,899 [Thread-2] ERROR AbstractDBMExtractionHandler - java.sql.SQLException: Numeric Overflow
    2009-04-01 10:22:50,532 [Thread-3] ERROR AbstractDBMExtractionHandler - java.sql.SQLException: Numeric Overflow
    2009-04-01 10:27:12,888 [Thread-4] ERROR AbstractDBMExtractionHandler - java.sql.SQLException: Numeric Overflow
    Has anyone seen this before. I'm pretty sure it's only a subset of my tables as I can select a few here or there (out of 300) and it's fine.
    Thanks,
    Coburn

    Hi Coburn,
    we have this bug reported several times. Unfortunately we cannot reproduce it. The bug is related to something specific - I import my whole database (1800 tables, object types, object tables) and no problem. We want to sort it out but we cannot fix it if we cannot reproduce it. Any help is welcome.
    Thanks in advance,
    Philip

  • CAST Not working for me - Arithmetic overflow error converting int to data type numeric - error

    GPM is DECIMAL(5,2)
    PRICE is DECIMAL(11,4)
    COST is DECIMAL(7,2)
    Trying to update the Gross Profit Margin % field and I keep getting the "Arithmetic overflow error converting int to data type numeric" error.
    UPDATE SMEMODETAIL SET SMD_GPM = (SMD_PRICE-SMD_COST) / SMD_PRICE * 100
    FROM SMEMODETAIL WHERE SMD_PRICE<>0 AND SMD_QUANTITY<>0
    Example record:
    SMD_PRICE    SMD_COST    GPM%
    1.8500            1.62                12.4324324324324300
    I added cast and I still get the error.
    How do I format to get this to work?
    Thanks!

    Hi GBerthume,
    The error is caused by some value such as 1000.01 of the expression (SMD_PRICE-SMD_COST) / SMD_PRICE * 100 exceeds the
    precision of the column(DECIMAL(5,2)). The example data doesn't cause the overflow error for the value of the expression is 12.43 which is in the scope of DECIMAL(5,2).
    USE TestDB
    CREATE TABLE SMEMODETAIL
    SMD_PRICE DECIMAL(11,4),
    SMD_COST DECIMAL(7,2),
    SMD_GPM DECIMAL(5,2)
    INSERT INTO SMEMODETAIL(SMD_PRICE,SMD_COST) SELECT 1.8500,1.62
    UPDATE SMEMODETAIL SET SMD_GPM = (SMD_PRICE-SMD_COST) / SMD_PRICE * 100
    FROM SMEMODETAIL WHERE SMD_PRICE<>0-- AND SMD_QUANTITY<>0
    SELECT * FROM SMEMODETAIL
    DROP TABLE SMEMODETAIL
    The solution of your case can be either scale the DECIMAL(5,2) or follow the suggestion in Scott_morris-ga's to check and fix your data.
    If you have any question, feel free to let me know.
    Eric Zhang
    TechNet Community Support

  • Arithmetic Overflow error converting float to data type numeric

    Hi,
    Am facing strange issue,I have function which returns money datatype and assigning the return money value to float datatype in table.
    Error msg:
    Msg 8115, Level 16, State 6, Procedure GBCalcCatalogPriceNewV2, Line 204
    Arithmetic overflow error converting float to data type numeric.
    The statement has been terminated.
    Strange thing is the same stored procedure is working fine in production environment,but in the deveopment i see this error.Am scared if the same happens in the production environment.Please advice and advance
    thanks
    Regards
    RAj

    Strange thing is the same stored procedure is working fine in production environment,
    How could that be strange? This is an error that occurs depending on the data. Accidents that are waiting to happen will happen sooner or later.
    Then again, a development database may be more prone to such errors, because data that entered are completely out of whack with real life data. Still it is a warning sign. If you have some place where you convert data from float to numeric, you must consider
    the risk that the float value is outside the range for the numeric data type. How do you prevent that from happening? Maybe a CHECK constraint on the column? Of if the data origins from a money column, use a numeric data type with sufficient precision.
    Erland Sommarskog, SQL Server MVP, [email protected]

Maybe you are looking for