Alternative to replace use of Table BDCP

Hi Guys,
SAP table BDCP which is used in START-OF-SELECTION is obsolete in SAP ERP 6.0 EHP7 SP Stack 4 and Data in this table is not maintained any more. I need to find an alternative to replace use of table BDCP. Any one have any idea what can be the alternative?
Thanks and best regards.
Fahad

Hi Fahad,
I do not see any such information published in SAP. If you have valid documentation please educate the community.
For your information BDCP contents can be moved to BDCP2 to improvise performance.
Refer SAP note 305462 - MOD: Migrating change pointers to table BDCP2
you may query on BDCP2 for faster selection.
Hope this helps.
Regards,
Deepak Kori

Similar Messages

  • Search and replace, with pattern matching using a table

    I need to inspect a data stream and standardise a set of codes. I need to
    1. Match any patterns with a dash character and remove the dash and any following characters, eg BN-S -> BN, BN-SH -> BN, ARG-22 -> ARG, etc.
    2. Make a few specific word for word replacements, eg, PAEDSH -> PAED
    This is easy to hard code but can it be done using a table of regex substitutions? Can anyone give a pointer or link to some example code? The couple of regex replacement examples I've found use regex to locate but hard code substitutions.
    Thanks

    You could store all your patterns in a Map. Then iterate over the map inserting the patterns into a regex.

  • Replacing occurrence of a string Using External tables??

    Hi,
    Is it possible to replace the occurrence of a string using external tables?
    For example, if you were loading a file that contained many fields. One of them was a description field. I want to be able to check this field for a string and if this string exists replace it with another.
    Is this possible with External tables?
    Thanks

    The external table can be used directly like a regular table using SQL if you defined it as PARALLEL 5.
    Access to external files is transparently parallelized, independent of the number of files (intra-file parallelism). The parallelism available through external tables increases performance dramatically compared to serial processing on a file-by-file basis.
    For more information:
    http://www.oracle.com/technology/products/oracle9i/daily/sept19.html

  • How to use "Routing Table" option in Proxy service in OSB ?

    Hi,
    I have created Business and Proxy services in my OSB console. I have used "Custom Query" option while creating the Database Adapter and I'm passing one input parameter to the query. My input parameter is "Name".
    Based on the input values for this parameter, I need to pass a corresponding values to the query. For example, If I pass the following values to "Name" input parameter (India) I need to pass "Value1" to my query -
    India --> Value1
    China --> Value2
    America --> Value3
    To achieve this requirement, I have used "Routing Table" option. I have specified the values as follows -
    Expression - $body/fet:FetchCustDataInput/fet:Name
    Operator- '='
    Compare value - India
    Service - "My Webservice"
    Operaton- "My Service Operation"
    In the "Request Actions:" I have added the "Add an Action --> Messaging Processing --> Replace" and provided the following values -
    Replace <XPath> = $body/fet:FetchCustDataInput/fet:Name
    in Variable = "Name"
    with Expression = xs:string('Value1')
    and selected "Replace node contents" option.
    No validation errors I faced. I have created the Routing table in Proxy service. But when I try to execute the proxy service in my Test Console, I get the following error message -
    "The invocation resulted in an error: Unknown error while processing message for service ProxyService OSBQueryService/FetchByCustomQuery/FetchByCustomQueryPS."
    I have even enabled "Direct call" and "Include Tracing" options as well. The message under "Tracing" give "(echoing request)
    Routed Service. No Service has been invoked, the request is echoed.".
    Can anyone please help me to resolve this issue.
    Thanks in Advance,
    Udaya

    Did you put any loggers in the proxy at request pipeline prior to route node ? Can you trace if the request has entered request pipeline aleast.
    If not just check the transport headers under the request window in the test console. There should be a text box for entering username/password which should be left blank. I have faced this unknown exception from test console in some browsers where an incorrect username/password used to get populated here. Check this ..
    Edited by: atheek1 on Jul 22, 2010 2:02 AM

  • Problem with format displayed in output while using Pivot table

    Hi All,
    I am using Pivot table in 10.1.3.4.1 version for displaying dynamic type data. Data is coming fine but it is coming in very strange format. I have following two tables in my RTF Template.
    Table1 using Pivot table
    !http://farm3.static.flickr.com/2570/4092137243_924cca92ca.jpg!
    Table 2 - A normal table
    !http://img5.imageshack.us/img5/6651/table3p.jpg!
    In the output PDF, “Table 2” shows data fine but “Table 1” shows very strange kind of behaviour if the columns exceed more than 5 in “Table 1” . If columns in Pivot table output are more than 5[at present according to my Table1 size] then columns more than 5 are shown on next page after Table 2 instead of displaying inside outer table “Table1“. Anyone has any idea what is the reason behind this strange behavior and how can I avoid it ?
    Thanks
    -Sookie

    Hi All,
    I tried including following piece of code in RTF as mentioned here: [http://winrichman.blogspot.com/2009/05/cross-tab-by-limiting-number-of-colums.html] but as a result it showed blank page in report. Nothing else.
    <?variable:G11;count(xdoxslt:distinct_values(/CUST_SUMMARY/LIST_CLIENT/CLIENT/LIST_OVERALL_ASSET_ALLOC/OVERALL_ASSET_ALLOC/ASSET_LIAB_DESC))?> <?variable:numcol;5?>
    <?template:table1?><?param:cellvalue;1?><?param:maxcolvalue;5?>
    <?choose:?>
    <?when:$cellvalue < $maxcolvalue?>
    !http://farm3.static.flickr.com/2508/4104410643_f540c1d5a3_m.jpg!
    <?call@inlines:table1?><?with-param:cellvalue;(number($cellvalue) + $numcol)?><?with-param:maxcolvalue;$maxcolvalue?><?end call?>
    <?end when?>
    <?end choose?>
    <?end template?>
    Also modified RTf as
    C <?crosstab:c594;"//OVERALL_ASSET_ALLOC";"PORTFOLIO_NAME{,o=a,t=t}";"ASSET_LIAB_DESC{,o=a,t=t}";"PERCENT";"sum"?>
    H
    G <?for-each@column:$c594//C1?><?if@column:position() > $cellvalue and position() <= ($cellvalue + $numcol) ?>
    ASSET_LIAB_DESC <?./H?>
    E <?end if?><?end for-each?>
    G <?for-each:$c594//R1?>
    PORTFOLIO_NAME <?./H?>
    G <?for-each@cell:.//R1C1?><?if@cell:position() > $cellvalue and position() <= ($cellvalue + $numcol) ?>
    99.00% <?./M1?>
    E <?end if?><?end for-each?>
    E <?end for-each?>I have this as my xml
    <?xml version="1.0" encoding="UTF-8"?>
    <CUST_SUMMARY>
    <CLIENTID>1034</CLIENTID>
    <LIST_CLIENT>
    <CLIENT>
    <CLIENT_ID>1034</CLIENT_ID>
    <LIST_OVERALL_ASSET_ALLOC>
    <OVERALL_ASSET_ALLOC>
    <PORTFOLIO_ID>1110</PORTFOLIO_ID>
    <PORTFOLIO_NAME>RM Managed</PORTFOLIO_NAME>
    <ASSET_LIAB_DESC>Alternatives</ASSET_LIAB_DESC>
    <PERCENT>2.93117485730770817994482449012020516681E-03</PERCENT>
    </OVERALL_ASSET_ALLOC>
    <OVERALL_ASSET_ALLOC>
    <PORTFOLIO_ID>1110</PORTFOLIO_ID>
    <PORTFOLIO_NAME>RM Managed</PORTFOLIO_NAME>
    <ASSET_LIAB_DESC>Collectables</ASSET_LIAB_DESC>
    <PERCENT>1.28354604277895431879689156620000563094E-02</PERCENT>
    </OVERALL_ASSET_ALLOC>
    <OVERALL_ASSET_ALLOC>
    <PORTFOLIO_ID>1110</PORTFOLIO_ID>
    <PORTFOLIO_NAME>RM Managed</PORTFOLIO_NAME>
    <ASSET_LIAB_DESC>Debt</ASSET_LIAB_DESC>
    <PERCENT>3.91466115811489974032104849667369505831E-02</PERCENT>
    </OVERALL_ASSET_ALLOC>
    <OVERALL_ASSET_ALLOC>
    <PORTFOLIO_ID>1110</PORTFOLIO_ID>
    <PORTFOLIO_NAME>RM Managed</PORTFOLIO_NAME>
    <ASSET_LIAB_DESC>Equity</ASSET_LIAB_DESC>
    <PERCENT>8.71946226825880885538778864840827563226E-01</PERCENT>
    </OVERALL_ASSET_ALLOC>
    <OVERALL_ASSET_ALLOC>
    <PORTFOLIO_ID>1110</PORTFOLIO_ID>
    <PORTFOLIO_NAME>RM Managed</PORTFOLIO_NAME>
    <ASSET_LIAB_DESC>Others</ASSET_LIAB_DESC>
    <PERCENT>7.3140526307872865690096910040315224715E-02</PERCENT>
    </OVERALL_ASSET_ALLOC>
    <OVERALL_ASSET_ALLOC>
    <PORTFOLIO_ID/>
    <PORTFOLIO_NAME>Aggregate Portfolio</PORTFOLIO_NAME>
    <ASSET_LIAB_DESC>Alternatives</ASSET_LIAB_DESC>
    <PERCENT>2.93117485730770817994482449012020516681E-03</PERCENT>
    </OVERALL_ASSET_ALLOC>
    <OVERALL_ASSET_ALLOC>
    <PORTFOLIO_ID/>
    <PORTFOLIO_NAME>Aggregate Portfolio</PORTFOLIO_NAME>
    <ASSET_LIAB_DESC>Collectables</ASSET_LIAB_DESC>
    <PERCENT>1.28354604277895431879689156620000563094E-02</PERCENT>
    </OVERALL_ASSET_ALLOC>
    <OVERALL_ASSET_ALLOC>
    <PORTFOLIO_ID/>
    <PORTFOLIO_NAME>Aggregate Portfolio</PORTFOLIO_NAME>
    <ASSET_LIAB_DESC>Debt</ASSET_LIAB_DESC>
    <PERCENT>3.91466115811489974032104849667369505831E-02</PERCENT>
    </OVERALL_ASSET_ALLOC>
    <OVERALL_ASSET_ALLOC>
    <PORTFOLIO_ID/>
    <PORTFOLIO_NAME>Aggregate Portfolio</PORTFOLIO_NAME>
    <ASSET_LIAB_DESC>Equity</ASSET_LIAB_DESC>
    <PERCENT>8.71946226825880885538778864840827563226E-01</PERCENT>
    </OVERALL_ASSET_ALLOC>
    <OVERALL_ASSET_ALLOC>
    <PORTFOLIO_ID/>
    <PORTFOLIO_NAME>Aggregate Portfolio</PORTFOLIO_NAME>
    <ASSET_LIAB_DESC>Others</ASSET_LIAB_DESC>
    <PERCENT>7.3140526307872865690096910040315224715E-02</PERCENT>
    </OVERALL_ASSET_ALLOC>
    <OVERALL_ASSET_ALLOC>
    <PORTFOLIO_ID/>
    <PORTFOLIO_NAME>Deviation</PORTFOLIO_NAME>
    <ASSET_LIAB_DESC>Alternatives</ASSET_LIAB_DESC>
    <PERCENT>2.93117485730770817994482449012020516681E-03</PERCENT>
    </OVERALL_ASSET_ALLOC>
    <OVERALL_ASSET_ALLOC>
    <PORTFOLIO_ID/>
    <PORTFOLIO_NAME>Deviation</PORTFOLIO_NAME>
    <ASSET_LIAB_DESC>Collectables</ASSET_LIAB_DESC>
    <PERCENT>1.28354604277895431879689156620000563094E-02</PERCENT>
    </OVERALL_ASSET_ALLOC>
    <OVERALL_ASSET_ALLOC>
    <PORTFOLIO_ID/>
    <PORTFOLIO_NAME>Deviation</PORTFOLIO_NAME>
    <ASSET_LIAB_DESC>Debt</ASSET_LIAB_DESC>
    <PERCENT>-3.6085338841885100259678951503326304942E-01</PERCENT>
    </OVERALL_ASSET_ALLOC>
    <OVERALL_ASSET_ALLOC>
    <PORTFOLIO_ID/>
    <PORTFOLIO_NAME>Deviation</PORTFOLIO_NAME>
    <ASSET_LIAB_DESC>Equity</ASSET_LIAB_DESC>
    <PERCENT>2.71946226825880885538778864840827563226E-01</PERCENT>
    </OVERALL_ASSET_ALLOC>
    <OVERALL_ASSET_ALLOC>
    <PORTFOLIO_ID/>
    <PORTFOLIO_NAME>Deviation</PORTFOLIO_NAME>
    <ASSET_LIAB_DESC>Others</ASSET_LIAB_DESC>
    <PERCENT>7.3140526307872865690096910040315224715E-02</PERCENT>
    </OVERALL_ASSET_ALLOC>
    <OVERALL_ASSET_ALLOC>
    <PORTFOLIO_ID/>
    <PORTFOLIO_NAME>Deviation</PORTFOLIO_NAME>
    <ASSET_LIAB_DESC>Cash</ASSET_LIAB_DESC>
    <PERCENT>.3</PERCENT>
    </OVERALL_ASSET_ALLOC>
    <OVERALL_ASSET_ALLOC>
    <PORTFOLIO_ID/>
    <PORTFOLIO_NAME>Recommended Allocation</PORTFOLIO_NAME>
    <ASSET_LIAB_DESC>Debt</ASSET_LIAB_DESC>
    <PERCENT>.4</PERCENT>
    </OVERALL_ASSET_ALLOC>
    <OVERALL_ASSET_ALLOC>
    <PORTFOLIO_ID/>
    <PORTFOLIO_NAME>Recommended Allocation</PORTFOLIO_NAME>
    <ASSET_LIAB_DESC>Equity</ASSET_LIAB_DESC>
    <PERCENT>.3</PERCENT>
    </OVERALL_ASSET_ALLOC>
    <OVERALL_ASSET_ALLOC>
    <PORTFOLIO_ID/>
    <PORTFOLIO_NAME>Recommended Allocation</PORTFOLIO_NAME>
    <ASSET_LIAB_DESC>Cash</ASSET_LIAB_DESC>
    <PERCENT>.3</PERCENT>
    </OVERALL_ASSET_ALLOC>
    </LIST_OVERALL_ASSET_ALLOC>
    </CLIENT>
    </LIST_CLIENT>
    </CUST_SUMMARY>and Original RTF looks like !http://farm3.static.flickr.com/2508/4104410643_f540c1d5a3_m.jpg!
    with code as
    C <?crosstab:c594;"//OVERALL_ASSET_ALLOC";"PORTFOLIO_NAME{,o=a,t=t}";"ASSET_LIAB_DESC{,o=a,t=t}";"PERCENT";"sum"?>
    H <?horizontal-break-table:1?>
    G <?for-each@column:$c594//C1?>
    ASSET_LIAB_DESC <?./H?>
    E <?end for-each?>
    G <?for-each:$c594//R1?>
    PORTFOLIO_NAME <?./H?>
    G <?for-each@cell:.//R1C1?>
    99.00% <?./M1?>
    E <?end for-each?>
    E <?end for-each?>Anyone can now tell my mistake? What wrong I am doing? Why it is showing blank page in output? How to solve this page breaking problem?
    Thanks
    -Sookie

  • Use of tables and style sheet

    Hi all,
    I am strungling using tables in RoboHelp HTML 7, to generate
    webhelp.
    What I try to accomplish is using tables in RH, and have its
    formatting defined in a style sheet. The html code generated by RH
    should be nice and clean. If possible I would not like to go into
    the HTML code, I prefer the use of the Design editor.
    I have the following in a new file in the RoboHelp table
    gallery:
    quote:
    <table>
    <caption>CAPTIONTITLE</caption>
    <COL style="width: 5%;">
    <COL style="width: 40%;">
    <thead>
    <tr><th></th><th></th></tr>
    </thead>
    <tbody>
    <tr><td></td><td></td></tr>
    <tr><td></td><td></td></tr>
    <tr><td></td><td></td></tr>
    <tr><td></td><td></td></tr>
    </tbody>
    </table>
    The following is in the CSS file:
    quote:
    table {
    border: 2px #c0c0c0 solid;
    border-collapse: collapse;
    width: "100%";
    margin: 10px;
    td, th {
    border: 1px #c0c0c0 solid;
    padding-left: 5px;
    padding-right: 10px;
    text-align: left;
    vertical-align: top;
    th {
    background: #ffc000;
    When I insert a table into a page, using the table file I
    created above, the html looks like:
    quote:
    <table x-use-null-cells>
    <col style="width: 33.333%;">
    <col style="width: 33.333%;">
    <col style="width: 33.333%;">
    <tr><td style="padding-right: 10px; padding-left:
    10px;" width=33.333%>
    <p> </td>
    <td style="padding-right: 10px; padding-left: 10px;"
    width=33.333%>
    <p> </td>
    <td style="padding-right: 10px; padding-left: 10px;"
    width=33.333%>
    <p> </td></tr>
    <tr><td style="padding-right: 10px; padding-left:
    10px;" width=33.333%>
    <p> </td>
    <td style="padding-right: 10px; padding-left: 10px;"
    width=33.333%>
    <p> </td>
    <td style="padding-right: 10px; padding-left: 10px;"
    width=33.333%>
    <p> </td></tr>
    <tr><td style="padding-right: 10px; padding-left:
    10px;" width=33.333%>
    <p> </td>
    <td style="padding-right: 10px; padding-left: 10px;"
    width=33.333%>
    <p> </td>
    <td style="padding-right: 10px; padding-left: 10px;"
    width=33.333%>
    <p> </td></tr>
    </table>
    So, RoboHelp adds a number of styles to the inserted table
    that overrules the style sheet. That shouldn't be done.
    Also, in the RoboHelp editor the table looks different than
    in the preview. That shouldn't be a big deal, but something is
    missing:
    - There's no table caption shown.
    - The background in the table header is not colored as I
    expected to be.
    To eliminate the behavior of RoboHelp with respect to the
    table gallery, I created a new page in RoboHelp, and opened the
    HTML view. I inserted the following to create a new table.
    quote:
    <table>
    <caption>CAPTIONTITLE</caption>
    <COL style="width: 5%;">
    <COL style="width: 40%;">
    <thead>
    <tr><th></th><th></th></tr>
    </thead>
    <tbody>
    <tr><td></td><td></td></tr>
    <tr><td></td><td></td></tr>
    <tr><td></td><td></td></tr>
    <tr><td></td><td></td></tr>
    </tbody>
    </table>
    When switching to Design view and bach to HTML, it has been
    converted by RoboHelp to:
    quote:
    <table x-use-null-cells>
    <col style="width: 5%;">
    <col style="width: 40%;">
    <caption>CAPTIONTITLE</caption>
    <tr><th style="width: 5%;" width=5%>
    <p> </th>
    <th style="width: 40%;" width=40%>
    <p> </th></tr>
    <tr><td style="width: 5%;" width=5%>
    <p> </td>
    <td style="width: 40%;" width=40%>
    <p> </td></tr>
    <tr><td style="width: 5%;" width=5%>
    <p> </td>
    <td style="width: 40%;" width=40%>
    <p> </td></tr>
    <tr><td style="width: 5%;" width=5%>
    <p> </td>
    <td style="width: 40%;" width=40%>
    <p> </td></tr>
    <tr><td style="width: 5%;" width=5%>
    <p> </td>
    <td style="width: 40%;" width=40%>
    <p> </td></tr>
    </table>
    That seems ok, there are no styles redefined, other that the
    width.
    In Design view the table looks different than intended,
    however in preview it is as expected. I shows the caption tile, and
    the background of the table header, and text alignment is correct
    (at the top of each cell).
    So, my interpretation is that RoboHelp messes up the nice and
    neat html code when using the table gallery, and does not show the
    table in Design view as it would like in the Preview.
    As a consequence I think I will copy and paste the table code
    into the html directly, rather than using the table gallery.
    Unless, there's a good solution by using the table gallery.
    It would also be nice that the Design view behaves as a
    WYSIWYG editor.
    Has anyone an idea how I can use tables in RoboHelp as easy
    as possible, while keeping the benefits of style sheets?
    TIA,
    Andre
    BTW, my excuses for using quotes rather than attach code, but
    it seemed all code was added to the end.

    You should avoid locking yourself into a single solution for
    anything to do with RH (or any other help authoring tool, for that
    matter). Whether dealing with lists, tables, or images (the three
    major areas that usually create problems), it's wise to strike a
    balance between the features and drawbacks in HTML, CSS, RH, and
    web browsers.
    Confronted with the issue of changing border colors and table
    heading colors earlier this year (and having to do this for the 42
    projects in our merged WebHelp project), I simply used
    FAR to change the hex numbered
    colors in the code, outside of RH (from #808080 to #d8e4f8, for
    example). Some freeware products for content replacement are also
    available.
    If you've used those colors for other things, such as H1/H2,
    or other backgrounds, etc., you'll need to identify all table uses
    first, and then change only those instances. You could then set up
    a batch file to change all border-right-color: #808080;
    border-left-color: #808080; etc. all at once
    You could also just use the RH Multi-File Find & Replace
    if you're only dealing with a few projects, since these table
    attributes are likely to always appear as complete on a single line
    (the RH feature doesn't handle search and replace strings
    interrupted by line breaks and multiple spaces).
    All of our tables had been created using Rick's solution via
    the Table Gallery, and the background and border colors show up
    identically in Design, Preview, and output views. The only use of
    the css for our tables is the styling of the actual text that
    appears in the cells (TableHead, TableRow, TableSubHead), such as
    shown in the attached code below.
    BTW, another look at your original post shows that your claim
    that "RoboHelp adds a number of styles to the inserted table that
    overrules the style sheet," is not quite on the mark. The only
    change is that the
    "padding-left:" value has been increased from the CSS 5px to
    10px. I would guess that you have a 5px indent in either your BODY
    or P tag in the CSS, thereby resulting in the value being increased
    to the total of 10px.
    Good luck,
    Leon

  • Query performance improvement using pipelined table function

    Hi,
    I have got two select queries one is like...
    select * from table
    another is using pielined table function
    select *
    from table(pipelined_function(cursor(select * from table)))
    which query will return result set more faster????????
    suggest methods for retrieving dataset more faster (using pipelined table function) than a normal select query.
    rgds
    somy

    Compare the performance between these solutions:
    create table big as select * from all_objects;
    First test the performance of a normal select statement:
    begin
      for r in (select * from big) loop
       null;
      end loop;
    end;
    /Second a pipelined function:
    create type rc_vars as object 
    (OWNER  VARCHAR2(30)
    ,OBJECT_NAME     VARCHAR2(30));
    create or replace type rc_vars_table as table of  rc_vars ;
    create or replace
    function rc_get_vars
    return rc_vars_table
    pipelined
    as
      cursor c_aobj
             is
             select owner, object_name
             from   big;
      l_aobj c_aobj%rowtype;
    begin
      for r_aobj in c_aobj loop
        pipe row(rc_vars(r_aobj.owner,r_aobj.object_name));
      end loop;
      return;
    end;
    /Test the performance of the pipelined function:
    begin
      for r in (select * from table(rc_get_vars)) loop
       null;
      end loop;
    end;
    /On my system the simple select-statement is 20 times faster.
    Correction: It is 10 times faster, not 20.
    Message was edited by:
    wateenmooiedag

  • Using plsql table and ref cursor in oracle forms 10g

    Hi all,
    Can anyone give me an example of a scenario where we need to create a form manually based on a database stored procedures.
    And in that procedure i have created a pl/sql table and a ref cursor in data base level.
    CREATE OR REPLACE PACKAGE SCOTT.BONUS_PKG IS TYPE bonus_rec
    IS RECORD(
    empno     bonus_EMP.empno%TYPE,
    ename     bonus_EMP.ename%TYPE,
    job     bonus_EMP.job%TYPE,
    sal     bonus_EMP.sal%TYPE,
    comm     bonus_EMP.comm%TYPE);
    TYPE b_cursor IS REF CURSOR RETURN bonus_rec;
    TYPE bontab IS TABLE OF bonus_rec INDEX BY BINARY_INTEGER;
    PROCEDURE bonus_refcur(bonus_data IN OUT b_cursor);
    PROCEDURE bonus_query(bonus_data IN OUT bontab);
    END bonus_pkg;
    CREATE OR REPLACE PACKAGE BODY SCOTT.BONUS_PKG IS
    PROCEDURE bonus_query(bonus_data IN OUT bontab) IS
    ii NUMBER;
    CURSOR bonselect IS
    SELECT empno, ename, job, sal, comm FROM bonus_EMP ORDER BY empno;
    BEGIN
    OPEN bonselect;
    ii := 1;
    LOOP
    FETCH bonselect INTO
    bonus_data( ii ).empno,
    bonus_data( ii ).ename,
    bonus_data( ii ).job,
    bonus_data( ii ).sal,
    bonus_data( ii ).comm;
    EXIT WHEN bonselect%NOTFOUND;
    ii := ii + 1;
    END LOOP;
    END bonus_query;
    PROCEDURE bonus_refcur(bonus_data IN OUT b_cursor) IS
    BEGIN
    OPEN bonus_data FOR SELECT empno, ename, job, sal, comm FROM bonus_EMP ORDER BY empno;
    END bonus_refcur;
    END bonus_pkg;
    i want to populate the data in forms manually not using forms data block wizard and programmatically.
    please reply...

    Can anyone give me an example of a scenario where we need to create a form manually based on a database stored procedures.Typically, you would use a procedure based block when you have a collection of data from multiple tables presented in a Form and your user needs to be able to update the information displayed.
    From your code example, it looks like you are using Oracle Support document "Basing a Block on a Stored Procedure - Sample Code [ID 66887.1]". If this is the case, keep following the document - it walks you through all of the steps. There is no need to Manually configure things that the Data Block Wizard will perform for you!
    i want to populate the data in forms manually not using forms data block wizard and programmatically. Why? Let the Data Block Wizard take care of configuring your block based on a procedure for you. There is no need to manually loop through the data! I've actually done what you are attempting and it was more work than was needed. Let Forms do the work for you. :)
    If you absolutely must do things manually, I recommend you use the PROCEDURE bonus_query(bonus_data IN OUT bontab) instead of the bonus_refcur(bonus_data IN OUT b_cursor) . Then, in your code create a variable of type BONTAB and then call the bonus_query procedure. Then it is a simple case of looping through the table of records returned by the bonus_query procedure. For example:
    DECLARE
       t_bonus    bonus_pkb.bontab;
    BEGIN
       bonus_pkg.bonus_query(t_bonus);
       FOR i in 1 .. t_bonus.count LOOP
          :YOUR_BLOCK.EMPLOYEE_NUMBER := t_bonus(i).empno;
          :YOUR_BLOCK.EMPLOYEE_NAME := t_bonus(i).ename;
          :YOUR_BLOCK.EMPLOYEE_JOB := t_bonus(i).job;
          :YOUR_BLOCK.EMPLOYEE_SALARY := t_bonus(i).sal;
          :YOUR_BLOCK.EMPLOYEE_COMMISSION := t_bonus(i).comm;
       END LOOP;
    END;This code sample demonstrates the basics, but as it is sample code - you will have to adapt it to your situation.
    Also, I strongly recommend you look at the article InoL listed. This is a very comprehensive discussion on REF CURSORs. If you are set on using a procedure based data source - it is more efficient to pass the table of records back to your form than it is to pass a ref cursor. Using a ref cursor, you might as well just using a standard named cursor and loop through your named cursor. The effect is the same (one row returned at a time creating lots of network traffic). Using the table of records is more efficient because the entire data set is returned so network traffic is reduced.
    Hope this helps,
    Craig B-)
    If someone's response is helpful or correct, please mark it accordingly.

  • Using temporary tables in stored procedures

    Suppose that I have created a temporary table in a stored procedure using an "EXECUTE IMMEDIATE" statement. When I compile the procedure, that table is not created yet, so the compiler says that the table does not exist.
    What is the way of using temporary tables in stored procedures?

    It's a good practice to avoid using DDL statements being executed from stored procedures. "Truncate Table" via dynamic SQL from stored procedure is a different story and is useful in DSS environments.
    But if you insist on "creating" tables using Dynamic SQL from Stored Procedures then you must also embed your DML statements in Dynamic SQL to avoid compilation errors.
    Example:
    Create or Replace Procedure Proc_TestDynamicSQL is
    Begin
    Execute Immediate 'Create table myTable as select * from user_tables' ;
    Execute Immediate 'Update myTable set table_name = ''Test'' ' ; --two single quotes before and after the string "Test"
    End;
    In this case, Oracle wouldn't care about the table references during compilation.

  • Need to Improve  pefromance for select statement using MSEG table

    Hi all,
    We are using a select statement using MSEG table
    which takes a very long time to run the program which is scheduled in back ground.
    Please see the history below.;
    1) Previously this program was using SELECT-ENDSELECT statement inside the loop i.e.
    LOOP AT I_MCHB.
    To get Material Doc. Details
          SELECT MBLNR
                 MJAHR
                 ZEILE INTO (MSEG-MBLNR,MSEG-MJAHR,MSEG-ZEILE)
                 UP TO 1 ROWS
                 FROM MSEG
                WHERE CHARG EQ I_MCHB-CHARG
                 AND  MATNR EQ I_MCHB-MATNR
                 AND  WERKS EQ I_MCHB-WERKS
                 AND  LGORT EQ I_MCHB-LGORT.
          ENDSELECT.
    Endloop.
    The program was taking 1 hr  for  20 k data
    2)The above statement was replaced by ALL ENTRIES to remove the SELECT-ENDSELECT from the loop.
    ***GET MATERIAL DOC NUMBER AND FINANCIAL YEAR DETAILS FROM MSEG TABLE
        SELECT MBLNR
               MJAHR
               ZEILE
               MATNR
               CHARG
               WERKS
               LGORT
                   INTO TABLE I_MSEG
                   FROM   MSEG
                   FOR ALL ENTRIES IN I_MCHB
                   WHERE CHARG EQ I_MCHB-CHARG
                   AND   MATNR EQ I_MCHB-MATNR
                   AND   WERKS EQ I_MCHB-WERKS
                   AND   LGORT EQ I_MCHB-LGORT.
    3)After getting the further technical analysis from BASIS team , And with the suggestion to optimize the program by changing the INDEX RANGE SCAN to
           MSEG~M.
    SELECT MBLNR
               MJAHR
               ZEILE
               MATNR
               CHARG
               WERKS
               LGORT
                   INTO TABLE  I_MSEG
                   FROM   MSEG
                   FOR ALL ENTRIES IN I_MCHB
                   WHERE MATNR EQ I_MCHB-MATNR
                   AND   WERKS EQ I_MCHB-WERKS
                   AND   LGORT EQ I_MCHB-LGORT.
    At present the program is taking 3 to 4 hrs in back ground .
    The table is complete table scan using index
    MSEG~M.
    Please suggest to improve the performance of this
    many many thanks
    deepak

    The benchmark should be the join, and I can not see how any of your solutions can be faster than the join
    SELECT   .....
                  INTO TABLE  ....
                  UP TO 1 ROWS
                  FROM mchb as a
                  INNER JOIN mseg as b
                  ON    amatnr EQ bmatnr
                  AND  awerks  EQ bwerks
                  AND  algort    EQ blgort
                  And   acharg  EQ bcharg
                  WHERE a~ ....
    The WHERE condition must come from the select on MCHB, the field list from the total results
    you want.
    If you want to compare, must compare your solutions plus the select to fill I_MCHB.
    Siegfried
    Edited by: Siegfried Boes  on Dec 20, 2007 2:28 PM

  • clientValidater s when used in tables

    The thread UIX <clientValidater> elements when used in <tables> - problem in the JDeveloper forum gave me a solution to using client validaters on repeating fields in a <table>. I've got this to work fine but have noticed in the log (I've set debug=true in uix-config.xml) that when the page is rendered I get the message 'The id nnn is used more than once' for each of the fields in a row. I can see why it's doing this and am just curious as to whether it could cause me any problems. I don't (currently) make any use of the id other than for this situation.
    Cheers
    Ian

    It shouldn't cause any major problems. It would affect
    PPR if you tried to use PPR to individually replace
    single table cells.
    If you use <messageTextInput>, we'll automatically
    generate unique IDs per row in the table, and this'll
    get client validaters to work just fine. Unfortunately,
    <bc4j:messageTextInput> doesn't support ID generation
    for some arcane but nasty-to-untangle reasons.

  • Jobs related issue (how table BDCP updated)

    hi expert,
    job xxxxx  is running in R/3 which update other system (3plp).
    The main concept is that. Whatever changes taken place in master
    Data this change is passes through Idoc to other system. 
    My issue is related to customer master data. Job is including those
    customer( 321304) which have not been change. I can see this customer
    number in job spool. But when I see changes in customer master (321304)
    there is no change on that date. So this behavior is wrong.
    Job must include those customers who are changed on that date.
    Jobs is running fine for more customer but, not working fine for few customer
    In ABAP analysis I found that
    the program it calls the standard Function Module CHANGE_POINTERS_READ. The function module outputs the customer 321304 and change pointer number 198919387. But when I checked this customer, it hasnu2019t been changed since 2007.
    Then I checked table BDCP (for change pointers) and got this:
    I donu2019t know how table BDCP was updated and why change pointer 198919387 was created for KNA1.
    Regds
    alicia k

    Hi Alicia,
    Kindly check this to find how BDCP gets updated.
    Change pointers are R/3 objects that mark changes to SAP master data. Change pointers are managed by mechanisms in a Shared Master Data (SMD) tool and are based on Change Document (CD) objects. CD objects record the changes occurring to master data at a field level. These changes are stored in tables CDHDR (header table) and CDPOS (detail table). ALE configuration provides a link between CD objects and change pointers. Internal mechanisms update tables BDCP and BDCPS, which host the change pointers. While CD objects are application-data-specific, the processing status of change pointers is message-type-specific. Also, the ALE change pointers are activated first at a general level and then at the message-type level.
    Change pointers are log entries to table BDCP which are written every time a transaction modifies certain fields.
    Dont forget to reward points if found useful.
    Thanks,
    Satyesh

  • Using Pipeline Table functions with other tables

    I am on DB 11.2.0.2 and have sparingly used pipelined table functions but am considering it for a project that has some fairly big (lots of rows) sized tables. In my tests, selecting from just the pipelined table perform pretty well (whether it is directly from the pipleined table or the view I created on top of it). Where I start to see some degregation when I try to join the pipelined tabe view to other tables and add where conditions.
    ie:
    SELECT A.empno, A.empname, A.job, B.sal
    FROM EMP_VIEW A, EMP B
    WHERE A.empno = B.empno AND
          B.mgr = '7839'
    I have seen some articles and blogs that mention this as a cardinality issue, and offer some undocumented methods to try and combat.
    Can someone please give me some advice or tips on this. Thanks!
    I have created a simple example using the emp table below to help illustrate what I am doing.
    DROP TYPE EMP_TYPE;
    DROP TYPE EMP_SEQ;
    CREATE OR REPLACE TYPE EMP_SEQ AS OBJECT
           ( EMPNO                                         NUMBER(10),
             ENAME                                         VARCHAR2(100),
             JOB                                           VARCHAR2(100));
    CREATE OR REPLACE TYPE EMP_TYPE AS TABLE OF EMP_SEQ;
    CREATE OR REPLACE FUNCTION get_emp return EMP_TYPE PIPELINED AS
    BEGIN
      FOR cur IN (SELECT
                    empno,
                    ename,
                    job
                  FROM emp
             LOOP
               PIPE ROW(EMP_SEQ(cur.empno,
                                cur.ename,
                                cur.job));
             END LOOP;
             RETURN;
    END get_emp;
    create OR REPLACE view EMP_VIEW as select * from table(get_emp());
    SELECT A.empno, A.empname, A.job, B.sal
    FROM EMP_VIEW A, EMP B
    WHERE A.empno = B.empno AND
          B.mgr = '7839'

    I am on DB 11.2.0.2 and have sparingly used pipelined table functions but am considering it for a project that has some fairly big (lots of rows) sized tables
    Which begs the question: WHY? What PROBLEM are you trying to solve and what makes you think using pipelined table functions is the best way to solve that problem?
    The lack of information about cardinality is the likely root of the degradation you noticed as already mentioned.
    But that should be a red flag about pipelined functions in general. PIPELINED functions hide virtually ALL KNOWLEDGE about the result set that is produced; cardinality is just the tip of the iceberg. Those functions pretty much say 'here is a result set' without ANY information about the number of rows (cardinality), distinct values for any columns, nullability of any columns, constraints that might apply to any columns (foreign key, primary key) and so on.
    If you are going to hide all of that information from Oracle that would normally be used to help optimize queries and select the appropriate execution plan you need to have a VERY good reason.
    The use of PIPELINED functions should be reserved for those use cases where ordinary SQL and PL/SQL cannot get the job done. That is they are a 'special case' solution.
    The classic use case for those functions is for the transform stage of ETL where multiple pipelined functions are chained together: one function feeds its rows to the next function which feeds its rows to another and so on. Each of those 'chained' functions is roughly analogous to a full table scan of the data that often does not need to be joined to other data except perhaps low volumn lookup tables where the data may even be cached.
    I suggest that any exploratory or prototyping work you do use standard relational tables until such point as you run into a problem whose solution might require PIPELINED functions to solve.

  • How can I use external tables with directories not on Oracle host?

    Oracle 11.2.0.2
    We have developers using C# to populate global temporary tables (two one header and detail with 1 to many relationbship between these two tables). The process of using C# was blowing up memory on Windows.
    As an alternative I requested them to create two CSV files and I can use sqlldr to load the detail CSV file of over 1 million rows under 15 seconds. It came to my mind that I could use external tables for this purpose with getting read of header and trailer from the CSV files.
    The issue I have is that I am not a DBA so I do not have access to OS host that Oracle instance is running. sqlldr is a client side tool, whereas external tables are server side. I was wondering if there is an alternative in 11g to use external tables without creating directories on the OS host that Oracle runs on? Are there other alternatives?
    Thanks

    905989 wrote:
    Oracle 11.2.0.2
    We have developers using C# to populate global temporary tables (two one header and detail with 1 to many relationbship between these two tables). The process of using C# was blowing up memory on Windows.
    As an alternative I requested them to create two CSV files and I can use sqlldr to load the detail CSV file of over 1 million rows under 15 seconds. It came to my mind that I could use external tables for this purpose with getting read of header and trailer from the CSV files.
    The issue I have is that I am not a DBA so I do not have access to OS host that Oracle instance is running. sqlldr is a client side tool, whereas external tables are server side. I was wondering if there is an alternative in 11g to use external tables without creating directories on the OS host that Oracle runs on? Are there other alternatives?
    Thanks
    no other alternative

  • Avoid Hard Parsing for executing dynamic SQL using DUAL table Oracle

    I want to know if dynamic sql statements involving DUAL table can be modified to remove HARD PARSING.
    We have several SQL statements are stored in configuration table, here is sample example
    -- query 1 before replacing index values as stored in config table ---
    select count(*) from dual where  'REPLACE_VALUE_OF_INDEX_3' IN ('K')
    AND (('REPLACE_VALUE_OF_INDEX_13' IN ('1053','1095','1199') ) OR ('REPLACE_VALUE_OF_INDEX_13' IN ('1200') ))
    AND 'REPLACE_VALUE_OF_INDEX_2' IN ('6')
    AND 'REPLACE_VALUE_OF_INDEX_15' IN ('870001305')
    -- query 1 after replacing index values--
    select count(*) from dual where  'REPLACE_VALUE_OF_INDEX_10' IN ('K')
    AND (('1030' IN ('1053','1095','1199') ) OR ('1030' IN ('1200') ))
    AND '2' IN ('6')
    AND 'X' IN ('870001305')
    -- query 2 before replacing index values as stored in config table --
    select count(*) from dual where  'REPLACE_VALUE_OF_INDEX_5' IN ('361A','362A')
    AND 'REPLACE_VALUE_OF_INDEX_22' BETWEEN '200707' AND '200806'
    -- query 2 after replacing index values--
    select count(*) from dual where  '3MAA' IN ('361A','362A') AND '201304' BETWEEN '200707' AND '200806'

    If I got it right you have some (maybe lots of) conditions stored in a table (be patient - it's my interpretation)
    create table eb_conditions as
    select 1 rid,q'{:5 IN ('361A','362A') AND :3 BETWEEN '200707' AND '200806'}' cndtn from dual union all
    select 2,q'{:2 IN ('361A','362A') AND :3 BETWEEN '200707' AND '200806'}' from dual union all
    select 3,q'{:1 IN ('K') AND ((:2 IN ('1053','1095','1199') ) OR (:4 IN ('1200') )) AND :3 IN ('6') AND :5 IN ('870001305')}' from dual
    RID
    CNDTN
    1
    :5 IN ('361A','362A') AND :3 BETWEEN '200707' AND '200806'
    2
    :2 IN ('361A','362A') AND :3 BETWEEN '200707' AND '200806'
    3
    :1 IN ('K') AND ((:2 IN ('1053','1095','1199') ) OR (:4 IN ('1200') )) AND :3 IN ('6') AND :5 IN ('870001305')
    and you have to check the conditions using values stored in an array
    I used a table instead: the vl at rid = 1 representing the value of bind variable :1 in eb_conditions table and so on ...
    create table eb_array as
    select 1 rid,'K' vl from dual union all
    select 2,'1199' from dual union all
    select 3,'200803' from dual union all
    select 4,'1000' from dual union all
    select 5,'870001305' from dual
    RID
    VL
    1
    K
    2
    1199
    3
    200803
    4
    1000
    5
    870001305
    You want to check the conditions using select count(*) from dual where <condition with binds substituted fron the array>
    Judging from the title Hard Parsing represents the major problem and you cannot avoid it since every condition to be verified is different from every other condition.
    I think your best bet is not to evaluate conditions row by row - context shift cannot be avoided and there might be more than one for each iteration.
    So try to do it in a single step:
    declare
    w_cndtn varchar2(4000);
    w_clob  clob;
    w_cursor sys_refcursor;
    one number;
    two number;
    begin
      dbms_lob.createtemporary(w_clob,false);
      for rw in (select rid,
                        max(cndtn) cndtn,
                        listagg(val,',') within group (order by rn)||',' usng
                   from (select c.rid,c.cndtn,c.rn,c.bind,
                                replace(rtrim(c.bind),':'||to_char(v.rid),''''||v.vl||'''') val
                           from (select rid,
                                        cndtn,
                                        regexp_substr(cndtn,':\d+ ',1,level) bind,
                                        level rn
                                   from eb_conditions
                                 connect by level <= regexp_count(cndtn,':')
                                        and prior rid = rid
                                        and prior sys_guid() is not null
                                ) c,
                                eb_array v
                          where instr(c.bind,':'||v.rid||' ') > 0
                  group by rid
      loop
        w_cndtn := rw.cndtn;
        while instr(w_cndtn,':') > 0
        loop
          w_cndtn := replace(w_cndtn,trim(regexp_substr(w_cndtn,':\d+ ',1,1)),substr(rw.usng,1,instr(rw.usng,',') - 1));
          rw.usng := substr(rw.usng,instr(rw.usng,',') + 1);
        end loop;
        w_cndtn := 'select '||to_char(rw.rid)||' cndtn_id,count(*) from dual where '||w_cndtn||' union all ';
        w_clob := w_clob ||' '||w_cndtn;
      end loop;
      w_clob := substr(w_clob,1,instr(w_clob,'union all',-1,1) - 1);
      open w_cursor for w_clob;
      loop
        fetch w_cursor into one,two;
        exit when w_cursor%notfound;
        dbms_output.put_line(to_char(one)||':'||to_char(two));
      end loop;
      dbms_lob.freetemporary(w_clob);
    end;
    1:0
    2:0
    3:0
    Statement processed.
    Regards
    Etbin

Maybe you are looking for

  • How do I use one filed to perform two roles?

    JDeveloper 10.1.3.2, ADF Faces, ADF BC app. I have a situation where one field needs to supply a database value and a web service parameter. I have the data controls for both. Currently I also have both on the page, with the same data entered in both

  • Error: while creating a view - Help needed

    When i am trying to create the view i am getting the error msg as: ==>ORA-02070: database does not support operator NLS_CHARSET_DECL_LEN in this context<== Please advise in this regard to overcome this issue. the view is nothing but ================

  • Unable to create PDF file

    I have just upgraded to Adobe X Standard and noticed I can no longer created PDF files.  When I try convert any Word/Excel file to PDF I get an error "Your file could not be printed due to an error on Adobe PDF on e02"  I have tried to remove office

  • Installation of PSE 11 fails on Shared Technologies

    I cannot install PSE 11 on Windows 8 - it always fails on installation of 'shared technologies'. I have looked at the error log and problem seems to be unsupported payload by RIBS. Not sure what this means and what is causing this. Full log is below

  • Where should i put oracle logo in my resume ...

    hie everyone ... i just received OCA certification ( 10g DBA ) and SQL Certified Expert ... now where should i put those logos in my resume ... someone mentioned that i can put them in HEADER of my resume ... any other advice ?? thanks in advance for