Tabular Form Error on Validation

Hello All,
APEX Version : 4.0.2
Database : Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi
I created a wizard tabular form with just one editable column.( array = F02 )
Now I added another column using the syntax APEX_ITEM.DISPLAY_AND_SAVE(39,old_amount) as old_amt .
I added a plsql validation that loops through the array and checks for a particular business logic.
Whenever the validation results in an error, I notice an ERROR at the bottom of the page
report error:
ORA-01403: no data foundIs there any issue in the plsql validation ?
Please advice.
Thanks,
RD

Hello All,
APEX Version : 4.0.2
Database : Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi
I created a wizard tabular form with just one editable column.( array = F02 )
Now I added another column using the syntax APEX_ITEM.DISPLAY_AND_SAVE(39,old_amount) as old_amt .
I added a plsql validation that loops through the array and checks for a particular business logic.
Whenever the validation results in an error, I notice an ERROR at the bottom of the page
report error:
ORA-01403: no data foundIs there any issue in the plsql validation ?
Please advice.
Thanks,
RD

Similar Messages

  • Bug in Tabular form Not Exist Validation, fails when creating multiple rows

    Hi,
    I have a Not Exist validation created for a Tabular form:
       select 1 from my_table where col1 = :col1 and col2 = :col2Execution State: For created and Modified Rows
    which is working fine when a row already there in DB
    and I am trying to enter a new row with same data.
    but when there's no data and I enter two rows with same data, validation does not fire, first row should allowed to enter
    but for second row it should give error that data already exists, which is not happening.
    for example,
    let's say I have a row in DB with: 1, 2, 3
    when I try to add a new row with same data ie. 1, 2, 3 validation fires and showing error, which is fine.
    but let's say there's no data in DB and I am entering two rows with:
    1, 2, 3
    1, 2, 3
    validation is not working this time, it is allowing to enter both the rows.
    do I need to create a manual validation for this or what?
    Apex 4.1.1.00.23
    Regards,
    Tauceef
    Edited by: Tauceef on Dec 6, 2012 10:09 AM
    Edited by: Tauceef on Dec 6, 2012 11:22 AM
    Edited by: Tauceef on Dec 6, 2012 11:27 AM

    Hello Tauceef,
    >> Now I got it, I was under impression that it will validate one by one row before insertion,
    >> but it's going to check all the rows first, then do the insertion.
    Just to clear things up, the APEX engine works exactly as you describe, but this is your problem.
    The APEX engine do check\validate all the rows first, one row at a time, and only if all the rows pass validation, the DML processes kick in. The DML processes work on the entire Tabular Form record set (per page view, of course).
    In order for your type of validation to work (the one that queries the database), as you want it, the validation and DML actions have to run together, row by row. This is not how things work, because it’s less efficient/optimal, and may lead to a situation where a certain row can fail validation, but other row(s) already been inserted/updated/deleted into/from the database. This could be a very tricky situation.
    Vikram has suggested to rely on a database constraint, and control the APEX error message. This is possible, although I’m not sure that in this case, the Tabular Form will retain all the user changes, in case of validation error. You should check it.
    Another option, which Marc hinted on, is to manipulate the G_Fxx arrays. In your case, you should loop through the new rows, compute their MD5, and make sure that all the rows have different MD5 values. This is on top of the current validation, which makes sure that the new rows do not already exist in the database.
    Regards,
    Arie.
    ♦ Please remember to mark appropriate posts as correct/helpful. For the long run, it will benefit us all.
    ♦ Author of Oracle Application Express 3.2 – The Essentials and More

  • Custom tabular form error on apex_item id larger than 50

    First post :)
    I'd like to share a potential bug in apex (3.0.1) or misconfiguration in our application server
    When creating a page with a custom tabular form, i've noticed that when i give a column an id over 50 (ex: "apex_item.text(51,salary) salary")
    the page will generate errors in the apache.
    The apache error log states the parameter F51 as incoming but it contains no value.
    Further allong the log states:
    "VARIABLES IN FORM NOT IN PROCEDURE: F51"
    example report query:
    select apex_item.hidden(1,"ID")||apex_item.checkbox(2,"ID") delete_checkbox
    ,apex_item.text(3,name) name
    ,apex_item.text(51,salary) salary
    from employee;
    I've always been under the impression that we could use F01 till F99?
    Is there anyone who has encountered this problem before, or are my conclusions wrong?
    Looking forward to an answer!
    Niko

    Hi Niko and Roel
    Roel, you are right, I am hitting the 50 columns only limit too. Do you know of any ways to overcome this limit?
    This post also describes the problem: Re: column in tabular form
    Currently I need to create a tabular form to edit a table with 84 columns.
    It sounds ugly, but this is a spreadsheet and the requirement is to get it in Oracle Apex 'as it is' and still, be able to edit it using MRU.
    Any ideas?
    Thank you very much.
    Kubilay
    Edited by: Kubilay on Jun 15, 2009 10:29 AM
    Edited by: Kublai-Khan on Jun 15, 2009 10:30 AM

  • Simple question about tabular forms: error in MRU

    hi to all,
    i write here to check if what i think about tabular forms is confirmed.
    If i build a master- detail or tabular form and the underlying table are modified, the page where the tabulare form is contained doesn't work anymore.
    if what i've written above is correct, is there a way to realign the fields of the tabular forms to the db fields and make my page work again without rebuilding all?
    Can i modify something, somewhere inside apex to make my page run again?
    The error i get (in italian / english)
    Error in mru internal routine: ORA-20001: Errore in MRU: riga= 0, ORA-20001: ORA-20001: La versione corrente dei dati nel database è cambiata da quando l'utente ha iniziato il processo di aggiornamento. checksum corrente = "ED73B05FA6016F8D5F3B4B5B69AF482D", checksum elementi = "CFD72DCC4221A340057D654B54EA7A04"., update "NEWPROJ"."CNT_VAL_SEG_DEMO" set "ID" = :b1, "FK_CNT" = :b2
    Means: The version of data in db (fields of the tables?) has changed since the user started the update process.
    By the way this sentence under my opinion can trick you as
    in italian 'La versione corrente dei dati nel database'
    can means both that data contained in tables have changed (dml error / process error / data the user see not are the real underlying data). Can mean as well the field definition is changed, however a more meaningful message in italian is: ' la definizione delle tabelle usate dall'oggetto tabular form é cambiata'.
    That translated in english is ' DDL of table/s used by tabular form has changed'.
    thanx a lot
    Message was edited by:
    Marcello Nocito

    HI Heinz,
    yes is now clear, however is a pity that a litte change in the query has a lot of
    implications: a change in the structure of DB means new feature / the data model is not alligned with current requirement. So usually (but not always) it means changing the SELECT as well.
    Such Apex is a Rad an impression is that if you build a complex forms with several linked reports / field and one day you have to change the query of the TABULAR FORM / MASTER DETAIL generated with report you get a lot of rebuilding.
    I think i will avoid the use of this 2 object in the future and use more htmldb.items in the select.
    bye bye

  • Form error:  No Valid Recipient

    Can someone please help me troubleshoot this error when I go
    to submit the
    form at this URL:
    http://www.emergesolutions-temp1.info/rfq_form.htm
    Here's the first 6 lines of my form code:
    <form action="
    http://cgi.uk2.net/cgi-bin/uk2-formmail.pl"
    method="post"
    enctype="text/plain" Name="RequestForQuote"
    id="RequestForQuote">
    <input type="hidden" name="recipient"
    value="[email protected]">
    <input type="hidden" name="subject" value="Request For
    Quote">
    <input type="hidden" name="env_report"
    value="REMOTE_HOST,REMOTE_ADDR,HTTP_USER_AGENT">
    <input type="hidden" name="redirect"
    value="
    http://www.elcarim.co.uk/contact_confirm.htm">
    <input type="hidden" name="print_blank_fields"
    value="1">
    I've been researching this for about an hour on the web and
    what I am
    finding is that this:
    @recipients = &fill_recipients(@emerge-solutions.com);.
    Needs to be inserted somewhere - but I don't know where.
    Thanks in advance!

    Your information appears to be correct. The exception I see
    is from your form processing host. I found this on their help
    pages: "PLEASE NOTE FOR SPAMMING PROTECTION YOU MUST GIVE A UK2.NET
    RECIPIENT EMAIL
    ADDRESS OR AN EMAIL ADDRESS? OF A DOMAIN HOSTED? WITH
    UK2.NET."
    In other words the recipient address is incorrect unless they
    are your host. If they are, contact them for further
    assistance.

  • Tabular Form Validation: Comparing Two Columns vs Check Constraint

    What is the best approach for validating that one column needs to be greater than another column in a tabular form when attempting to save. (E.g. An effective date and expirey date column. The expirey date column >= effective date column)
    At the moment I have a check constraint on the two columns at the database level which is fine but it returns and passes up a pretty cryptic (from a business user perspective) unfriendly message to the user as follows:
    Error in mru internal routine: ORA-20001: Error in MRU: row= 1, ORA-02290: check constraint (IDMTC.ADDRESS_TYPE_CON) violated, update "IDMTC"."ADDRESS_TYPE" set "ID" = :b1, "CODE" = :b2, "NAME" = :b3, "LOV_SORT_ORDER" = :b4, "DESCRIPTION" = :b5, "EFFECTIVE_DATE" = :b6, "EXPIRY_DATE" = :b7 where "ID" = :p_pk_col
    Unable to process update.
    Is there a way to inject, detect and/or replace this with a friendlier business user message? I have confirmed that the "Unable to process update." text at the bottom below the MRU Internal routine error raised from my check constraint is the process error message for my Apply MRU process.
    I was hesitating going down a larger page level validation where I loop through the tabular form array and/or inject some client side Javascript.
    Any advice? Have I simply overlooked some tabular form options for validating using cross column values?
    Thanks,
    Jeff

    Jeff..Thanks for the response.
    However because I am working in a tabular form at design time I don't know which controls I can reference in a dynamic action, or custom Javascript routine other than selecting all elements in a column using JQuery, etc.
    I have decided to go with for the time being an approach I found here: doing validation on tabular form
    My code ended up looking something like and was entered into a page level validation as a PL/SQL function body returning error text.:
    DECLARE
    l_error VARCHAR2 (4000);
    BEGIN
    FOR i IN 1 .. apex_application.g_f02.COUNT
    LOOP
    --If Expiry date is older then effective date
    IF nvl(apex_application.g_f08 (i), to_date('31-DEC-9999', 'dd-mon-yyyy')) < apex_application.g_f07 (i) THEN
    l_error :=
    l_error
    || '</br>'
    || 'Row '
    || i
    || ': Expiry date must be greater than effective date '
    || ' for maintenance item name: '
    || apex_application.g_f03 (i);
    END IF;
    END LOOP;
    RETURN LTRIM (l_error, '</br>');
    END;
    I had been hoping with Apex 4+ that there was additional native functionality to do this type of validation or somehow be able to reference a column or control name instead of a generic array column so that my code was better self documenting.
    It works for now...but would love to revisit with maybe a cleaner client side solution that does the validation and highlights the invalid element since I still maintain data integrity at the db with the check constraint.
    Thanks,
    Jeff

  • Need customized query on updateable report (tabular form)

    I have a pl/sql function that returns a SELECT statement based on very flexible query specifications allowed in a form. (Form has a field for each table column, allows operations like <,>,between, etc, that can be entered directly into the field; all fields need not have some sort of query constraint specified. Essentially the same sort of query flexibility you get in Forms... ) The select always returns the same number of columns. Query results are returned on a different page (either report or tabular form) than that used to enter the query specs.
    The function works beautifully on a page type of Report.
    However, when I take a Tabular Form and switch its query source to PL/SQL function body returns SQL select, the page type becomes Report. The query works on this modified page (returns correct rows), and the columns are still editable (can be typed into) but the changes can't be submitted because the page is no longer a tabular form -- Error is: No updateable report found. Multi row updated and delete operations can only be performed on tabular forms of type 'Updateable Report'.
    How can I have flexible query specs paired w/ an updateable report? Does this require writing my own multi-row DML processes? Or is there a simpler way?
    Thanks,
    Carol

    I have a pl/sql function that returns a SELECT statement based on very flexible query specifications allowed in a form. (Form has a field for each table column, allows operations like <,>,between, etc, that can be entered directly into the field; all fields need not have some sort of query constraint specified. Essentially the same sort of query flexibility you get in Forms... ) The select always returns the same number of columns. Query results are returned on a different page (either report or tabular form) than that used to enter the query specs.
    The function works beautifully on a page type of Report.
    However, when I take a Tabular Form and switch its query source to PL/SQL function body returns SQL select, the page type becomes Report. The query works on this modified page (returns correct rows), and the columns are still editable (can be typed into) but the changes can't be submitted because the page is no longer a tabular form -- Error is: No updateable report found. Multi row updated and delete operations can only be performed on tabular forms of type 'Updateable Report'.
    How can I have flexible query specs paired w/ an updateable report? Does this require writing my own multi-row DML processes? Or is there a simpler way?
    Thanks,
    Carol

  • Tabular form: run procedure with Submit button

    I am trying to create a form (pulling from two tables) that allows for 'one' column to be modified. Once you hit submit I'd like the following procedure to run:
    Begin
    Ht_bpe.populate_schedule;
    End;
    This will update the associated completion dates (additional populated columns in the form) based off the change done by the end user for that 'one' column and return you back to the same page with the updated dates.
    but i keep getting the following error when i test it out:
    Error in mru internal routine: ORA-20001: no data found in tabular form
    Error Unable to process update.
    OK
    please help!
    Edited by: jclarke2 on Jun 15, 2009 3:58 PM

    Hello:
    What is the need for the MRU process ? It appears to me that you want to control the DML actions to be taken on submitting the form. If this is the case then all you have to do is to define a 'after submit' page to invoke the 'Ht_bpe.populate_schedule' procedure.
    Varad

  • Losing data on a tabular form when submitting a page with validation errors

    I have a window that has a regular HTML form at the top that has several items. Then on the bottom of the page, I have a tabular form where the user can enter multiple rows of information. Unfortunately, when the page is submitted, if there are any validation errors, any changes that were made in the tabular form are lost.
    Any suggestions

    Fair enough :)
    Actually what I was meaning was could I use a collection to repopulate the tabular form when I receive errors. It appears as if it may work. However, I am hitting one snag.
    I have created a PL/SQL Process that runs On Submit and Before Computations/Validations. In this process, I have saving the values in the tabular form to a collection.
    I was then hoping to create another process that ran after any errors occur. However, it does not appear as if any processes run when the screen redraws after a validation issue. Is there a process that runs after validations when the screen is redrawing? Will I need to do this using javascript?
    Thanks

  • Error tabular form with validation

    Hi everyone,
    I have built a tabular form with the wizard and I every time a validation check is done and fails,
    getting an error in the place where the tabular form should be. I get to see the tabular form again when pressing the cancel button or refreshing the page.
    I'm not quite able to reproduce this error, but I was wondering if anyone knows of this error and a workaround for it.
    The error that's displayed is: report error: User-Defined exception
    using Apex version 4.1.1. I've already tried building a new tabular form, but that didn't seem to resolve the issue.
    I would appreciate the help.
    Kind regards,
    Cleopatra

    Possible solution?
    Validation returns : no data found + unhandled user-defined exception
    See post by user 794496 there.

  • Tabular form loses entered data on return from error page after validation

    APEX 3.2
    I have a manually-built tabular form with validation. I display the error on the error page. When using Firefox and Chrome, when returning from the error page, the data I entered in the tabular form is still displayed. When using IE, that data is NOT retained.
    This worked properly at one time in IE.
    Suggestions?
    Thanks,
    -Ken

    APEX 3.2
    I have a manually-built tabular form with validation. I display the error on the error page. When using Firefox and Chrome, when returning from the error page, the data I entered in the tabular form is still displayed. When using IE, that data is NOT retained.
    This worked properly at one time in IE.
    Suggestions?
    Thanks,
    -Ken

  • Tabular Form Validation not working in tabular form APEX 4.0

    Hi,
    I am using APEX 4.0. I have a tabular form with Tabular form validation done with it.
    Item not null is the validation.. so if I dont type any value in the any of the fields in the tabular form and press the Submit button, the first time error is shown... but when I click the Submit button again, with still the empty rows the page is submitted.
    How to resolve this issue?
    Edited by: Suzi on Oct 5, 2010 11:13 AM

    Look at this thread - Re: Validations of tabular forms in 4.0

  • Null Validation in Tabular Form in APEX 4.2.2

    Hi to all respected Gurus of this Forum!
    Recently downloaded APEX 4.2.2. As we know that this version has some improved features and one is the best is i.e. *"Validation on Tabular Form".*
    For test purpose I succeeded to apply validation on field of tabular form and I am not allowed to "SUBMIT" data as per Validation Rule.
    But now, I want to customize that validation as per below logic.
    If required field is null than a message-box should appear with two buttons , as under:
    Blank field not allowed. Do you really want to submit? (Buttons should be = YES NO)
    If user press "YES" then validation should be false and record should be saved
    AND
    If user press "NO" then no data should be submitted/inserted as per validation logic.
    Please help. Your as usual cooperation is highly appreciated in advance.
    Regards
    Muhammad Uzair Awan
    ORACLE APEX Developer
    Pakistan

    Hello Sabine,
    >> I read about enhanced validation in 4.1 and would love to get rid of g_f-programming.
    The major “trick” is to associate the validation/process with a Tabular Form. On the first screen of both wizards, the first field is Tabular Form. You must select the tabular form on your page (currently there can be only one. In future versions this will change).
    Another factor that might influence the behavior of Tabular Form validation/process is the new attribute of Execution Scope. Unfortunately, you must enter Edit mode to gain access to this attribute (i.e., it can’t be set directly from the Tabular Form create wizard). Set it according to your need.
    The rest is very simple. You should treat your Tabular Form as a simple form, where every column header stands for a form item. The following is a very simple example of validating the SAL column:
    if :SAL < 1500 then
      return 'Sal Value is under 1500';
    else
      return null;
    end if;In this validation I’m using the Function Returning Error Text type.
    Regards,
    Arie.
    &diams; Please remember to mark appropriate posts as correct/helpful. For the long run, it will benefit us all.
    &diams; Author of Oracle Application Express 3.2 – The Essentials and More

  • Across row validation in tabular form and across items in row validations.

    Hi,
    We are upgrading to APEX 4.0.
    I need to create a tabular form that will have a start date and an end date. FOr each new row or updated row I need ensure its start date is after the end date of all rows already entered and its end date is after the start date of row being entered. Also that if no end date is entered then no other rows can be found with a null end date.
    SO I need across field validations with in a row and across row validattions. That is I need rowset validations as well.
    Is it possible to do this with APEX? WHat kind of tabular solution would allow these type of validations. How might these validations be done?

    Okay, Here's a quick rundown on how to build a manual form using APEX_ITEM and collections. The process goes in 4 steps: gather the data, display the data, update based on user input, then write the changes. Each step requires it's own piece of code, but you can extend this out as far as you want. I have a complex form that has no less than a master table and 4 children I write to based on user input, so this can get as complex as you need. Let me know if anything doesn't make sense.
    First, create the basic dataset you are going to work with. This usually includes existing data + empty rows for input. Create a Procedure that fires BEFORE HEADER or AFTER HEADER but definitely BEFORE the first region.
    DECLARE
      v_id     NUMBER;
      var1     NUMBER;
      var2     NUMBER;
      var3     VARCHAR2(10);
      var4     VARCHAR2(8);
      cursor c_prepop is
      select KEY, col1, col2, col3, to_char(col4,'MMDDYYYY')
        from table1
        where ...;
      i         NUMBER;
      cntr      NUMBER := 5;  --sets the number of blank rows
    BEGIN
      OPEN c_prepop;
        LOOP
          FETCH c_prepop into v_id, var1, var2, var3, var4;
          EXIT WHEN c_prepop%NOTFOUND;
            APEX_COLLECTION.ADD_MEMBER(
            p_collection_name => 'MY_COLLECTION',
            p_c001 => v_id,  --Primary Key
            p_c002 => var1, --Number placeholder
            p_c003 => var2, --Number placeholder
            p_c004 => var3, --text placeholder
            p_c005 => var4 --Date placeholder
        END LOOP;
      CLOSE c_prepop;
      for i in 1..cntr loop
        APEX_COLLECTION.ADD_MEMBER(
            p_collection_name => 'MY_COLLECTION',
            p_c001 => 0, --designates this as a new record
            p_c002 => 0, --Number placeholder
            p_c003 => 0, --Number placeholder
            p_c004 => NULL, --text placeholder
            p_c005 => to_char(SYSDATE,'MMDDYYYY') --Date placeholder
      end loop;
    END;Now I have a collection populated with rows I can use. In this example I have 2 NUMBERS, a TEXT value, and a DATE value stored as text. Collections can't store DATE datatypes, so you have to cast it to text and play with it that way. The reason is because the user is going to see and manipulate text - not a DATE datatype.
    Now build the form/report region so your users can see/manipulate the data. Here is a sample query:
    SELECT rownum, apex_item.hidden(1, c001),  --Key ID
         apex_item.text(2, c002, 8, 8) VALUE1,
         apex_item.text(3, c003, 3, 3) VALUE2,
         apex_item.text(4, c004, 8, 8) VALUE3,
         apex_item.date_popup(5, null,c005,'MMDDYYYY',10,10) MY_DATE
    FROM APEX_COLLECTIONS
    WHERE COLLECTION_NAME = 'MY_COLLECTION'This will be a report just like an SQL report - you're just pulling the data from the collection. You can still apply the nice formatting, naming, sorting, etc. of a standard report. In the report the user will have 3 "text" values and one Date with Date Picker. You can change the format, just make sure to change it in all four procedures.
    What is critical to note here are the numbers that come right before the column names. These numbers become identifiers in the array used to capture the data. What APEX does is creates an array of up to 50 items it designates as F01-F50. The F is static, but the number following it corresponds to the number in your report declaration above, ie, F01 will contain the primary key value, F02 will contain the first numeric value, etc. While not strictly necessary, it is good practice to assign these values so you don't have to guess.
    One more note: I try to align the c00x values from the columns in the collection with the F0X values in the array to keep myself straight, but they are separate values that do NOT have to match. If you have an application you think might get expanded on, you can leave gaps wherever you want. Keep in mind, however, that you only have 50 array columns to use for data input. That's the limit of the F0X array even though a collection may have up to 1000 values.
    Now you need a way to capture user input. I like to create this as a BEFORE COMPUTATIONS/VALIDATIONS procedure that way the user can see what they changed (even if it is wrong). Use the Validations to catch mistakes.
    declare
      j pls_integer := 0;
    begin
    for j1 in (
      select seq_id from apex_collections
      where collection_name = 'MY_COLLECTION'
      order by seq_id) loop
      j := j+1;
      --VAL1 (number)
      apex_collection.update_member_attribute (p_collection_name=> 'MY_COLLECTION',
          p_seq=> j1.seq_id,p_attr_number =>2,p_attr_value=>wwv_flow.g_f02(j));
      --VAL2 (number)
      apex_collection.update_member_attribute (p_collection_name=> 'MY_COLLECTION',
          p_seq=> j1.seq_id,p_attr_number =>3,p_attr_value=>wwv_flow.g_f03(j));
      --VAL3 (text)
      apex_collection.update_member_attribute (p_collection_name=> 'MY_COLLECTION',
          p_seq=> j1.seq_id,p_attr_number =>4,p_attr_value=>wwv_flow.g_f04(j));
      --VAL4 (Date)
      apex_collection.update_member_attribute (p_collection_name=> 'MY_COLLECTION',
          p_seq=> j1.seq_id,p_attr_number =>5,p_attr_value=>wwv_flow.g_f05(j));
    end loop;
    end;Clear as mud? Walk through it slowly. The syntax tells APEX which Collection (p_collection_name), then which row (p_seq), then which column/attribute (p_attr_number) to update with which value (wwv_flow.g_f0X(j)). The attribute number is the column number from the collection without the "c" in front (ie c004 in the collection = attribute 4).
    The last one is your procedure to write the changes to the Database. This one should be a procedure that fires AFTER COMPUTATIONS AND VALIDATIONS. It uses that hidden KEY value to determine whether the row exists and needs to be updated, or new and needs to be inserted.
    declare
    begin
      --Get records from Collection
      for y in (select TO_NUMBER(c001) x_key, TO_NUMBER(c002) x_1,
                 TO_NUMBER(c003) x_2,
                 c004 x_3,
                 TO_DATE(c005,'MMDDYYYY') x_dt
               FROM APEX_COLLECTIONS
               WHERE COLLECTION_NAME = 'MY_COLLECTION') loop
        if y.x_key = 0 then  --New record
            insert into MY_TABLE (KEY_ID, COL1,
                COL2, COL3, COL4, COL5)
              values (SEQ_MY_TABLE.nextval, y.x_1,
                  y.x_2, y.x_3, y.x_4, y.x_dt);
        elsif y.x_key > 0 then  --Existing record
            update MY_TABLE set COL1=y.x_1, COL2=y.x_2,
                 COL3=y.x_3, COL4=y.x_4, COL5=y.x_dt
             where KEY_ID = y.x_key;
        else
          --THROW ERROR CONDITION
        end if;
      end loop;
    end;Now I usually include something to distinguish the empty new rows from the full new rows, but for simplicity I'm not including it here.
    Anyway, this works very well and allows me complete control over what I display on the screen and where all the data goes. I suggest using the APEX forms where you can, but for complex situations, this works nicely. Let me know if you need further clarifications.

  • Validation in Tabular form column

    Dear All,
    i am using tabular form (Apex 4.1) to create new project users.
    i want to apply validation on column of tabular form.
    i have multiple entry in tabular form .i want to iterate throuh all records to check validation but my code is not iterating in to all record of columns.
    where i doing wrong.
    my code is
    DECLARE
    D DATE;
    BEGIN
    SELECT START_DATE INTO D FROM PA_PROJECTS_ALL WHERE PROJECT_ID=:F104_RESOURCE;
    FOR i IN 1 .. apex_application.g_f09.COUNT
    LOOP
    IF apex_application.g_f09(i) >=D THEN
    RETURN TRUE;
    END IF;
    RETURN FALSE;
    END LOOP;
    END;How can i iterate my loop if 2 and 3 row record not satisfying this condition
    apex_application.g_f09(i) >=D .How can i do this.
    Thanks

    DECLARE
    D DATE;
    B  BOOLEAN := FALSE; -- Added
    BEGIN
    SELECT START_DATE INTO D FROM PA_PROJECTS_ALL WHERE PROJECT_ID=:F104_RESOURCE;
    FOR i IN 1 .. apex_application.g_f09.COUNT
    LOOP
    --IF TO_DATE(apex_application.g_f09(i)),'DD-MON'YYYY' >=TO_DATE(D,'DD-MON-YYYY') THEN
    IF TO_DATE(apex_application.g_f09(i)),'DD-MON-YYYY' >=TO_DATE(D,'DD-MON-YYYY') THEN -- removed syntax error in this line
      --RETURN TRUE;
       B := TRUE;
    END IF;
    --RETURN FALSE; --commented
    END LOOP;
    RETURN B;
    END;This will iterate through the entire array, and if even one time it runs B:= TRUE it will return TRUE.
    Now all this assuming that the above code is a Condition on the Validation. If it is the Validation itself then TRUE Means Passed and False means failed. Check whether that is what you want.
    Regards,
    h5. Contrariwise, if it was so, it might be; and if it were so, it would be; but as it isn't, it ain't. That's logic. --Lewis Carroll                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

Maybe you are looking for

  • Duplex Printing Bug with HP OfficeJet Pro L7680

    Well - Duplex printing works but the back page will only print with binding on the top, Binding on the side does not work! Minor bug but still a bug at least with the HP!!

  • The delegate has not been set!

    I am trying to get my java code to do a rebind with a OpenORB naming service. The connection to the naming service works, but when I get to the line: ncRef.rebind(nameComponent, server_name); I get the error: org.omg.CORBA.BAD_OPERATION: The delegate

  • ITunes isn't even running

    it all starts with me trying to run iTunes and i would get this: "iTunes cannot run because some of its required files are missing. Please reinstall iTunes" and so i try... i downloaded the newest version from the website and when trying to run the s

  • Service PO for Asset material

    Hi I want to send an Asset material for service through service PO to a vendor for certain sort of service, after finishing the process at vendor , the same material should go to other plant in the same company but not to the issued plant. How can I

  • Runtime error on a website

    Hi all wondering if you could help me. I am trying to visit one website through safari and it tells me that there is a runtime error and wont open it. Got a yellow and red screen. But when I turn off my wi-fi on the iphone then it will open. turn my