Any EVAL() equalant functions in SQL or PL/SQL

good day
i have 2 loops ,
outer loop has the real data from a table
and
inner loop has the column name to be selected from outer loop.
so in runtime, i need to select the columns dynamically .thats why i use inner loop. please see below.
for i in data Loop
for j in col_name Loop
--column name of data loop should be selected from this col_name loop.
dbms_output.put_line(i.||j.col_name);
End Loop;
End Loop;
But this should not work.
is there any eval function in plsql like in java and javascript to resolve this?
please advice.
thanks

> so in runtime, i need to select the columns dynamically .thats why i use
inner loop.
There are two basic approaches to dealing with dynamic projections. (projection = the columns and data types returned by a SELECT)
One is to use an interface that allows you, at run-time, to describe the projection. This is called a cursor's describe interface. In PL/SQL, that requires you to create a DBMS_SQL cursor. Details are in the [url
http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/d_sql.htm#sthref7370]Oracle® Database PL/SQL Packages and Types Reference guide.
The other approach is to deal with the projection as a collection. This is illustrated below. The two problems with this approach is that you must use the collection's constructor in the projection, and that you must deal with implicit conversions or hardcode explicit data type conversions.
SQL> create or replace type TStrings as table of varchar2(4000);
2 /
Type created.
SQL>
SQL> declare
2 cursor c is
3 select
4 TStrings( object_id, object_name, object_type, created )
5 from user_objects
6 where rownum < 3;
7 colValue TStrings;
8 begin
9 open c;
10 loop -- data loop
11 fetch c into colValue;
12 DBMS_OUTPUT.put_line( '**start of row**' );
13 for i in 1..colValue.Count
14 loop -- column loop
15 DBMS_OUTPUT.put_line( 'column '||i||' value='|| colValue(i) );
16 end loop;
17 DBMS_OUTPUT.put_line( '**end of row**' );
18 exit when c%NOTFOUND;
19 end loop;
20 close c;
21* end;
SQL> /
**start of row**
column 1 value=12108
column 2 value=BIN$OU4aqY4cfvXgQPsKOl1I1A==$0
column 3 value=TABLE
column 4 value=2007/08/31 12:20:47
**end of row**
**start of row**
column 1 value=11753
column 2 value=BONUS
column 3 value=TABLE
column 4 value=2007/08/27 14:26:57
**end of row**
**start of row**
column 1 value=11753
column 2 value=BONUS
column 3 value=TABLE
column 4 value=2007/08/27 14:26:57
**end of row**
PL/SQL procedure successfully completed.
SQL>

