DBIF_RSQL_INVALID_RSQL

Hello All,
I have a dynamic where_clause in a select query. ie its created at runtime. I get a short dump 'DBIF_RSQL_INVALID_RSQL' at the select statement. The reason shown in ST22 is:
  Possible errors:                                                    
   o The maximum size of an SQL statement has been exceeded.          
   o The statement contains too many input variables.                 
   o The space needed for the input data exceeds the available memory.
   o ...                                                                               
Could you please suggest a solution to the problem, since the data to be fetched is large I would not want to use select-endselect loop as that would make it slower.
Thanks in advance,
Anju

I implemented one simple example. Can you check with your code where the mistake is...
Input Table as SFLIGHT, and Fieldname as CARRID
REPORT  ZTEST_SIMPLE.
data: it_fcat type lvc_t_fcat.
data: itable type ref to data.
field-symbols: <fs> type standard table.
parameters: p_table(30),
            p_column(30).
data: cond type string.
cond = 'CARRID = ''AA'' and  connid = ''00017'''.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
   I_STRUCTURE_NAME             =  p_table
  CHANGING
    ct_fieldcat                  = it_fcat
EXCEPTIONS
   INCONSISTENT_INTERFACE       = 1
   PROGRAM_ERROR                = 2
   OTHERS                       = 3
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL METHOD cl_alv_table_create=>create_dynamic_table
  EXPORTING
    it_fieldcatalog           = it_fcat
  IMPORTING
    EP_TABLE                  = itable
  EXCEPTIONS
    GENERATE_SUBPOOL_DIR_FULL = 1
    others                    = 2
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
assign itable->* to <fs>.
SELECT DISTINCT (p_column)
INTO CORRESPONDING FIELDS OF TABLE <fs>
FROM (p_table) WHERE (cond).
break-point.

