How to group table rows using GroupedColumn?

Hi all,
i know by binding the grouping value to a context, it can merge rows into one. but this only works if the two rows are adjacent.
if the context looks like this:
value 1
value 2
value 1
value 2
it can not group them together
how to group them together and merge the rows?
thanks.

Hi erv,
U need to use the TableSorter class for this.
You can download the TableSorter.java class from the tutorial Working with Tables in Web Dynpro.
Here you can select the project A) Creating Tables and download the Ready-to-use project. The lick to download project is:
[/docs/DOC-8061#46|/docs/DOC-8061#46]
Once you have downloaded the tutorial, you can find the TableSorter.java class in this path
TutWD_Table/src/packages/com/sap/tc/webdynpro/tests/utils
For more information refer to this blog:
[Enhanced Web Dynpro Java TableSorter for SAP NetWeaver 04s|/docs/DOC-8061#46]
Regards,
Sayan Ghosh

Similar Messages

  • How to Update a Row using ADF

    Hi every one
    Can any one help me out, How to Update a Row using ADF.
    Thanks in advance

    In addition to Clear to my question
    By Using ADF BC How can I update a record in a database.
    I have VO and EO associated with a table.
    How can I update a record using ADF BC
    Message was edited by:
    user616296

  • How to refresh table display using slis and 'reuse_alv_grid_display method.

    hello,
    how to refresh table display using slis and 'reuse_alv_grid_display method'.
    when i'm refreshing table display it performs once again reuse_alv_grid_display.and when i back the previous value appear.how to solve it?
    neon

    are you chaning any value in the gird if so use this..
    Pass the user_command form name to the Import parameter
    I_CALL_BACK_USERCOMMAND .
    and have the Dynamic form implementation..
    FORM user_command USING ucomm TYPE sy-ucomm
                selfield TYPE slis_selfield.
    "The below is important for Editable Grid.
      DATA: gd_repid LIKE sy-repid, "Exists
      ref_grid TYPE REF TO cl_gui_alv_grid.
      IF ref_grid IS INITIAL.
        CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
          IMPORTING
            e_grid = ref_grid.
      ENDIF.
      IF NOT ref_grid IS INITIAL.
        CALL METHOD ref_grid->check_changed_data .
      ENDIF.
      CASE ucomm.
        WHEN 'REFRSH'.
      ENDCASE.
           selfield-refresh = 'X'.
    ENDFORM.                    "user_command

  • How to access Table rows in ADOBE form

    Hello Experts,
    I want to access the Table rows which are getting populated by WDA context, in form JavaScript when the table is populated.
    on the basis of few cell values i want to disable and enable particular cells in table rows when the table is rendered to the user.
    Please provide your inputs and suggestion on how to write a java script for it and in which event  i should write the script.
    i searched SDN and found couple of blogs and threads and tried using them but not working.
    Thanks,
    Siddharth

    Hello All,
    thanks for your suggestions.
    after some research and  trial and error i found the solution:here is the sample code for those who might face this issue.
    SUPERNODE(Root Node)
        --SUBFM(SUBFORM)
    MYNODE( Table)
    DATA(Table ROW)
    ADD       (Table COLUMNS)
    DELETE   (Table COLUMNS)
    var data1;
    var norows = xfa.resolveNodes("SUPERNODE.SUBFM.MYNODE.DATA[*]").length;
    for ( var i =0; i < norows; i++)
         if( xfa.resolveNode("SUPERNODE.SUBFM.MYNODE.DATA["i"].DELETE").rawValue == "")
        xfa.resolveNode("SUPERNODE.SUBFM.MYNODE.DATA["i"].DELETE").access = "readOnly";
        if( xfa.resolveNode("SUPERNODE.SUBFM.MYNODE.DATA["i"].ADD").rawValue != "")
        xfa.resolveNode("SUPERNODE.SUBFM.MYNODE.DATA["i"].ADD").access = "readOnly";

  • How to color a row using REUSE_ALV_HIERSEQ_LIST_DISPLAY

    Hi,
    I'm able to color a row using REUSE_ALV_GRID_DISPLAY, I tried the same way to color a row at the item level using 'REUSE_ALV_HIERSEQ_LIST_DISPLAY' but I'm not able to get the row color, please let me know how to acheive this.
    Thanks in Advnce
    Narayan

    you need to do 4 things.
    1. Add a field in your final internal table which ur going to display.
    2.Name the field as----
    > color_line(4)   TYPE  c,
                begin of itab,
                              matnr            type  mara-matnr,
                              ernam          type  mara-ernam,
                           color_line(4)   TYPE  c,
               end of itab.
    3.declare layout ....................> data :  it_layout   TYPE lvc_s_layo.
    4. After filled your fieldcat and before display your ALV
            loop at itab assigning to <itab>.
                          if <itab>-ernam eq 'XYZ'.
                          <itab>-color_line = 'C600'.
           end loop.
    it_layout-info_fname = 'COLOR_LINE'.
    CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
    exporting
        IS_LAYOUT                      = it_layout
        IT_FIELDCAT                    = your_fieldcat
      and pass ur  ITAB.

  • Counting grouped table rows

    Hello experts.
    I trying to build a model which will do the following thing:
    Calling a data service (a BAPI for that matter), then grouping the data recieved, presenting it in a table and a form next to it (It can be in the table itself) showing how many rows i have for each group.
    It has to be dynamically, is there a way to do it?
    thank you.

    >
    Govindu Nagotla wrote:
    > Hi,
    >
    > on which SP you are Working,
    >
    > This can be done by Grouping operator.
    >
    > Drag a Group operator from Compose Panel and Add the group operator to the output port of ur data service.
    >
    > Then Configure the group operator in the way you want.
    >
    > If did not get you get back to me.
    >
    > Regards,
    > Govindu
    Hi Govindu.
    Sorry, I forgot to mention it, I'm working on SP14.
    and I still cant understand how the Group operator can help me. I want to count the rows of every subgroup of a group. (For example: the group is cites - How many rows for NY, How many for LA and so on).
    Motty.

  • How to get current row using submit button ?

    Hello Friends ,
    Is there any way i can capture the value of current row by submit button ?
    Here is my requirement , i have seeded OAF screen and it has table region one of the column has radio button , the existing
    functionality is when ever the radio button is selected and click on submit button ( submit button attached on top of the table region )
    other oaf page is getting opened .
    Now i wish to restrict the navigation based on some condition , but i don't know how to get the current row using submit button .
    Note : there is no Fire Action event for radio button column ? I dont' know how orale is selecting a specific row
    Any suggestion please ?
    Regards ,
    Vamsi

    Thanks sushant for your response ,
    Well i have tried your approch , i am not getting values for current row .
    if (pageContext.getParameter("paApply") != null)
    OAApplicationModule am = pageContext.getApplicationModule(webBean);
    OAViewObject localOAViewObject1 = (OAViewObject)am.findViewObject("ProjectDatesVO");
    if(localOAViewObject1!=null) {
    Row DateVoROw = localOAViewObject1.first();
    RowSetIterator iterator = localOAViewObject1.createRowSetIterator("iterator");
    iterator.setRangeStart(0);
    iterator.setRangeSize(localOAViewObject1.getRowCount());
    for(int i=0; i<iterator.getRowCount(); i++)
    DateVoROw=iterator.getRowAtRangeIndex(i);
    String vacancyValue= DateVoROw .getAttribute("vacancyname).toString();
    Could you please let me know where i am going wrong
    Thanks again ,
    Vamsi

  • How to group similar values using XQuery

    I have a table Employee with following columns
    EmpNo number,
    Title varchar2(100),
    First_Name varchar2(100),
    Last_Name varchar2(100),
    1, Miss, A, B (Sample record in Employee Table)
    There is an audit table Employee_A with columns
    ID number (PK),
    EmpNo number,
    Field_Name varchar2(100),
    Old_Value varchar2(100),
    New_Value varchar2(100)
    An update statement causes the Title of EmpNo=1 to change from Miss to Mrs and Last_Name from B to C. Hence the audit table has two records
    1,1,Title, Miss,Mrs
    2,1,Last_Name, B, C
    I need to generate an xml which is as follows:
    <Tag>
    <Operation>Update</Operation>
    <Key>1</Key>
    <Data>
    <Field>
    <Column>Title</Column>
    <NewValue>Mrs</NewValue>
    </Field>
    <Field>
    <Column>Last_Name</Column>
    <NewValue>C</NewValue>
    </Field>
    <Data>
    </Tag>
    How can we do this using XQuery?
    If not, can we do this using xmlelement, xmlagg?

    I tried the following:
    SELECT XMLQuery('<Dummy>
    {for $c in ora:view("Employee"),
               $ca in ora:view("Employee_A")
           let $emp := $c/ROW/EMPNO/text(),
               $emp_a := $ca/ROW/EMPNO/text(),
               $field := $ca/ROW/FIELD_NAME/text(),
               $new := $ca/ROW/NEW_VALUE/text()
               where $emp = $emp_a
           return
           <Tag>
             <operation>Update</operation>
             <key_id>$emp_a</key_id>
             <Data>
             <Field>
               <Column>{$field}</ent_id>
    <NewValue>{$new}</NewValue>
    </Field>
    </Data>
    </Tag>
    }</Dummy' RETURNING CONTENT)
    FROM dual;
    The output that I'm getting is
    <Dummy
    <Tag>
    <Operation>Update</Operation>
    <Key>1</Key>
    <Data>
    <Field>
    <Column>Title</Column>
    <NewValue>Mrs</NewValue>
    </Field>
    <Data>
    </Tag>
    <Tag>
    <Operation>Update</Operation>
    <Key>1</Key>
    <Data>
    <Field>
    <Column>Last_Name</Column>
    <NewValue>C</NewValue>
    </Field>
    <Data>
    </Tag>
    </Dummy>
    Two <Tag></Tag> gets created - one for each update entry. Please help

  • How to specify table name using xdoclet

    Hi
    I'm trying to specify a table name using xdoclet 1.2.
    I've tried the @sql.table, but that ain't working (no table mapping name is
    writen to the *.jdo)
    I've tried using the @jdo.class-vendor-extension with key=table and
    value=tablename, but that ain't working either.
    I guess number two approach ain't working because kodo want table name
    extension inside another extension like this:
    <extension vendor-name="kodo" key="jdbc-class-map" value="base">
    <extension vendor-name="kodo" key="table" value="tablename"/>
    </extension>
    But, how do I specify the above using xdoclet?
    Regards
    Jesper

    Ok.
    Is it possible somehow to just tell kodo to use another table name without
    having to create mapping extensions for collections and stuff. Even better
    if one could specify a table name prefix to be used on all tables.
    My problem is that I need use kodo on an existing database having tables
    names that conflict with kodo's auto-generated tables names. The schematool
    will then try alter these tables :-(
    Regards
    Jesper
    "Stephen Kim" <[email protected]> wrote in message
    news:[email protected]...
    When you use metadata mapping extensions, you should not generate
    .mapping files as all that info is stored in the .jdo file. You should
    instead set kodo.jdbc.MappingFactory to metadata.
    Jesper Ladegaard wrote:
    Thanks.
    However, I still can't get it to work.
    I've created a java class named Role with xdoclet like this:
    * @jdo.persistence-capable
    * @jdo.class-vendor-extension
    * vendor-name="kodo" key="jdbc-class-map" value="base"
    * @jdo.class-vendor-extension
    * vendor-name="kodo" key="jdbc-class-map/table" value="BW_ROLE"
    * @jdo.class-vendor-extension
    * vendor-name="kodo" key="jdbc-class-map/pk-column" value="JDOID"
    Xdoclet generates a jdo file like this:
    <jdo>
    <package name="dk.pine.users.services.model">
    <class name="Role"
    identity-type="datastore"
    <!-- end class tag --><extension vendor-name="kodo"
    key="jdbc-class-map"
    value="base">
    </extension>
    <extension vendor-name="kodo"
    key="jdbc-class-map/table"
    value="BW_ROLE">
    </extension>
    <extension vendor-name="kodo"
    key="jdbc-class-map/pk-column"
    value="JDOID">
    </extension>
    <field name="users"
    default-fetch-group="true"
    <!-- end field tag --><collection
    element-type="dk.pine.users.services.model.User"
    embedded-element="false"
    <!-- end collection tag --></collection>
    <extension vendor-name="kodo"
    key="inverse-owner"
    value="roles">
    </extension>
    </field>
    </class>
    </package>
    </jdo>
    Now I run the mappingtool (with option refresh) and it generates a
    mapping
    file like this:
    <mapping>
    <package name="dk.pine.users.services.model">
    <class name="Role">
    <jdbc-class-map type="base" pk-column="JDOID"
    table="dbo.ROLE0"/>
    <jdbc-version-ind type="version-number"column="JDOVERSION"/>
    <jdbc-class-ind type="in-class-name" column="JDOCLASS"/>
    <field name="description">
    <jdbc-field-map type="value" column="DESCRIPTION"/>
    </field>
    <field name="name">
    <jdbc-field-map type="value" column="NAME0"/>
    </field>
    <field name="systemRole">
    <jdbc-field-map type="value" column="SYSTEMROLE"/>
    </field>
    <field name="users">
    <jdbc-field-map type="many-many"
    element-column.JDOID="JDOID" ref-column.JDOID="ROLES_JDOID"
    table="dbo.USER0_ROLES"/>
    </field>
    </class>
    </package>
    </mapping>
    I expected it to create a BW_ROLE, but it create a ROLE0 table????
    "Stephen Kim" <[email protected]> wrote in message
    news:[email protected]...
    You can use slashes to denote sub extensions.
    See the example near the bottom of this link:
    http://solarmetric.com/Software/Documentation/3.0.3/docs/ref_guide_integrati
    on_xdoclet.html
    Jesper Ladegaard wrote:
    Hi
    I'm trying to specify a table name using xdoclet 1.2.
    I've tried the @sql.table, but that ain't working (no table mapping
    name
    >>
    is
    writen to the *.jdo)
    I've tried using the @jdo.class-vendor-extension with key=table and
    value=tablename, but that ain't working either.
    I guess number two approach ain't working because kodo want table name
    extension inside another extension like this:
    <extension vendor-name="kodo" key="jdbc-class-map" value="base">
    <extension vendor-name="kodo" key="table" value="tablename"/>
    </extension>
    But, how do I specify the above using xdoclet?
    Regards
    Jesper
    Steve Kim
    [email protected]
    SolarMetric Inc.
    http://www.solarmetric.com
    Steve Kim
    [email protected]
    SolarMetric Inc.
    http://www.solarmetric.com

  • How to transfer tabl content using ALE

    Hi All
    I need to to transfer the content of a HR table (T526) using an ALE scenario. However I have not found a way to do this. I stumpled over CONDA2 but not quite sure if this suits the bill. Anybody out there who can help.
    I am not an HR wiz so bear with me if this is dead obvious.
    Hope somebody can help
    Cheers

    Hello Bowie,
    Could you please help in how to use CONDA2 message type in ditributing HR Configuration data like data from following tables..
    T001P     Personnel Area/Subarea
    T500P     Personnel Areas
    T503     Employee Group/Subgroup
    T511     Wage Types
    T512T     Wage Type Texts
    T512Z     Permissibility of Wage Types per Infotype
    T528B     Positions
    T554S     Attendance and Absence Types
    T554T     Attendance and Absence Texts
    Thaks,
    Venkat

  • How to get blank rows using #

    Hi,
    I have a requirement to restrict my query on Creation Date. For this I am creating a variable in Query Analyzer such that when I execute my query standard SAP creation date pop up comes but now my client also want to get the blank rows using # along with the date entered by the user.
    My problem is how should I append # along with the user entered date.
    Thanks.

    I am not able to enter # . As only the calender is coming there is no option to enter # .
    I am thinking of another solution please tell me if I am correct. Can I create two variables to creation date such that one of the variable is of type User Input and another one will be of Customer Exit type, then in customer exit in I_STEP = 2 I can manually append #. Will it be a appropriate solution?

  • Smartforms  how to print Table rows on to the next page automatically

    if this question is answered pls point to the the link
    SMART forms:
    layout :  Half of my A4 page is filled with templates, a small portion is footer, the middle portion is Table.
    Note: i have set the condition for the footer as (tick the check box) "only after end of main window"
    Output:
                       the template is displayed the table is populated on the first page, no footer on 1st page,
                    on page 2 the table rows are printed (table rows were a lot) and finally footer got printed every thing as per normal
    what i want is:
                     instead of the table lines printed in the middle of page 2 (bcz my main window table is in the middle, top is templates)
                     i want the table lines (after filling the main window table lines in the 1st page) to continue to print from the
                     top of the page on page 2 and immediately after the table rows finish. footer must be printed....
    what should i be doing to get this output

    dear bob,
    yes i have done that already as u said, when i do it......
    i created a new page (next page) directed first page to next page
    on the next page my layout is like below
    removed all the templates dragged the main window to the top of the page...... 
    when i check the result, there is an empty line as the first line in the table (2nd page)
    and also the footer (again a template) on the first page, which is ticked as ( print after end of main window) is NOT displaying.

  • How to update multiple row using procedure in table

    Hi,
    create or replace procedure TESTLEDGER1(var_date varchar2)
    as
    var_date1 date;
    CURSOR C1 IS
    select DISTINCT ta.accountid,day PROCESSDATE,
    (NVL(payment,0))PAYMENT,NVL(TOTALDUE,0)TOTALDUE,NVL(currentbillamount,0)CURBILL,NVL(srf,0)SRF,NVL(sbpnt,0)sbpnt,
    NVL(srv,0)SRV,NVL(sbf,0)SBF,NVL(SBV,0)SBV,NVL(EF,0)EF,NVL(EV,0)EV,NVL(TSRV,0)TSRV,
    NVL(tsub,0)TSUB,NVL(teqe,0)TEQE,NVL(DT,0)DT,
    NVL(A.dep,0)RDEP,NVL(B.DEP,0)PDEP,
    NVL(pnt,0)PNT,NVL(eqp,0)EQP,NVL(dtr,0)DTR,NVL(drf,0)DRF,NVL(unadj,0)UNADJ
    from
    (select DISTINCT day ,accountid
    from
    syntblmaccount, tblmtime where yyyy =2010)ta,
    (SELECT accountid,
    SUM(srfee)srf,
    SUM(srvat)srv,
    SUM(subfee)sbf,
    SUM(subvat)sbv,
    SUM(eqefee)ef,
    SUM(eqevat)ev,
    SUM(ttlsrv)tsrv,
    SUM(ttlsub)tsub,
    SUM(ttleqe)teqe,
    SUM(dep)dep,
    SUM(dt)dt,trunc(fromdate)fromdate
    FROM VWDT_v2
    GROUP BY accountid,trunc(fromdate)
    )a,
    (SELECT accountid,
    SUM(pnt)pnt,
    SUM(subpnt)sbpnt,
    SUM(eqpnt)eqp,
    SUM(dep)dep,
    SUM(DEPTRANSFER)dtr,
    SUM(DEPREFUNDED)drf,
    SUM(unadj)unadj,trunc(paymentdate)paymentdate
    FROM vwkt_v4
    GROUP BY accountid,trunc(paymentdate)
    )b,
    (SELECT ACCOUNTID,REFUND,trunc(createdate) createdate FROM vwrefund)F,
    ( SELECT ACCOUNTID,
    TRUNC(CREATEDATE)CREATEDATE,
    sum(TOTALDUE)/100 TOTALDUE,sum(currentbillamount)currentbillamount
    FROM SYNTBLTDEBITDOCUMENT
    group by ACCOUNTID, TRUNC(createdate))debit,
    (SELECT ACCOUNTID accountid,TRUNC(createdate)CREATEDATE, SUM(totalamount)PAYMENT
    from syntbltcreditdocument
    where CREDITDOCUMENTTYPEID IN ('CDT01','CDT04')
    -- AND ACCOUNTID='ACC000003014'
    group by accountid,TRUNC(createdate))credit
    where ta.accountid=a.accountid(+)
    and ta.accountid=b.accountid(+)
    --and ta.accountid=pay.accountid(+)
    and ta.accountid=debit.accountid(+)
    and ta.accountid=credit.accountid(+)
    and ta.accountid=f.accountid(+)
    and ta.day=a.fromdate(+)
    --and ta.day=pay.createdate(+)
    and ta.day=debit.createdate(+)
    and ta.day=credit.createdate(+)
    and ta.day=b.paymentdate(+)
    and ta.day=f.createdate(+)
    and trunc(ta.day)=to_date(var_date,'DD-MON-YY');
    begin
    select distinct processdate into var_date1 from ledgerdetail;
    FOR V1 IN C1 LOOP
    UPDATE LEDGERDETAILtest
    SET PAYMENT=v1.payment,
    TOTALDUE=v1.TOTALDUE,
    CURBILL=v1.curbill,
    SRF=v1.srf,
    SBPNT=v1.sbpnt,
    SRV=v1.srv,
    SBF=v1.sbf,
    SBV=v1.sbv,
    EF=v1.ef,
    EV=v1.ev,
    TSRV=v1.tsrv,
    TSUB=v1.tsub,
    TEQE=v1.teqe,
    DT=v1.dt,
    PDEP=v1.rdep,
    PNT=v1.pnt,
    EQP=v1.eqp,
    DTR=v1.dtr,
    DRF=v1.drf,
    UNADJ=v1.unadj
    where accountid=v1.accountid
    and processdate=v1.processdate;
    --DBMS_OUTPUT.PUT_LINE('INSERTED ROW');
    commit;
    end loop;
    end;
    I have created above procedure to update table column....but i am getting run time error....
    Error report:
    ORA-01422: exact fetch returns more than requested number of rows
    ORA-06512: at "CRESTELVIEWSPRD501.TESTLEDGER1", line 70
    ORA-06512: at line 1
    01422. 00000 - "exact fetch returns more than requested number of rows"
    *Cause:    The number specified in exact fetch is less than the rows returned.
    *Action:   Rewrite the query or change number of rows requested
    how to resolve this error...
    Pl give me solution...
    thanks in advance.

    Hi:
    You have to make sure that join condition joins one record to one record not to a group of records.
    Saad,
    http://saadnayef.blogspot.com/

  • How to reference table rows added using addInstance?

    OK, this one's probably quite simple, but I'm at wit's end . . . .
    I have a table with body rows that can be added using addInstance.  what I can't figure out is how to reference the newly added rows and teh fields within them.  If the row reference for the inital row before addInstance is:
    Table.Row1.CellName before the addInstance, after the addInstance wouldn't it be Table1.Row1[0].CellName and the newly added row be Table1.Row[1].CellName?  I try that and the debugger tells me that Table1.Row1[1].CellName has no properties.
    I basically need to determine whether the user has filled out anything in the added rows and I'm having a devil of time figuring out how to reference the added rows and their cells.  Thanks in advance!

    Your logic is correct but to reference that som expression you woudl have to use this notation:
    xfa.resolveNode("Table1.Row[1].CellName").method or property
    The reason for this is the use of the square brackets. Javascript interprets this an an array. When you use the resolveNode method you can pass a string and hence the square brackets get interpretted correctly.
    Paul

  • How to find rejected rows using External Table

    Hi all,
    I had written a stored procedure to read comma(,) separated flat file using External Tables in oracle 9i with Reject Limit "Unlimited" Option. Sometimes all rows are successfully loaded into external table and sometimes some rows are failed, I can find out those rows from logfile created by oracle. I want to inserted those rows key values into some other table. Can any body suggest/links how to write this.
    Thanking you in advance

    "Is there a way to have the system truncate the log files besides some O/S utility that will scour the directory every night, week, etc.?"
    You can use UTL_FILE.FREMOVE to delete the file, if you have sufficient privileges. You can schedule it using DBMS_JOB if you like or run it before you recreate the file, as demonstrated below. The pl/sql block to check whether the file exists is used for demonstration purposes only and is not necessary. This is just one method. There are various ways to delete or truncate a file. This just seems like the simplest.
    scott@ORA92> CREATE OR REPLACE DIRECTORY mydir AS 'c:\oracle'
      2  /
    Directory created.
    scott@ORA92> DECLARE
      2    v_bfile BFILE := BFILENAME ('MY_DIR', 'test_tab.log');
      3  BEGIN
      4    IF DBMS_LOB.FILEEXISTS (v_bfile) = 1
      5    THEN DBMS_OUTPUT.PUT_LINE ('test_tab.log exists');
      6    ELSE DBMS_OUTPUT.PUT_line ('test_tab.log does not exist');
      7    END IF;
      8  END;
      9  /
    test_tab.log exists
    PL/SQL procedure successfully completed.
    scott@ORA92> EXECUTE UTL_FILE.FREMOVE ('MY_DIR', 'test_tab.log')
    PL/SQL procedure successfully completed.
    scott@ORA92> DECLARE
      2    v_bfile BFILE := BFILENAME ('MY_DIR', 'test_tab.log');
      3  BEGIN
      4    IF DBMS_LOB.FILEEXISTS (v_bfile) = 1
      5    THEN DBMS_OUTPUT.PUT_LINE ('test_tab.log exists');
      6    ELSE DBMS_OUTPUT.PUT_line ('test_tab.log does not exist');
      7    END IF;
      8  END;
      9  /
    test_tab.log does not exist
    PL/SQL procedure successfully completed.
    scott@ORA92> CREATE TABLE test_tab
      2    (col1 NUMBER,
      3       col2 VARCHAR2(4))
      4  ORGANIZATION external
      5    (TYPE ORACLE_LOADER
      6       DEFAULT DIRECTORY mydir
      7       ACCESS PARAMETERS
      8         (RECORDS DELIMITED BY NEWLINE
      9          BADFILE 'MYDIR':'test_bad.bad'
    10          LOGFILE 'MYDIR':'test_tab.log'
    11          FIELDS TERMINATED BY ","
    12            (col1,
    13             col2))
    14       LOCATION ('test.dat'))
    15  REJECT LIMIT UNLIMITED
    16  /
    Table created.
    scott@ORA92> SELECT * FROM test_tab
      2  /
          COL1 COL2
             1 a
             2 b
    scott@ORA92> "Or is there a way to prevent the log from being written to every time it's accessed?"
    You can use NOLOGFILE as an access parameter to prevent it from being written to, as shown below.
    scott@ORA92> CREATE OR REPLACE DIRECTORY mydir AS 'c:\oracle'
      2  /
    Directory created.
    scott@ORA92> CREATE TABLE test_tab
      2    (col1 NUMBER,
      3       col2 VARCHAR2(4))
      4  ORGANIZATION external
      5    (TYPE ORACLE_LOADER
      6       DEFAULT DIRECTORY mydir
      7       ACCESS PARAMETERS
      8         (RECORDS DELIMITED BY NEWLINE
      9          BADFILE 'MYDIR':'test_bad.bad'
    10          NOLOGFILE
    11          FIELDS TERMINATED BY ","
    12            (col1,
    13             col2))
    14       LOCATION ('test.dat'))
    15  REJECT LIMIT UNLIMITED
    16  /
    Table created.
    scott@ORA92> SELECT * FROM test_tab
      2  /
          COL1 COL2
             1 a
             2 b
    scott@ORA92> "Is there a way to have the log written only when an error occurs?"
    Not that I know of, but that does not mean that somebody else doesn't know how or isn't able to figure out a way. If you do find a way, please post it for the benefit of the rest of us.

Maybe you are looking for