Similar Messages

  • SQL Query (PL/SQL Function Body returning SQL query) doesn't return any row

    I have a region with the following type:
    SQL Query (PL/SQL Function Body returning SQL query).
    In a search screen the users can enter different numbers, separated by an ENTER.
    I want to check these numbers by replacing the ENTER, which is CHR(13) || CHR(10) I believe, with commas. And then I can use it like this: POD IN (<<text>>).
    It's something like this:
    If (:P30_POD Is Not Null) Then
    v_where := v_where || v_condition || 'POD IN (''''''''||REPLACE(''' || :P30_POD || ''', CHR(13) || CHR(10), '','')||'''''''''')';
    v_condition := ' AND ';
    End If;
    But the query doesn't return any rows.
    I tried to reproduce it in Toad:
    select * from asx_worklistitem
    where
    POD IN (''''||REPLACE('541449200000171813'||CHR(13) || CHR(10)||'541449206006341366', CHR(13) || CHR(10), ''',''')||'''')
    ==> This is the query that does't return any rows
    select (''''||REPLACE('541449200000171813'||CHR(13) || CHR(10)||'541449206006341366', CHR(13) || CHR(10), ''',''')||'''')
    from dual;
    ==> This returns '541449200000171813','541449206006341366'
    select * from asx_worklistitem
    where pod in ('541449200000171813','541449206006341366');
    ==> and when I copy/paste this in the above query, it does return my rows.
    So why does my first query doesn't work?
    Doe anyone have any idea?
    Kind regards,
    Geert
    Message was edited by:
    Zorry

    Thanks for the help.
    I made it work, but via the following code:
    If (:P30_POD Is Not Null) Then
    v_pods := REPLACE(:P30_POD, CHR(13) || CHR(10));
    v_where := v_where || v_condition || 'POD IN (';
    v_counter := 1;
    WHILE (v_counter < LENGTH(v_pods)) LOOP
    v_pod := SUBSTR(v_pods, v_counter, 18);
    IF (v_counter <> 1) THEN
    v_where := v_where || ',';
    END IF;
    v_where := v_where || '''' || v_pod || '''';
    v_counter := v_counter + 18;
    END LOOP;
    v_where := v_where || ')';
    v_condition := ' AND ';
    End If;But now I want to make an update of all the records that correspond to this search criteria. I can give in a status via a dropdownlist and that I want to update all the records that correspond to one of these POD's with that status.
    For a region you can build an SQL query via PL/SQL, but for a process you only have a PL/SQL block. Is the only way to update all these records by making a loop and make an update for every POD that is specified.
    Because I think this will have a lot of overhead.
    I would like to make something like a multi row update in an updateable report, but I want to specify the status from somewhere else. Is this possible?

  • Is there any way to use Control Break in a SQL Query

    Hi,
    Is there any way to use a control break on Dept column in a SQL query to have a Output-2 instead of Output-1.
    Is there any way to modify the SQL query.
    SQL
    select dept, loc, count(*)
      from dept
    group by dept, locOutput-1
      Dept      Loc       Count(*)
      10         AA        1
      10         BB        2
      10         CC        2
      20         AA        2
      20         BB        2Output-2
      Dept      Loc       Count(*)
      10         AA        1
                 BB        2
                 CC        2
      20         AA        2
                 BB        2Thanks,
    Deepak

    DeepakJ wrote:
    Hi,
    Is there any way to use a control break on Dept column in a SQL query to have a Output-2 instead of Output-1.
    Is there any way to modify the SQL query.
    SQL
    select dept, loc, count(*)
    from dept
    group by dept, locOutput-1
    Dept      Loc       Count(*)
    10         AA        1
    10         BB        2
    10         CC        2
    20         AA        2
    20         BB        2Output-2
    Dept      Loc       Count(*)
    10         AA        1
    BB        2
    CC        2
    20         AA        2
    BB        2
    Yes, using the <tt>lag</tt> analytic function and specified ordering of the data:
    select
        nullif(d.deptno, lag(d.deptno) over (order by d.deptno, d.loc, e.mgr nulls first)) deptno
      , nullif(d.loc, lag(d.loc) over (order by d.deptno, d.loc, e.mgr nulls first)) loc
      , e.mgr
      , count(*) n
    from
        dept d
          join emp e
            on d.deptno = e.deptno
    group by
        d.deptno
      , d.loc
      , e.mgr
    order by
        d.deptno
      , d.loc
      , e.mgr nulls first;
    DEPTNO  LOC       MGR   N
        10  NEW YORK         1
                      7782   1
                      7839   1
        20  DALLAS    7566   2
                      7788   1
                      7839   1
        30  CHICAGO   7698   4
                      7839   1
        40  BOSTON    7698   2
                      7902   1

  • SQL Query (pl/sql function body returning Sql query)

    Hi All,
    I have created a region of "SQL Query (pl/sql function body returning Sql query)" type and it is working fine , but when I am migrating(export /import) this application from development to systest environment ,
    It gives error for this region :
    Error ERR-1101 Unable to process function body returning query.
    OK
    ORA-06550: line 1, column 52: PLS-00306: wrong number or types of arguments in call to 'FU_TRADE_REPORT_QUERY' ORA-06550: line 1, column 45: PL/SQL: Statement ignored
    Any pointer ...why this is happening.
    Thanks
    Dikshit

    If your function is a stored function that is called from within APEX (function body not coded into the app itself), have you made sure that the function has been created and compiles ok prior to installing your apex app.
    If there are some dependency issues between other PL/SQL units or database objects that are causing your function not to be compiled, you apex install will fail as you are trying to reference an uncompelled bit of pl/sql.
    Let me know how you get on
    Regards
    Duncan

  • SQL Query ( PL/SQL function body returning query ) page

    Hello Friends,
    I have a page with type SQL Query ( PL/SQL function body returning query ).
    I have written a pl/sql block that returns a sql query - select statment.
    Some times i am getting no data found error - does it got to do with the variable that stores the query .
    =======================
    ORA-06502: PL/SQL: numeric or value error: character string buffer too small
    Error ERR-1101 Unable to process function body returning query.
    OK
    =====================
    When the query is returned with records where exactly the records are stored is it in the variable declared in pl/sql block or with the Oracle Apex implicit cursor.
    Here's the pl/sql block ..
    The query is generated while the user is navigating through pages ..
    ====================
    declare
    l_return_stmt varchar2(32767);
    l_select varchar2(32000);
    l_from varchar2(32000);
    l_where varchar2(32000);
    l_order_by varchar2(32000);
    l_stmt_recordcount varchar2(32000);
    l_recordcount number ;
    begin
    l_select := 'select '||:P10_VARLIST1||:P10_VARLIST2||:P10_VARLIST3
    ||:P10_VARLIST4||:P10_VARLIST5;
    l_from := ' from '||:P10_RELATION;
    if length(:P10_WHERE) > 0 then
    l_where := ' where '||:P10_WHERE;
    else
    l_where := '';
    end if;
    if length(:P10_ORDER_BY) > 0 then
    l_order_by := ' order by '||:P10_ORDER_BY;
    else
    l_order_by := '';
    end if;
    l_return_stmt := l_select||l_from||l_where||l_order_by;
    :P10_STMT := l_return_stmt;
    return l_return_stmt;
    end;
    =============================
    Appreciate your help in this regard.
    thanks/kumar
    Edited by: kumar73 on Apr 22, 2010 6:38 AM

    It looks like the query string you are trying to pass back exceeds the 32K limit for a varchar. Where this is happening is kind of difficult to tell as it could be any number of points, and also depends on what you are passing into the process via page items.
    I would first try to establish what combination of page items causes this error to occur. Then, starting from the bottom and working your way backwards, I would start 'switching off' some of the items you use to build your query until it breaks again, thus establishing which part is leading to the error.
    Also, I'm not sure what :P10_STMT is doing (are you maybe using this for visiblity of the query created)?
    It looks like the query string you are trying to pass back exceeds the 32K limit for a varchar. Where this is happening is kind of difficult to tell as it could be any number of points, and also depends on what you are passing into the process via page items.
    I would first try to establish what combination of page items causes this error to occur. then, starting from the bottom and working your way backwards, I would start 'switching off' some of the items you use to build your query until it breaks again, thus establishing which part is leading to the error.
    Also, I'm not sure what :P10_STMT is doing (are you maybe using this for visiblity of the query created)?

  • SQL Query (PL/SQL function body returning SQL query) when using to_char

    we are trying to build a report page of Type SQL Query (PL/SQL function body returning SQL query).
    our query is so simple, we need to extract the month from the recording_date column.
    declare
    l_query varchar2(1000);
    begin
    l_query:='select to_char(recording_date,'MM')from re_productive';
    return l_query;
    end;
    but we are having the following problem for this query
    Function returning SQL query: Query cannot be parsed within the Builder. If you believe your query is syntactically correct, check the generic columns checkbox below the region source to proceed without parsing.
    (ORA-06550: line 4, column 42: PLS-00103: Encountered the symbol "MON" when expecting one of the following: . ( * @ % & = - + ; < / > at in is mod remainder not rem <> or != or ~= >= <= <> and or like between || multiset member SUBMULTISET_ The symbol ". was inserted before "MON" to continue.)
    Notes:
    1-the query is correct and it was tested under Toad and SQL Plus.
    2- we tried Use Generic Column Names (parse query at runtime only) option but we get the same problem.
    any quick help please.

    Hi
    You haven't escaped your quotes in the string. Try this...
    DECLARE
    l_query VARCHAR2(32767);
    BEGIN
    l_query:= 'select to_char(recording_date,''MM'') from re_productive';
    RETURN l_query;
    END;Cheers
    Ben

  • Sql query(PL/SQL function body return SQL query) with in(x,y,z) condition

    Hello,
    I've set up a region definition of type "SQL Query(PL/SQL function body return SQL query). In my query I make use of an "in" condition. When I populate :P755_INC_BARG_UNIT with a value of 0F (no quotes), I get the correct count. However, when I set :P755_INC_BARG_UNIT to 0F, 0E I get an invalid count. What do I have to set the page item to?
    When running the query in TOAD, and setting :P755_INC_BARG_UNIT to the string inside the brackets (0F, 0E) I get the proper count.
    The code I use is shown below. Any help would be appreciated,
    Alex.
    DECLARE
    v_sql VARCHAR2(32767);
    BEGIN
    SELECT count(*) "cnts",
    ''Faculty data file IDs missing in appt table'' "err_type"
    FROM hradmin.et_faculty_salary fs left outer join
    hradmin.appointments appt
    ON trim(fs.empl_id) = appt.emp_emp
    and appt.ear_activ <> ''Z''
    and appt.ear_type = ''F''
    and (appt.ear_class in (''A'',''B'',''C'',''D''))
    and appt.ear_bargunit in ( :P755_INC_BARG_UNIT )
    WHERE appt.emp_emp is null
    RETURN v_sql;
    END;

    Alex,
    try something like:
    DECLARE
    v_sql VARCHAR2(32767);
    BEGIN
    v_sql := <YOUR_SQL_STATEMENT_WITH_P755_INC_BARG_UNIT_IN_IT>;
    v_sql :=  REPLACE(v_sql, ':P755_INC_BARG_UNIT',:P755_INC_BARG_UNIT);
    RETURN v_sql;
    END; But before doing it read this:
    http://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:210612357425
    After reading you will be able to find the best solution yourself.
    Lev

  • Wild card searching in sql squery (pl/sql function body returning......)

    Hi,
    I've a report based on a sql query (pl/sql function body returnin a sql query).
    One of the statements is
    select .. from ...
    where name_of_person = :P17_NAAM
    I like to built a wild card possibility (with like '%l%m%') to show all persons with in their name an l, and an m (after the l)
    how to modify this statement?
    any reaction will be appreciated.
    Leo

    Leo,
    If I understand you correctly, you want to let the user type the value without wild cards, and than to add them programmatically. If that's the case, here is what you can do:
    1. Create a new item, say P17_HIDDEN_NAAM, that will contain the actual search criteria
    2. Modify your pl/sql to:
    begin
      :p17_hidden_naam := null;
      for l_i in 1..length(:P17_NAAM)
      loop
        :p17_hidden_naam := :p17_hidden_naam || '%' || substr(:P17_NAAM, l_i, 1);
      end loop;
      :p17_hidden_naam := :p17_hidden_naam || '%';
      return
        'select ..
           from ...
          where name_of_person like :p17_hidden_naam';
    end;By the way, I think that it's much better to train your users to use wild cards than to do it in the program.
    Sima

  • Length of a string without using any built-in functions

    code that returns the length of a string without using any built-in functions.
    thanks
    Sam

    A string is internally represented by a character array.  An array of characters will reside on the stack, not the heap.  Yes, we always learned that String is a reference type, but what goes on in your memory might still surprise you...
    A struct is internally represented by only it's private properties, sequentially on the stack.
    So basically, what I thought is happening by messing with the structlayout: is only tricking our programming a bit into thinking that the top X bytes on the stack represent a chararray, while actually we put them there as a string.
    Wrong. True. And wrong.
    A string is internally represented by, in that order, an array length, a string length, the chars. None of them resides on the stack.
    An array is internally represented by, in that order, an array length and the chars. None of them resides on the stack.
    When you use the FieldOffset attribute to handle the string as a char array, you don't get anything right:
    - the Length returned is the "array length" of the string, which is equal to the string length + 1.
    - the chars returned by the array indexer are shifted by 2 chars (the length of the "string length" field).
    You can use the FieldOffset to make that work, but it needs a little bit more work.
    unsafe static int Test()
    string myString = "This string may contain many string inside this string";
    string testString = "string";
    int countResult = 0;
    fixed (char* myChars = new StringToChar { str = myString }.chr, testChar = new StringToChar { str = testString }.chr)
    // The 2 first chars of the array are actually the string length.
    int myCharsLength = myChars[1] << 16 | myChars[0];
    int testCharLength = testChar[1] << 16 | testChar[0];
    for (int i = 0; i < myCharsLength - testCharLength + 1; i++)
    if (myChars[i + 2] == testChar[2])
    for (int j = 1; j < testCharLength; j++)
    var c = testChar[7];
    if (myChars[i + 2 + j] != testChar[j + 2])
    goto endOfCharAnalyses;
    countResult++;
    endOfCharAnalyses:
    continue;
    return countResult;

  • Log Function behaving diffently in SQL vs Pl/SQL

    Hello
    This equation works OK in SQL but its implementation in PL/SQL throws an error:
    SELECT CAST(LOG(2,32) as FLOAT) FROM DUAL;
    Returns: 5
    vs
    x FLOAT := 0;
    x := CAST(LOG(2,32) as FLOAT) ;
    PLS-00382: expression is of wrong type
    Incidentally I ran into a situation where LOG(2,32) return 5 in SQL but returns 4 where formatted TRUNC(LOG(2,32),0)
    Any assistance would be appreciated

    [email protected] wrote:
    This is not so much specific to LOG function. More a so "rounding behavior" of SQLPLUS due to environment default settings.??? It has nothing to do with rounding. You'll get same PLS-00382 for pretty much any built-in function:
    SQL> declare
      2  x FLOAT := 0;
      3  begin
      4  x := CAST(LOG(2,32) as FLOAT) ;
      5  end;
      6  /
    x := CAST(LOG(2,32) as FLOAT) ;
    ERROR at line 4:
    ORA-06550: line 4, column 11:
    PLS-00382: expression is of wrong type
    ORA-06550: line 4, column 1:
    PL/SQL: Statement ignored
    SQL> declare
      2  x FLOAT := 0;
      3  begin
      4  x := CAST(POWER(2,32) as FLOAT) ;
      5  end;
      6  /
    x := CAST(POWER(2,32) as FLOAT) ;
    ERROR at line 4:
    ORA-06550: line 4, column 11:
    PLS-00382: expression is of wrong type
    ORA-06550: line 4, column 1:
    PL/SQL: Statement ignored
    SQL> declare
      2  x FLOAT := 0;
      3  begin
      4  x := CAST(mod(3,2) as FLOAT) ;
      5  end;
      6  /
    x := CAST(mod(3,2) as FLOAT) ;
    ERROR at line 4:
    ORA-06550: line 4, column 11:
    PLS-00382: expression is of wrong type
    ORA-06550: line 4, column 1:
    PL/SQL: Statement ignored
    SQL> Oracle still maintains two separate engines for SQL and PL/SQL. And the above bug is obviously related to that. Now same built-in function has separate implementation SQL and PL/SQL. In PL/SQL it is package STANDARD. At first I thought it is where bug manifests itself. However:
    SQL> SELECT CAST(sys.standard.LOG(2,32) as FLOAT) FROM DUAL;
    CAST(SYS.STANDARD.LOG(2,32)ASFLOAT)
                                      5
    SQL> So most likely bug is caused by FLOAT implementation in PL/SQL.
    SY.

  • Percentile & percentage function in SQL or PL/SQL ?

    Hi all,
    I was wondering if there is any
    Percentile or percentage functions in SQL or PL/SQL  to calculate ??
    I came across percentile_rank , but i didnt find really good example online .... so i wasnt sure if thats right function for calculating  percentile Any example will be great !!
    THank you so much !!!

    Thank you so much frank and tubby !! It just amazing to see so many powerful aggregate and anlytic functions are available in 11g.
    Here is the example data i was working on
    with x as (
    select '100' value_amt, '6' cnt  from dual union all
    select '200' value_amt, '5' cnt  from dual union all
    select '500' value_amt, '10' cnt  from dual union all
    select '700' value_amt, '12' cnt  from dual union all
    select '900' value_amt, '14' cnt  from dual )
    select * from x;
    I m trying to calucalte the column called "avg_value" by dividing " value_amt / cnt ". I was just wondering if i need to use any function to calculate
    Here is the column "avg_value" look like
    with y as (
    select '100' value_amt, '6' cnt, '16' avg_value  from dual union all
    select '200' value_amt, '5' cnt,  '40' avg_value from dual union all
    select '500' value_amt, '10' cnt, '50' avg_value from dual union all
    select '700' value_amt, '12' cnt,  '58.33'avg_value from dual union all
    select '900' value_amt, '14' cnt, '64.28' avg_value   from dual )
    select * from y;Thank you so much!! I really appriciate it !!

  • Does anyone out there pleaze know of any software equal to the much loved

    Does anyone out there please know of any software equal to the much loved & missed Adobe Streamline?... Illustrator's trace function just ISN'T on par...

    Does anyone out there please know of any software equal to the much loved & missed Adobe Streamline?... Illustrator's trace function just ISN'T on par...

  • Any help in the Error in opening PL-SQL

    Hi there, actually I'm interested to learn Oracle database and developer. and I installed Oracle Database because I want to work on PL-SQL and then I'm going to install the Forms & Reports. but until now it doesn't want to work properly the PL-SQL.
    I installed the Oracle Database 11g on Win Vista. Is there any problem for installation. Why Oracle is very difficult in installing their software? and I hope if anyone can give me a procedure on how to install the Oracle in a good way.
    this is a picture of the problem I encountered in PL-SQL please look at it you might get any idea
    http://everybody.jeeran.com/OracleSQL.jpg

    Hi,
    Welcome to the forum!
    Oracle has very good documentation about installation task, you should read it before the installation [Oracle® Database Installation Guide 11g Release 1 (11.1) for Microsoft Windows|http://download.oracle.com/docs/cd/B28359_01/install.111/b32006/toc.htm].
    This is a SQL and PL/SQL forum, you should post installation questions in this forum [Forum: Installation|http://forums.oracle.com/forums/forum.jspa?forumID=64]
    For the error you are having, you could see (for example) [ORA-12560:TNS:protocol adapter error|http://www.dba-oracle.com/t_ora_12560_tns_protocol_adapter_error.htm]
    Regards,

  • I think I finished installing Mountain Lion, and am at the "log in" page with my name and the Lion icon, but I cannot do any of the functions on screen. That is, I cannot log in, sleep, restart, or shut down. I am running it on an Early 2009 Macbook Pro

    I think I finished installing Mountain Lion, and am at the "log in" page with the Mountain Lion icon, but I cannot do any of the functions on screen. That is, I cannot log in, sleep, restart, or shut down. I am running it on an Early 2009 Macbook Pro, which is said to have the capabilities of running Mountain Lion.

    BrettGoudy wrote:
    ...Is there any way I can install a partition that runs snow leopard on my early 2011 MB pro with what I have (new SSD, New RAM, Current version Lion running, no external drive, lack of original snow leopard disks [I lost them ] and the general 10.6.3 snow leopard boot disks)...
    As the last post suggests, call Apple and order a replacement original disc for about $17.  They will ask you the model and serial numbers.
    Your retail version of Snow Leopard OS 10.6.3 will not work on that Mac as it requires a minimum of OS X 10.6.7 to boot and operate.
    Another alternative is to again borrow another Mac to install your retail Snow Leopard into an external HD or partition, upgrade it to 10.6.8 and then clone it back to a partition on your MBP.

  • Is there any BAPI or function module  to delete entries from a table (VBAK)

    Hi Everybody,
    this is my first thread in SDN...
    my problem follows...
    A report is be created that selects all sales orders created by e-Sales that are more than 20 minutes old and still have a delivery block:
    tables:
    VBAK     sales document: header data
    selection fields:
    VBAK-LIFSK      &#8800;     <BLANK>
    VBAK-ERNAM     =     userID used by e-Sales / IVE
              (EP-BATCH / EAI-BATCH)
    VBAK-ERDAT      <=     Current system Date
    VBAK-ERZET     <=     Current system Time - 20 minutes
    These orders should be deleted from SAP system.
    This report should be scheduled to run regularly every 10 minutes.
    my doubt : is ther any BAPI or Function module to delete entries from a standard table...if no what is the way to delete the enteries from a std table...
    best replies will be rewarded....
    regards
    Reddy

    Hi Vasanth ,
    thanks for your reply.
    i tried in the same manner what u mentioned.
    but how to pass only one parameter to the functionmodule..
    here in this case we have to pass only update flag as 'D'..
    i did the same it giving dump..
    An exception occurred that is explained in detail below.                          
    The exception, which is assigned to class 'CX_SY_DYN_CALL_ILLEGAL_TYPE', was      
      not caught and                                                                   
    therefore caused a runtime error.                                                 
    The reason for the exception is:                                                  
    The call to the function module "BAPI_SALESORDER_CHANGE" is incorrect:                                                                               
    In the function module interface, you can specify only                            
    fields of a specific type and length under "ORDER_HEADER_INX".                    
    Although the currently specified field                                            
    "INT_ORDER_HEADER_INX" is the correct type, its length is incorrect.              
    my pgm :
    *& Report  YNEW_ORDER_DELETION
    REPORT  ynew_order_deletion.
    TABLES:vbak.
    PARAMETERS:
         p_lifsk LIKE vbak-lifsk DEFAULT '02'.
    SELECT-OPTIONS:
       s_lifsk FOR vbak-lifsk DEFAULT '10',
        s_ernam FOR vbak-ernam,
        s_erdat FOR vbak-erdat,"DEFAULT sy-datum.
        s_erzet FOR sy-uzeit.
    *PARAMETERS:
    p_erzet LIKE sy-uzeit.
       s_erdat like vbak-erdat,
       s_erzet like vbak-erzet.
    DATA:
       BEGIN OF int_final OCCURS 0,
            w_vbeln TYPE vbak-vbeln,
       END OF int_final.
    DATA:
      int_return LIKE bapiret2 OCCURS 0 WITH HEADER LINE.
    DATA: int_order_header_inx LIKE bapisditmx OCCURS 0 WITH HEADER LINE.
    DATA:
      wf_time TYPE sy-uzeit.
    INITIALIZATION.
      s_ernam-low = 'KULKARMA'.
      s_ernam-sign = 'I'.
      s_ernam-option = 'EQ'.
      APPEND s_ernam.
    s_ernam-low = 'EAI-BATCH'.
    s_ernam-sign = 'I'.
    s_ernam-option = 'EQ'.
    APPEND s_ernam.
    wf_time = sy-uzeit - 1200.
    p_erzet = sy-uzeit - 1200.
    p_erzet-low = wf_time.
    APPEND s_erzet.
      int_order_header_inx-updateflag = 'D'.
      APPEND int_order_header_inx.
    START-OF-SELECTION.
      SELECT vbeln FROM vbak
                       INTO TABLE int_final
                       WHERE lifsk EQ p_lifsk
                         AND ernam IN s_ernam
                         AND erdat IN s_erdat
                         AND erzet IN s_erzet.
      IF sy-subrc = 0.
        LOOP AT int_final.
          CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
            EXPORTING
              salesdocument         = int_final-w_vbeln
      ORDER_HEADER_IN             =
        order_header_inx            = int_order_header_inx
      SIMULATION                  =
      BEHAVE_WHEN_ERROR           = ' '
      INT_NUMBER_ASSIGNMENT       = ' '
      LOGIC_SWITCH                =
      NO_STATUS_BUF_INIT          = ' '
            TABLES
              return                      = int_return
      ORDER_ITEM_IN               =
      ORDER_ITEM_INX              =
      PARTNERS                    =
      PARTNERCHANGES              =
      PARTNERADDRESSES            =
      ORDER_CFGS_REF              =
      ORDER_CFGS_INST             =
      ORDER_CFGS_PART_OF          =
      ORDER_CFGS_VALUE            =
      ORDER_CFGS_BLOB             =
      ORDER_CFGS_VK               =
      ORDER_CFGS_REFINST          =
      SCHEDULE_LINES              =
      SCHEDULE_LINESX             =
      ORDER_TEXT                  =
      ORDER_KEYS                  =
      CONDITIONS_IN               =
      CONDITIONS_INX              =
      EXTENSIONIN                 =
        ENDLOOP.
        LOOP AT int_return.
          WRITE:/ int_return-type,
                  int_return-id,
                  int_return-number,
                  int_return-message.
        ENDLOOP.
      ENDIF.
    please help me ..its a very urgent issue to be solved...
    am waiting for ur reply...
    regards
    gangareddy

Maybe you are looking for