Similar Messages

  • Runtime error - DBIF_RSQL_INVALID_RSQL, Exception - CX_SY_OPEN_SQL_DB

    Hi,
    Following code is working fine in Development system and in Production system I am getting a runtime error. Only difference I am finding is in r_lifnr value. In development system I have few lifnr and in Production system it's not so... am I getting error because of it? Is there any restriction to no. of items populated in a range? Or Basis person need to change any parameter? Enclosed the detail dump below the code...
    Advance thanks.
    Regards,
    Balaji Viswanath.
    Code:
      SELECT bukrs
             lifnr
             augdt
             augbl
             zuonr
             gjahr
             belnr
             buzei
             waers
             dmbtr
             wrbtr
             zlsch
             shkzg
             blart
             gsber
             sgtxt
      INTO TABLE t_bsak_tmp
      FROM bsak CLIENT SPECIFIED
      WHERE mandt = sy-mandt AND
            lifnr IN r_lifnr AND
            bukrs IN s_bukrs AND
            augdt IN s_augdt AND
            blart IN s_blart.
      IF sy-subrc <> 0.
      No data found for selection criteria
        MESSAGE i018.
        LEAVE LIST-PROCESSING.
      ENDIF.
    Dump:
    Runtime Errors         DBIF_RSQL_INVALID_RSQL
    Exception              CX_SY_OPEN_SQL_DB
           Occurred on     14.11.2005 at 14:35:22
    Error in the module RSQL accessing the database interface.
    What happened?
    Error in ABAP application program.
    The current ABAP program "/DS1/FI_CR_REPT_PGSR802_VEND_P" had to be terminated
    because one of the
    statements could not be executed.
    This is probably due to an error in the ABAP program.
    What can you do?
    Print out the error message (using the "Print" function)
    and make a note of the actions and input that caused the
    error.
    To resolve the problem, contact your SAP system administrator.
    You can use transaction ST22 (ABAP Dump Analysis) to view and administer
    termination messages, especially those beyond their normal deletion
    date.
    Error analysis
    An exception occurred. This exception is dealt with in more detail below
    . The exception, which is assigned to the class 'CX_SY_OPEN_SQL_DB', was
    neither
    caught nor passed along using a RAISING clause, in the procedure
    "GET_CLRD_VEN_DATA" "(FORM)"
    Since the caller of the procedure could not have expected this exception
    to occur, the running program was terminated.
    The reason for the exception is:
    The SQL statement generated from the SAP Open SQL Statement violates a
    restriction imposed by the database system used in R/3.
    Possible errors:
    o The maximum size of an SQL statement has been exceeded.
    o The statement contains too many input variables.
    o The space needed for the input data exceeds the available memory.
    o ...
    You can usually find details in the system log (SM21) and in the
    developer trace of the work process (ST11).
    If an error occurs the developer trace often informs you about the
    current restrictions.
    How to correct the error
    The exception must either be prevented, caught within the procedure
    "GET_CLRD_VEN_DATA"
    "(FORM)", or declared in the procedure's RAISING clause.
    To prevent the exception, note the following:
    The SAP Open SQL statement must be divided into several smaller units.
    If the problem occurred due to the use of an excessively large table
    in an IN itab construct, you can use the addition FOR ALL ENTRIES
    instead.
    When you use this addition, the statement is split into smaller units
    according to the restrictions of the database system used.
    You may able to find an interim solution to the problem
    in the SAP note system. If you have access to the note system yourself,
    use the following search criteria:
    "DBIF_RSQL_INVALID_RSQL" CX_SY_OPEN_SQL_DBC
    "/DS1/FI_CR_REPT_PGSR802_VEND_P" or "/DS1/FI_CR_REPT_PGSR802_VEND_P"
    "GET_CLRD_VEN_DATA"
    If you cannot solve the problem yourself, please send the
    following documents to SAP:
    1. A hard copy print describing the problem.
       To obtain this, select the "Print" function on the current screen.
    2. A suitable hardcopy prinout of the system log.
       To obtain this, call the system log with Transaction SM21
       and select the "Print" function to print out the relevant
       part.
    3. If the programs are your own programs or modified SAP programs,
       supply the source code.
       To do this, you can either use the "PRINT" command in the editor or
       print the programs using the report RSINCL00.
    4. Details regarding the conditions under which the error occurred
       or which actions and input led to the error.
    System environment
    SAP Release.............. "620"
    Application server....... "ztm1003"
    Network address.......... "145.26.160.103"
    Operating system......... "AIX"
    Release.................. "5.3"
    Hardware type............ "00C004DC4C00"
    Character length......... 16 Bits
    Pointer length........... 64 Bits
    Work process number...... 6
    Short dump setting....... "full"
    Database server.......... "ztm1003"
    Database type............ "ORACLE"
    Database name............ "A94"
    Database owner........... "SAPR3K"
    Character set............ "C"
    SAP kernel............... "640"
    Created on............... "Aug 7 2005 20:44:35"
    Created in............... "AIX 1 5 00538A4A4C00"
    Database version......... "OCI_920 "
    Patch level.............. "85"
    Patch text............... " "
    Supported environment....
    Database................. "ORACLE 8.1.7.., ORACLE 9.2.0.., ORACLE
    10.1.0.."
    SAP database version..... "640"
    Operating system......... "AIX 1 5, AIX 2 5, AIX 3 5"
    User, transaction...
    Client.............. 110
    User................ "INBVI0"
    Language key........ "E"
    Transaction......... "SE38 "
    Program............. "/DS1/FI_CR_REPT_PGSR802_VEND_P"
    Screen.............. "SAPMSSY0 1000"
    Screen line......... 6
    Information on where terminated
    The termination occurred in the ABAP program "/DS1/FI_CR_REPT_PGSR802_VEND_P"
    in "GET_CLRD_VEN_DATA".
    The main program was "/DS1/FI_CR_REPT_PGSR802_VEND_P ".
    The termination occurred in line 503 of the source code of the (Include)
    program "/DS1/FI_CR_REPT_PGSR802_VEND_P"
    of the source code of program "/DS1/FI_CR_REPT_PGSR802_VEND_P" (when calling
    the editor 5030).
    Processing was terminated because the exception "CX_SY_OPEN_SQL_DB" occurred in
    the
    procedure "GET_CLRD_VEN_DATA" "(FORM)" but was not handled locally, not
    declared in the
    RAISING clause of the procedure.
    The procedure is in the program "/DS1/FI_CR_REPT_PGSR802_VEND_P ". Its source
    code starts in line 501
    of the (Include) program "/DS1/FI_CR_REPT_PGSR802_VEND_P ".
    Source code extract
    004730   &----
    004740   *       get country names from t005t
    004750   ----
    004760   FORM get_country_names.
    004770
    004780     t_lfa1_land[] = t_lfa1[].
    004790     SORT t_lfa1_land BY land1.
    004800     DELETE ADJACENT DUPLICATES FROM t_lfa1_land COMPARING land1.
    004810
    004820     IF NOT t_lfa1_land[] IS INITIAL.
    004830       SELECT land1
    004840              landx
    004850       INTO TABLE t_t005t
    004860       FROM t005t
    004870       FOR ALL ENTRIES IN t_lfa1_land
    004880       WHERE spras = sy-langu AND
    004890             land1 = t_lfa1_land-land1.
    004900       REFRESH t_lfa1_land.
    004910       SORT t_t005t BY land1.
    004920     ELSE.
    004930       MESSAGE i014 WITH 'No vendor data fetched'(001).
    004940     ENDIF.
    004950   ENDFORM.                    " get_country_names
    004960   &----
    004970   *&      Form  get_clrd_ven_data
    004980   &----
    004990   *       Cleared vendor data
    005000   ----
    005010   FORM get_clrd_ven_data .
    005020
    >     SELECT bukrs
    005040            lifnr
    005050            augdt
    005060            augbl
    005070            zuonr
    005080            gjahr
    005090            belnr
    005100            buzei
    005110            waers
    005120            dmbtr
    005130            wrbtr
    005140            zlsch
    005150            shkzg
    005160            blart
    005170            gsber
    005180            sgtxt
    005190     INTO TABLE t_bsak_tmp
    005200     FROM bsak CLIENT SPECIFIED
    005210   * the order of the fields are as in the secondary Index.
    005220     WHERE mandt = sy-mandt AND
    Contents of system fields
    SY field contents..................... SY field contents.....................
    SY-SUBRC 0                             SY-INDEX 0
    SY-TABIX 1                             SY-DBCNT 59
    SY-FDPOS 0                             SY-LSIND 0
    SY-PAGNO 0                             SY-LINNO 1
    SY-COLNO 1                             SY-PFKEY
    SY-UCOMM
    SY-TITLE Vendor Payment  Details for IRD
    SY-MSGTY I                             SY-MSGID SF
    SY-MSGNO 616                           SY-MSGV1 /DS1/FI_CR_REPT_PGSR802_VEND_P
    SY-MSGV2 RE                            SY-MSGV3 EN
    SY-MSGV4
    Active calls / events
    No.... Type........ Name..........................
           Program
           Include                                  Line
           Class
         2 FORM         GET_CLRD_VEN_DATA
           /DS1/FI_CR_REPT_PGSR802_VEND_P
           /DS1/FI_CR_REPT_PGSR802_VEND_P             503
         1 EVENT        START-OF-SELECTION
           /DS1/FI_CR_REPT_PGSR802_VEND_P
           /DS1/FI_CR_REPT_PGSR802_VEND_P             135

    Hi Balaji,
    Here is what the dump said and my answers are right below them.
    <i>Possible errors:</i>
    o The maximum size of an SQL statement has been exceeded.</i>
    This may not be the reason in your case. This usually happens when you use the option FOR ALL ENTRIES
    <i>o The statement contains too many input variables.</i>
    Most likely this is your issue. I think your r_lifnr is filled with all the vendors in your system and filled as single values. In that case you may be exceeding a limit set on the system. Instead of trying to remove this setting, what I would suggest is to do the following.
    Define a select-option for LIFNR on your selection screen. This way users can have the flexibility of specifying certain vendors. If they don't enter anything, it is still ok. Don't fill it with single values.
    Use this select-option in your select statement. After the select statement, do a delete from itab where the vendors are not in your r_lifnr as below.
    DELETE t_bsak_tmp WHERE NOT lifnr IN r_lifnr.
    Also, avoid using client. You don't need that unless you really want to select from a different client other than your logon client. Your select statement is using logon client anyway, so you don't need to specify that.
    <i>o The space needed for the input data exceeds the available memory.</i>
    If the above changes are made and the problem is still there, then this is the next thing to look at.
    Srinivas

  • DBIF_RSQL_INVALID_RSQL Error while activating the ODS Object

    Hello BW Friends,
    We have used the Extractor 2LIS_11_VAHDR and enhanced and coded the user exit to extract the data to the required field. Extractor is working fine and able to get the records but when we tried to schedule a data load in BW the request was shown green in the ODS and when saw it in monitor it is still yellow and zero in PSA and the processing hasn't completed. When i tried to activate it manually there is a short dump generated with this error, DBIF_RSQL_INVALID_RSQL. If any one of you has encountered same problem please let us know. Appreciate your prompt response on this.
    Regards,
    Rajesh

    Raj,
    I misunderstood your question.... check whether source system job is processing or not? what about any blocked TRFC'sin SM58.
    try to find root cause... ODS activation is not a problem... load is not finished you tried to acivate the request still in the process Yellow.
    try to check in Monitor details tab page messages...
    All the best.
    Regards,
    Nagesh Ganisetti.
    Message was edited by: Nagesh Ganisetti
    Message was edited by: Nagesh Ganisetti

  • RunTime error DBIF_RSQL_INVALID_RSQL while updating infotype 0035

    Dear Experts,
    I am delimiting(changing the end date from future date to current date) the HR objects in IT 0035 using FM RH_CUT_INFTY. It is delimiting the records as per required.
    To do this update we have developed a report where we read the Object ID and the PERNR on the selection screen and inside the program we update IT35.
    The program executes in three steps:
    1. Lock HR Object
    2. Update(in synchronous mode) the records for the specified Object ID-PERNR pair using FM RH_CUT_INFTY
    3. Release HR object and go to next HR object and go back to step 1.
    The report is executing good when there are less number of records for an HR object. But, when the number of (PERNR)records for an HR object is more then the report is giving a po-up "Update was terminated" and when I checked the dump for the same in ST22, it gives the following details:
    Runtime Errors : DBIF_RSQL_INVALID_RSQL
    Exception         : CX_SY_OPEN_SQL_DB
    I would be grateful if anyone can please help me resolve this issue.
    Thanks,
    Jiten

    Hi Jiten,
    I don't know how much I can help you on this.
    But I found an FM: RH_CUT_INFTY_GENERIC
    This FM seems to be designed for mess process of CUT INFTY.
    I check the source code, the VTASK is set to 'B' when calling RH_CUT_INFTY in a loop.
        CALL FUNCTION 'RH_CUT_INFTY'
             EXPORTING
                  LOAD               = ' '
                  GDATE              = GDATE
                  HISTO              = HISTO
                  DEL_SUCC           = DEL_SUCC
                  VTASK              = 'B'
                  ORDER_FLG          = ORDER_FLG
                  COMMIT_FLG         = COMMIT_FLG
                  AUTHY              = AUTHY
              PPPAR_IMP          =
                  KEEP_LUPD          = KEEP_LUPD
                  WORKF_ACTV         = WORKF_ACTV
             TABLES
                  INNNN              = action_tab
               ILFCODE            =
             EXCEPTIONS
                  ERROR_DURING_CUT   = 1
                  NO_AUTHORIZATION   = 2
                  GDATE_BEFORE_BEGDA = 3
                  CUT_OF_TIMCO_ONE   = 4
                  CORR_EXIT          = 5
                  OTHERS             = 6.
    And when all the objects have been submitted to delimitation, call FM RH_UPDATE_DATABASE at last.
    I think this could be a workaround for your issue.
    Cheers,

  • Error DBIF_RSQL_INVALID_RSQL in R/3

    Dear All,
    I have some data to be extracted from R/3 (from custom generic datasource),
    but it always return red and the error message is :
    "Job terminated in source system -- Request set to red" and no record to be loaded.
    Then I checked to SM37 in R/3 with request BI_REQU....(REQU.... will be the request number in BW)
    and found that job is cancelled and returns error DBIF_RSQL_INVALID_RSQL.
    It happens since 28.11.2008 and before that the extraction is fine.
    I just wondering maybe it is because closing period our MM and FI module at the end of month,
    so the server performance will drop but today is two days after closing, why it happen again?
    I consult to basis team and they check the tablespace in R/3, it is fine.
    Is it any suggestion on this?
    Regrads,
    Steph

    hi,
    possible reasons are
    1) The reason could be in your where clause you may have more number of entries. For example if you are retrieving the data from BSAS for BSIS for allentries. In BSIS table you may have 10,000 GLs . If you use 10000 GLs in BSAS select statement then you will get this dump. Better split the no. of Gls and use appending statement in your select statement.
    2) Since you know already that the data selected will be large try writing the problematic Select as a static statement (not dynamic) and see what happens then. It is not very easy to see what causes the problem with your code as it could depend on many circumstances (number of fields selected, size of work area, what the actual DB table is). You may have to execute several times with amendments to trouble-shoot which part is causing your error.
    3) you could just check OSS-Note 1153350. It seems to be an error in standard program.
    4) Check SM21 log.
    It looks like an error at database level (just before exception has occurred) which should be there in SM21 log.
    5) There might be a chace of system being overloaded with several other process.
    Please try it after some time (assuming system will have free resources after some time). It will work.
    6) Please refer OSS note:
    Note 48230 - Parameters for the SELECT ... FOR ALL ENTRIES statement
    which explains the various option to solve your problem.
    The dump is occuring because of too many inputs(20000 material number) in the select option.
    Please let me know if this helpful,<removed by moderator>.
    it will help you
    regards
    vadlamudi
    Edited by: Siegfried Szameitat on Dec 3, 2008 11:16 AM

  • DBIF_RSQL_INVALID_RSQL when creating a Purchase Order (ME21N)

    Hi,
    The system is generating a short dump DBIF_RSQL_INVALID_RSQL when a user tries to create a purchase order.
    what could be the cause of this? i have analysed the short dump in st22 and looked at sm21 and st11 and they are giving very little detaill.
                                                                                    Error in the module RSQL accessing the database interface.                                                                               
    What happened?                                                                               
    Error in ABAP application program.                                                                               
    The current ABAP program "SAPLZMM_GET_ACT" had to be terminated because one of    
    the                                                                               
    statements could not be executed.                                                                               
    This is probably due to an error in the ABAP program.                                                                               
    What can you do?                                                                               
    Print out the error message (using the "Print" function)                          
    and make a note of the actions and input that caused the                          
    error.                                                                               
    To resolve the problem, contact your SAP system administrator.                    
    You can use transaction ST22 (ABAP Dump Analysis) to view and administer          
    termination messages, especially those beyond their normal deletion              
    date.                                                                               
    Error analysis                                                                               
    An exception occurred. This exception is dealt with in more detail below  
    . The exception, which is assigned to the class 'CX_SY_OPEN_SQL_DB', was  
    neither                                                                  
    caught nor passed along using a RAISING clause, in the procedure          
    "ZMM_GET_ACT_PLN" "(FUNCTION)"                                           
    Since the caller of the procedure could not have expected this exception  
    to occur, the running program was terminated.                            
    The reason for the exception is:                                          
    The SQL statement generated from the SAP Open SQL Statement violates a    
    restriction imposed by the database system used in R/3.                                                                               
    Possible errors:                                                          
    o The maximum size of an SQL statement has been exceeded.                
    o The statement contains too many input variables.                       
    o The space needed for the input data exceeds the available memory.      
    o ...                                                                               
    You can usually find details in the system log (SM21) and in the          
    developer trace of the work process (ST11).                               
    If an error occurs the developer trace often informs you about the        
    current restrictions.                                                                               
    How to correct the error                                                                               
    The exception must either be prevented, caught within the procedure             
    "ZMM_GET_ACT_PLN"                                                              
    "(FUNCTION)", or declared in the procedure's RAISING clause.                    
    To prevent the exception, note the following:                                   
    The SAP Open SQL statement must be divided into several smaller units.          
    If the problem occurred due to the use of an excessively large table            
    in an IN itab construct, you can use the addition FOR ALL ENTRIES               
    instead.                                                                        
    When you use this addition, the statement is split into smaller units           
    according to the restrictions of the database system used.                                                                               
    You may able to find an interim solution to the problem                         
    in the SAP note system. If you have access to the note system yourself,         
    use the following search criteria:                                                                               
    "DBIF_RSQL_INVALID_RSQL" CX_SY_OPEN_SQL_DBC                                     
    "SAPLZMM_GET_ACT" or "LZMM_GET_ACTU01"                                          
    "ZMM_GET_ACT_PLN"                                                               

    Hi,
    Wherever you have used SQL statement please do check all the fields here as some of the fields are not in correct order as they are required per the actual table in dictonary, to just verify that you can use addition of "INTO CORRESPONDING FIELDS OF INTERNALTABLE" in your SQL statement as this will not require the fields to be in order but this may cause performance issue.
    Thanks and Regards
    Sudharshan

  • Runtime error DBIF_RSQL_INVALID_RSQL on BW Idoc archiving.

    Hi Experts,
    I am facing one issue while performing IDOC archiving in BW system.
    While running write program with RSEXARCA, I am getting ABAP dump DBIF_RSQL_INVALID_RSQL
    with a exception CX_SY_OPEN_SQL_DB. 'Error in RSQL module of database interface' as a short text.
    Please let me know what could be the problem.
    Regards,
    Mohan.

    Hi,
    You can try to implement the latest DBSL patch in order to solve this. You can implement the latest Kernel and DBSL patches from the links below.
    -> http://service.sap.com/patches
    -> Support Packages and Patches - Entry by Application Group
      -> Additional Components
       -> SAP Kernel
    Regards,
    Rafael

  • Runtime Error # DBIF_RSQL_INVALID_RSQL for large size BOMs

    Hi All,
    I am facing problem running a custom report for Routing summary. When Executing the report gives the above runtime error.
    ShrtText: Error in RSQL module of database interface. 
    Error analysis :
    An exception occurred. This exception is dealt with in more detail below                      
        . The exception, which is assigned to the class 'CX_SY_OPEN_SQL_DB', was neither caught nor passed along using a RAISING clause, in the procedure                              
         "CP_SC_MTK_LOAD_COMPLEX_BY_TSK" "(FUNCTION)"                                                 
    Since the caller of the procedure could not have expected this to occur, the running program was terminated.                                                
        The reason for the exception is: The SQL statement generated from the SAP Open SQL Statement violates restriction imposed by the database system used in R/3.                                                                               
    Possible errors:                                                                               
    o The maximum size of an SQL statement has been exceeded.                                    
         o The statement contains too many input variables.                                           
         o The space needed for the input data exceeds the available memory.
    How to correct the error                                                                               
    The SAP Open SQL statement must be divided into several smaller units.                        
        If the problem occurred due to the use of an excessively large in an IN itab construct, you can use the addition FOR ALL ENTRIES                             
        instead.  When you use this addition, the statement is split into smaller according to the restrictions of the database system used.                                                                               
    You may able to find an interim solution to the problem in the SAP note system. If you have access to the note system yourself,                       
        use the following search criteria:                                                                               
    "DBIF_RSQL_INVALID_RSQL" CX_SY_OPEN_SQL_DBC                                                   
        "SAPLCPSC" or "LCPSCU03"                                                                      
        "CP_SC_MTK_LOAD_COMPLEX_BY_TSK"   
    This report uses SAP standard Function module "CP_SC_MTK_LOAD_COMPLEX_BY_TSK" in the select statement.
    When Analysed, We found that since the BOM size for routing is large(More than 2000 components), this dump is coming. for rest of the routings, the report works fine.
    I could not found any SAP note relevant for this.
    This is definitely related to large BOM size, if anybody of you came across such problem and how to correct it now.

    Hi,
    We did solve this problem. This problem usually comes when there is very large records in internal table (More than 2000 Approx).
    We need to split that select statement and make multiple statements so that the memory overflow doesn't happen. refer SAP note: 13607.
    We modified the coding as follows by splitting the SELECT statementu2026
    SELECT DISTINCT MANDT PLNTY PLNNR PLNAL MATNR WERKS VBELN POSNR
            INTO CORRESPONDING FIELDS OF TABLE E_MTK_IDENT
            FROM MAPL FOR ALL ENTRIES IN I_TSK_IDENT
            WHERE PLNTY =  I_TSK_IDENT-PLNTY    AND
                  PLNNR =  I_TSK_IDENT-PLNNR    AND
                  PLNAL =  I_TSK_IDENT-PLNAL    AND
                  MATNR IN I_CPSC_MTK_SEL-MATNR AND
                  WERKS IN I_CPSC_MTK_SEL-WERKS AND
                  VBELN IN I_CPSC_MTK_SEL-VBELN AND
                  POSNR IN I_CPSC_MTK_SEL-POSNR AND
                 (FREE_WHERE-WHERE_TAB).
      SELECT MANDT PLNTY PLNNR PLNAL MATNR WERKS VBELN POSNR
             INTO CORRESPONDING FIELDS OF TABLE E_MTK_IDENT
             FROM MAPL FOR ALL ENTRIES IN I_TSK_IDENT
             WHERE PLNTY =  I_TSK_IDENT-PLNTY    AND
                   PLNNR =  I_TSK_IDENT-PLNNR    AND
                   PLNAL =  I_TSK_IDENT-PLNAL    AND
                  (FREE_WHERE-WHERE_TAB).
      Delete E_MTK_IDENT where matnr NOT in I_CPSC_MTK_SEL-MATNR.
      Delete E_MTK_IDENT where werks NOT in I_CPSC_MTK_SEL-WERKS.
      Delete E_MTK_IDENT where VBELN NOT in I_CPSC_MTK_SEL-VBELN.
      Delete E_MTK_IDENT where POSNR NOT in I_CPSC_MTK_SEL-POSNR.
    Hope this helps you.
    Regards, Madhu

  • Runtime Error - DBIF_RSQL_INVALID_RSQL - Too many OPEN CURSOR

    When I try to train a Decision Tree Model via an APD process in RSANWB, I get a runtime error when my model is configured with too many parameter fields or too many leaves (with 2 leaves it works, with more it fails).
    By searching SAP Notes I see that there are many references to this kind of runtime errors. But no note on occurences of it in RSANWB / RSDMWB .
    Any information on this anyone?
    Claudio Ciardelli
    Runtime Errors         DBIF_RSQL_INVALID_RSQL
    Date and Time          29.07.2005 16:19:21
    |ShrtText                                                                                |
    |    Error in RSQL module of database interface.                                                   |
    |What happened?                                                                                |
    |    Error in ABAP application program.                                                            |
    |                                                                                |
    |    The current ABAP program "SAPLRS_DME_DECISION_TREE_PRED" had to be terminated                 |
    |     because one of the                                                                           |
    |    statements could not be executed.                                                             |
    |                                                                                |
    |    This is probably due to an error in the ABAP program.                                         |
    |                                                                                |
    |Error analysis                                                                                |
    |    The system attempted to open a cursor for a SELECT or OPEN CURSOR                             |
    |    statement but all 16 cursors were already in use.                                             |
    |    The statement that failed accesses table "/BIC/0CDT000030 ".                                  |
    |    The erroneous statement accesses table "/BIC/0CDT000030 ".                                    |
    |Trigger Location of Runtime Error                                                                 |
    |    Program                                 SAPLRS_DME_DECISION_TREE_PRED                         |
    |    Include                                 LRS_DME_DECISION_TREE_PREDU06                         |
    |    Row                                     103                                                   |
    |    Module type                             (FUNCTION)                                            |
    |    Module Name                             RS_DME_DTP_EVALUATE                                   |
    |Source Code Extract                                                                               |
    |Line |SourceCde                                                                                |
    |   73|* Prepare for Data evaluation                                                               |
    |   74|  CATCH SYSTEM-EXCEPTIONS OTHERS = 15.                                                      |
    |   75|    CREATE DATA ref TYPE (i_enum_dbtab).                                                    |
    |   76|    ASSIGN ref->* TO <fs_wkarea>.                                                           |
    |   77|    ASSIGN COMPONENT gv_class_dbposit OF STRUCTURE                                          |
    |   78|                      <fs_wkarea> TO <fs_class>.                                            |
    |   79|    CREATE DATA ref TYPE TABLE OF (i_enum_dbtab).                                           |
    |   80|    ASSIGN ref->* TO <ft_data>.                                                             |
    |   81|                                                                                |
    |   82|  ENDCATCH.                                                                                |
    |   83|  IF sy-subrc = 15.                                                                         |
    |   84|*   Error on Assignment.                                                                    |
    |   85|    CALL FUNCTION 'RS_DME_COM_ADDMSG_NOLOG'                                                 |
    |   86|      EXPORTING                                                                             |
    |   87|        i_type    = 'E'                                                                     |
    |   88|        i_msgno   = 301                                                                     |
    |   89|        i_msgv1   = 'EVALUATION_PHASE'                                                      |
    |   90|      IMPORTING                                                                             |
    |   91|        es_return = ls_return.                                                              |
    |   92|    APPEND ls_return TO e_t_return.                                                         |
    |   93|    EXIT.                                                                                |
    |   94|  ENDIF.                                                                                |
    |   95|                                                                                |
    |   96|* For the un-trained Rec-Ids, evaluate.....                                                 |
    |   97|  REFRESH lt_recinp.                                                                        |
    |   98|  APPEND LINES OF i_t_records TO lt_recinp.                                                 |
    |   99|  SORT lt_recinp .                                                                          |
    |  100|* Open Cursor..                                                                             |
    |  101|  DATA: l_curs TYPE cursor.                                                                 |
    |  102|  DATA: l_psize TYPE i VALUE 10000.                                                         |
    |>>>>>|  OPEN CURSOR WITH HOLD l_curs FOR                                                          |
    |  104|   SELECT * FROM (i_enum_dbtab)                                                             |
    |  105|     WHERE rsdmdt_recid NOT IN                                                              |
    |  106|        ( SELECT rsdmdt_recid FROM                                                          |
    |  107|             (i_learn_tab) ).                                                               |
    |  108|                                                                                |
    |  109|*  Start Fetch...                                                                           |
    |  110|  DO.                                                                                |
    |  111|    FETCH NEXT CURSOR l_curs                                                                |
    |  112|      INTO CORRESPONDING FIELDS OF TABLE <ft_data>                                          |
    |  113|      PACKAGE SIZE l_psize.                                                                 |
    |  114|    IF sy-subrc NE space.                                                                   |
    |  115|      EXIT.                                                                                |
    |  116|    ENDIF.                                                                                |
    |  117|                                                                                |
    |  118|*     Process records...                                                                    |
    |  119|    LOOP AT <ft_data> ASSIGNING <fs_wkarea>.                                                |
    |  120|                                                                                |
    |  121|*     Call Prediction Function.                                                             |
    |  122|      CALL FUNCTION 'RS_DME_DTP_PREDICT_STRUCTURE'                                          |

    Hi Claudio,
    well the message is very clear and I think in your case you need to split your model into a few somehow equal models, each not having more than 2 leaves.
    Another option might be to do more things serially instead of parallel.
    Hope it helps
    regards
    Siggi

  • Runtime Error DBIF_RSQL_INVALID_RSQL

    Hello Gurus,
    One of the ABAP programs failed in the process chains with a short dump.
    The details are as follows:
    Could you help me resolve this?
    Thanks and best wishes,
    raj
    Runtime Error          DBIF_RSQL_INVALID_RSQL
    Exception              CX_SY_OPEN_SQL_DB
           Occurred on     02.07.2008 at   20:55:20
    What happened?
    Error in ABAP application program.
    The current ABAP program "Z_GENERATE_PLAN" had to be terminated
    because one of the
    statements could not be executed.
    This is probably due to an error in the ABAP program.
    What can you do?
    Print out the error message (using the "Print" function)
    and make a note of the actions and input that caused the
    error.
    To resolve the problem, contact your SAP system administrator.
    You can use transaction ST22 (ABAP Dump Analysis) to view and administer
    termination messages, especially those beyond their normal deletion
    date.
    is especially useful if you want to keep a particular message.
    Error analysis
    An exception occurred. This exception will be dealt with in more detail
    below. The exception, assigned to the class 'CX_SY_OPEN_SQL_DB', was not
    caught, which
    led to a runtime error. The reason for this exception is:
    The SQL statement generated from the SAP Open SQL Statement violates a
    restriction imposed by the database system used in R/3.
    Possible errors:
    o The maximum size of an SQL statement has been exceeded.
    o The statement contains too many input variables.
    o The space needed for the input data exceeds the available memory.
    o ...
    You can usually find details in the system log (SM21) and in the
    developer trace of the work process (ST11).
    If an error occurs the developer trace often informs you about the
    current restrictions.
    How to correct the error
    The SAP Open SQL statement must be divided into several smaller units.
    If the problem occurred due to the use of an excessively large table
    in an IN itab construct, you can use the addition FOR ALL ENTRIES
    instead.
    When you use this addition, the statement is split into smaller units
    according to the restrictions of the database system used.
    You may able to find an interim solution to the problem
    in the SAP note system. If you have access to the note system yourself,
    use the following search criteria:
    "DBIF_RSQL_INVALID_RSQL" CX_SY_OPEN_SQL_DBC
    "ZGENERATE_PLAN" or "Z_GENERATE_PLAN"
    "START-OF-SELECTION"
    Thanks and best wishes,
    raj

    Tried this solution:
    The current size of one of the input datasets was breaking the maximum length of the SQL statement (which is generated dynamically).  Adjust edthe program to handle situations when the input is too large.
    Will update you.
    Thanks,
    Raj

  • Runtime error "DBIF_RSQL_INVALID_RSQL" during unicode preconversion SPUMG

    Hi experts,
    I was performing the unicode preconversion with spumg on ECC 5.0. The system environment is HP-UX 11.31 and Oracle 10g.
    During  the scan lever 2: tables without language info, there's always an error when scan table "VBSEGK", meanwhile the runtime error "DBIF_RSQL_INVALID_RSQL" raised in ST22. Below is some information regarding to this error.
    Runtime error:
    Runtime Error          DBIF_RSQL_INVALID_RSQL
    Except.                CX_SY_OPEN_SQL_DB
    Date and Time          30.05.2011 05:44:42
    Error in ABAP application program.
    The current ABAP program "UMG_SCANNER" had to be terminated because one of the statements could not be executed.
    This is probably due to an error in the ABAP program.
    An exception occurred. This exception is dealt with in more detail below
    .The exception, which is assigned to the class 'CX_SY_OPEN_SQL_DB', was neither caught nor passed along using a RAISING clause, in the procedure "FETCH_NEXT"
    "(METHOD)".
    Since the caller of the procedure could not have expected this exception
    to occur, the running program was terminated.
    The reason for the exception is:
    The data read during a SELECT access could not be inserted into the
    target field.
    Either conversion is not supported for the target field's type or the
    target field is too short to accept the value or the data are not in a
    form that the target field can accept.
    Thanks and Regards,
    Kevin Yu

    Hi Kevin,
    this is probably caused by one or more incorrect / corrupt  entries in table VBSEGK.
    UMG_SCANNER reads the content of this table and is unable to do so for a specific  entry.
    Now it is necessary to find out, which entry causes this issue ...
    Maybe your colleagues from the according application (FI-GL-GL-X) can help you ?
    Best regards,
    Nils Buerckel

  • Runtime Error DBIF_RSQL_INVALID_RSQL on dataload to PSA

    Hi,
    Apologies for the long problem statement.
    We need to extract data from a non- SAP SQL system to our SAP Netweaver 7.01 (EhP1 SP5) BI system. We have established a UD Connection and connected to tables in the SQL system.
    After a few dataloads and data validity, some fields were changed in the source tables in the SQL system.
    Now, when we try to extract data into our PSA by triggering InfoPackage, it gives a Runtime Error with following messages:
    *Runtime Errors         DBIF_RSQL_INVALID_RSQL*
    *Exception              CX_SY_OPEN_SQL_DB*
    *Error in module RSQL of the database interface.*
    *An exception occurred that is explained in detail below.*
    *The exception, which is assigned to class 'CX_SY_OPEN_SQL_DB', was not caugh*
    *in*
    *procedure "INSERT_ODS" "(FORM)", nor was it propagated by a RAISING clause.*
    *Since the caller of the procedure could not have anticipated that the*
    *exception would occur, the current program is terminated.*
    *The reason for the exception is:*
    *In a SELECT access, the read file could not be placed in the target*
    *field provided.*
    *Either the conversion is not supported for the type of the target field,*
    *the target field is too small to include the value, or the data does not*
    *have the format required for the target field.*
    We tried creating another datasource on the same table and we could extract data successfully. There a quite a few more DS that have the same issue. Is there another way to resolve this issue while retaining current DS.
    Also, for another table which has more number of rec (arnd 20K), the extraction keeps running even after creating new datasource.
    Please help.
    -Abhishek.
    Edited by: Abhishek Rajan on Sep 28, 2010 8:05 PM

    Hi Rajan,
    Please find this thread.
    I guess it may be useful. When datasource structrue changes , there will inconsistency in database and will not allow us to delete or do data load.
    This has resolved my problem.
    PSA Not Deleting, error : DDL time(___1):.....0 milliseconds
    Thanks
    Vamsi

  • Runtime error - DBIF_RSQL_INVALID_RSQL, CX_SY_OPEN_SQL_DB in a fixed period

    hi
    i get a Runtime error - DBIF_RSQL_INVALID_RSQL, Exception - CX_SY_OPEN_SQL_DB when i run a periodic background program which is defined by myself
    i find that there are many threads refer to this problem
    but mine have something special,that is it would be cancelled because of the reason mentioned above in a fixed period(00:00am-08:30am) everyday (p.s. our company's standand work time begins at 08:30am),and in other time period of the day,it could run successfully.
    so i am confused ,what possible reasons would lead to this problem?what should i do to hand it ?
    waiting for your answer ,thanks very much.
    vita

    clemens
    thanks,i have tried your ways,but i think i am too new in this feild to get a point from the dump
    i will appriciate it if you could help me to analysis the dump info
    here are those info ,hope it is useful
       >>>>>     SELECT vbpaVBELN vbpaKUNNR  into TABLE it_kno FROM vbpa  WHERE  vbpaPARVW  ='WE' AND vbpaVBELN  IN  r_VBELN9.
         SORT it_kno by KUNNR .
         delete ADJACENT DUPLICATES FROM it_kno .
         LOOP at it_kno .
            r_KUNNR-sign   = 'I'.
            r_KUNNR-option = 'EQ'.
            r_KUNNR-low    = it_kno-KUNNR.
            COLLECT r_KUNNR.
            CLEAR r_KUNNR.
          ENDLOOP .
    系统字段的内容
    Name             Val.
    SY-SUBRC      0
    SY-INDEX       0
    SY-TABIX     42
    SY-DBCNT    230
    SY-FDPOS     0
    SY-LSIND     0
    SY-PAGNO   0
    SY-LINNO      1
    SY-COLNO    1
    SY-PFKEY
    SY-UCOMM
    SY-TITLE      订单执行跟踪表_后台程序
    SY-MSGTY   I
    SY-MSGID    SF
    SY-MSGNO  616
    SY-MSGV1  ZSDRD_17
    SY-MSGV2  RE
    SY-MSGV3  ZH
    SY-MSGV4
    SY-MODNO   0
    SY-DATUM   20091117
    SY-UZEIT     000015
    SY-XPROG    SAPCNVE
    SY-XFORM   CONVERSION_EXIT

  • Facing problem in select statement dump DBIF_RSQL_INVALID_RSQL CX_SY_OPEN_S

    Hi Experts,
    I  am facing the problem in the select statement where it giving the short dump
    DBIF_RSQL_INVALID_RSQL CX_SY_OPEN_S.
    i have searched many forms, but i found that the select option s_matnr have the limitaion 2000 entreis, but i am passing same s_matnr to other select statement with more than 2000 entries but it is not giving me any short dump.
    but i am facing problem with only one select statement where if i  pass select option s_matnr more than 1500 entris also giving short dump.
    my select statement is
    SELECT * FROM bsim                                       
             INTO CORRESPONDING FIELDS OF TABLE g_t_bsim_lean  
               FOR ALL ENTRIES IN t_bwkey   WHERE  bwkey = t_bwkey-bwkey
                                            AND    matnr IN matnr
                                            AND    bwtar IN bwtar
                                            AND    budat >= datum-low.
    in the internal table g_t_bsim_lean internal table contain all the fields of the table bsim with 2 fields from other table.
    Please let me know whether i need to change the select statement or any other solution for this.
    Regards,
    udupi

    my select query is like this:
    DATA: BEGIN OF t_bwkey OCCURS 0,                          "184465
              bwkey LIKE bsim-bwkey,                            "184465
            END OF t_bwkey.                                     "184465
      LOOP AT g_t_organ          WHERE  keytype  =  c_bwkey.
        MOVE g_t_organ-bwkey     TO  t_bwkey-bwkey.
        COLLECT t_bwkey.                                        "184465
      ENDLOOP.                                                  "184465
      READ TABLE t_bwkey INDEX 1.                               "184465
      CHECK sy-subrc = 0.                                       "184465
      SELECT * FROM bsim                                        "n443935
             INTO CORRESPONDING FIELDS OF TABLE g_t_bsim_lean   "n443935
               FOR ALL ENTRIES IN t_bwkey   WHERE  bwkey = t_bwkey-bwkey
                                            AND    matnr IN matnr
                                            AND    bwtar IN bwtar
                                            AND    budat >= datum-low.

  • SAP BW 3.5 "Error in SQL Statement: DBIF_RSQL_INVALID_RSQL" in Infospoke

    Hi ,
    I am working on SAP BW 3.5.
    while downloading the records through infospoke and giving them to the Application server side, I am getting an error  "Error in SQL Statement: DBIF_RSQL_INVALID_RSQL".
    Daily the Infospoke runs on delta mode. But for downloading of few records i have deactivated the delta and changed it in to Full mode. After downloading the data I again Activated the delta.but while Executing on Background mode I am getting an error mentioned above.
    can anyone please suggest a solution for resolving this error?
    Thanks in advance.
    Santosh.

    Hi:
    Did you do some recent change in the objects?. I face sometimes this error and it is due to misalignment among the objects in a data flow (cubes, DSOs, transformations, DTPs, etc.).
    What you can do is activate everything again.
    Best regards.

  • 'DBIF_RSQL_INVALID_RSQL' short dump

    Hello All,
    I have a dynamic where_clause in a select query. ie its created at runtime. I get a short dump 'DBIF_RSQL_INVALID_RSQL' at the select statement. The reason shown in ST22 is:
    Possible errors:
    o The maximum size of an SQL statement has been exceeded.
    o The statement contains too many input variables.
    o The space needed for the input data exceeds the available memory.
    Could you please suggest a solution to the problem, since the data to be fetched is large I would not want to use select-endselect loop as that would make it slower.
    Thanks in advance,
    Anju

    Hi Anju,
    Check the link
    [ Perfect link|
    DBIF_RSQL_INVALID_RSQL;
    Regards,
    Sandeep

Maybe you are looking for