Sequence number generator

First of all, my sincere thanks to Mike, Nick and others for responding.
Is there a way to generate sequence numbers like 1,2,3,4,5,etc?
Balaji

Within the context of the run of a process, Add Message Id will add such numbers to each record it receives. This is obviously not quite the same thing as a DB sequence number, where the sequence is driven by the entry of data into the table.
As Nick said, some customers add a variable (for example a number value added by Add Number Attribute that is externalized and set at runtime) to the Message Id to make a unique id across runs but this is something of a workaround. Also if you split records within an EDQ process these split records will be derived from the same Message Id so will share it. Finally, there is no cross-run context for message ids, so if the same record is pushed through the process again it may well have a different message id as EDQ simply allocates these in the order in which it processes the records.
EDQ does include a Hash Key Generator processor for where a 'sticky' record identifier that is derived from data is needed.

Similar Messages

  • Oracle Primary key error on a sequence number generator

    I have a table called table 1 and I am trying to insert a few values in this table and i am constantly getting bogged down by a primary key error. Strange thing is this primary key called "ID" on the table is a sytem generated sequence value number. The error is
    "ORA-00001: unique constraint (Schema1.LICN_PK) violated"
    Any idea?
    I will post the structure of the table below and my SQL statement as well.
    Table structure:
    CREATE TABLE schema1.table1
    ID NUMBER(12),
    LITM_ID NUMBER(12),
    PROG_PROGRAM_CD VARCHAR2(2 BYTE),
    SCHED_NBR VARCHAR2(3 BYTE),
    SCHD_VERSION_YR NUMBER(4),
    SCHD_VERSION_NBR NUMBER(3),
    LITM_LINE_ITEM_NBR VARCHAR2(3 BYTE),
    SLIN_LINE_ITEM_ID NUMBER(12),
    COND_CD VARCHAR2(15 BYTE),
    COND_TYPE VARCHAR2(1 BYTE) DEFAULT 'O',
    COND_TEXT VARCHAR2(240 BYTE),
    DERIVE_COMPRSN_IND VARCHAR2(1 BYTE),
    DISPLAY_SEQ_NBR NUMBER(5),
    SEVRTY_CD VARCHAR2(1 BYTE),
    OVRRDBL_IND VARCHAR2(1 BYTE),
    NEVER_OVRRDBL_IND VARCHAR2(1 BYTE),
    CREATED_BY VARCHAR2(8 BYTE),
    CREATED_TMST DATE,
    MODIFIED_BY VARCHAR2(8 BYTE),
    MODIFIED_TMST DATE
    CREATE UNIQUE INDEX schema1.LICN_PK ON schema1.table1
    (ID)
    NOLOGGING
    TABLESPACE INDEX_STAT1
    PCTFREE 10
    INITRANS 2
    MAXTRANS 255
    STORAGE (
    INITIAL 128K
    NEXT 128K
    MINEXTENTS 1
    MAXEXTENTS UNLIMITED
    PCTINCREASE 0
    BUFFER_POOL DEFAULT
    NOPARALLEL;
    CREATE UNIQUE INDEX schema1.LICN_UK ON schema1.table1
    (LITM_ID, COND_CD)
    NOLOGGING
    TABLESPACE INDEX_STAT1
    PCTFREE 10
    INITRANS 2
    MAXTRANS 255
    STORAGE (
    INITIAL 128K
    NEXT 128K
    MINEXTENTS 1
    MAXEXTENTS UNLIMITED
    PCTINCREASE 0
    BUFFER_POOL DEFAULT
    NOPARALLEL;
    Table structure ends
    ****************Insert statement*************
    insert into table1
    (id,
    litm_id,
    prog_program_cd,
    sched_nbr,
    schd_version_yr,
    schd_version_nbr,
    litm_line_item_nbr,
    slin_line_item_id,
    cond_cd,
    cond_type,
    cond_text,
    derive_comprsn_ind,
    display_seq_nbr,
    sevrty_cd,
    ovrrdbl_ind,
    never_ovrrdbl_ind,
    created_by,
    created_tmst,
    modified_by,
    modified_tmst)
    values
    (LITM_ID_SQ.nextval,
    5678,
    '28',
    000,
    2005,
    1,
    '007',
    28,
    '0008',
    'E',
    'No advance',
    'N',
    80,
    'M',
    'N',
    'Y',
    USER,
    SYSDATE,
    USER,
    SYSDATE);
    *************End***********************
    Any idea why the error is coming up and any way to resolve it. I checked the max sequence number value and kept running it for a while and then tried to run my insert statement but no luck yet.
    Please help!!!

    Hi,
    Are you tring to do the same insert more than once?
    The sequence for ID will be generated and there will be no problem with that.
    But what about UNIQUE INDEX schema1.LICN_UK ON schema1.table1(LITM_ID, COND_CD)?
    you are trying to insert the same values again into those columns... and there is a unique index.
    Test your insert by dropping the unique index LICN_UK
    DROP INDEX schema1.LICN_UK;Now it will work. But if you need the uniqueness, you need to insert different values for those columns each time you insert.
    G.

  • Portal Master-detail form how to auto assign detail record sequence number

    Portal Master-detail form how to auto assign detail record sequence number.Please help me?

    You can just read the following section
    Can I specify a sequence number generator as the default value for a form column?
    Yes. Enter the following in the "default value" field for the column:
    #<schema name>.<sequence name>.nextval
    where <schema name> is the name of the schema containing the sequence, and <sequence name> is the name of the sequence. The entry is preceded by a "#".
    For example, if the schema name is "SCOTT", and the sequence name is "CUSTOMER_SEQ", the default value entry is:
    #SCOTT.CUSTOMER_SEQ.NEXTVAL
    same way you can do for master - detail form.
    for more information on forms please refer the following URL.
    http://otn.oracle.com/products/iportal/htdocs/portal_faq.htm#BuildingApplications
    hope it helps.

  • Table Sequence number

    Hi All,
    I have a scenario which goes like this:
    We have a common table(Table1) in our DB which maintains the sequence numbers(we are not using oracle supplied db sequence).
    For every transaction we are using the current sequence number from the table Table1 and put in Table2, while saving
    we increment that number by 1 in Table1 for next transactions use. For every transaction the sequence number should be unique.
    At any point of time a record with same sequence number should not be inserted in Table2.
    In Table2 this sequnce number is not a unique column.
    To achieve this, we are checking using view object whether current sequence num already exists in Table2 before saving.
    If exists we refresh with new number from Table1. In normal scenario this works fine.
    But if concurrent users are accessing, there are cases where same sequence number getting inserted in the Table2
    with a time difference of 2 seconds or so(very short span, hence programmatic check fails).
    We are unable handle this case using programmatic check of records in table.
    Cany any one suggest the best solution possible to tackle this scenario.
    Thanks,
    Sanjaykar

    sanjaykar,
    Unless you use locking on the "sequence number generator" table, you WILL at some time get duplicates when two people try to insert at nearly the same time. Sounds like you are going for the infamous "gap-free sequence." My honest and not sarcastic nor facetious suggestion would be to go with a sequence number and abandon your approach.
    However, if you insist, you can do this by locking the row in the sequence generator table. You can do this in Oracle by using the FOR UPDATE clause of the SELECT statement like this:
    select current_value
    from my_sequence_table
    where sequence_name = 'foobar'
    FOR UPDATEThat will lock the row. You can then increment the number, specify it as your key value, update the current_value in your sequence table and commit. If another user jumps in around the same time, the SELECT FOR UPDATE will block, as the row is already locked. However, I cannot stress enough that if you are looking for a high-performance application, one that lets more than one person work at the same time, this is a horrible idea. Just pop over to http://asktom.oracle.com and search for gap-free sequences to read plenty of long discussions why.
    Best,
    John

  • Error While Generating Sequence Number. Contact your system Administrator

    Hi All,
    I have developed a form to provide our client with 'an easy to fill' User Interface. This form will be used instead of the standard form present in Business Suite.
    Some columns of the table, on which form is based, are getting populated via generation of sequence numbers.
    Now the problem is, after deploying custom form developed by me in the instance, Standard form is showing this error
    " Error While Generating the Sequence Number. Please contact the System Administrator "
    I am unable to trace why this error had started appearing..
    Any suggestions would be of great help...
    Thanks in Advance,..

    Forms version 6i,
    Database version 9.2.0.6.0
    Sequences which I am using are used there in Standard form also..
    So evrytime i need to save the record, I am selecting NEXTVAL of it into
    the respective item of the datablock..

  • Generating Sequence Number

    Hi,
    I have created a Query form. I had displayed the sequence number of the record displayed by selecting rownum from the table.
    Now I have added a order by clause in the query. So the rownum is not displayed in the order.
    I have created a small procedure to generate the sequence number.
    I would like to know from which trigger I should call this procedure.
    procedure resequence is
    v_cursor_record number;
    v_position number;
    begin
    v_cursor_record := to_number(:system.cursor_record);
    v_position := v_cursor_record;
    loop
    :detail.item := v_position;
    v_position := v_position + 1;
    exit when :system.last_record = 'TRUE';
    Next_record;
    end loop;
    go_record(v_cursor_record);
    end;

    Thanks for your reply. I have tried this method.It assigns value only for the first record in the block. As the post query trigger is not passing the control to other items ,though more than 10 records are fetched the sequence is generated only for the first record.
    Any other method to achieve this?

  • Need SQL statement to generate a sequence number in the output rows

    Hi folks. I need to create an SQL statement that generates a sequence number column in the output rows (records) such that the first returned row has this column set to 1, second returned row has the column set to 2, etc.
    For example, consider the query:
    SELECT income from employees WHERE income != 20000 ORDER BY income;
    If employees.income contains 60,000, 20,000, 35,000, and 19,000 for respective rows, the output would be this:
    19,000
    35,000
    60,000
    I would like the SQL to also return a sequence number that is computed across the returned rows, resulting in two output columns:
    1 19,000
    2 35,000
    3 60,000
    Is there a simple SQL function that generates the sequence number, in order, and only for the returned rows? Or is there another way?
    I'm stumped. Any help is appreciated! Thanks!
    - Jack Cochrane

    Hi,
    Welcome to the forum!
    Use ROWNUM, like (example):
    Connected to Oracle Database 10g Express Edition Release 10.2.0.1.0
    Connected as hr
    SQL> select rownum, first_name from (select e.first_name from employees e where e.first_name like 'J%' order by e.first_name);
        ROWNUM FIRST_NAME
             1 Jack
             2 James
             3 James
             4 Janette
             5 Jason
             6 Jean
             7 Jennifer
             8 Jennifer
             9 John
            10 John
            11 John
            12 Jonathon
            13 Jose Manuel
            14 Joshua
            15 Julia
            16 Julia
    16 rows selected
    SQL> But rememeber if you want to be sure of unique numbers in certain field is better to use sequences and use seq_name.nextval each time you need.
    Regards,

  • Generate archive logs are not in sequence number?

    On last friday... the latest archive log number was ARC00024.ARC. Tomorrow when I come backup, the archive logs ARC00001.ARC and ARC00002.ARC were being generated by oracle itself. I wondering the archive log sequence should be in sequence. What is happening?
    SQL> archive log list;
    Database log mode Archive Mode
    Automatic archival Enabled
    Archive destination C:\oracle\ora92\RDBMS
    Oldest online log sequence 1
    Next log sequence to archive 3
    Current log sequence 3
    SQL>
    FAN
    Edited by: user623471 on Jun 7, 2009 7:35 PM

    khurram,
    Its our production instance and havent issued resetlogs option but when listing the arvchives it shows in different sequence number...
    and also while copying the archives by RMAN it doesnt copy in sequence
    -rw-r----- 1 xxx dba 69363859 May 28 19:16 2_10373.arc.gz
    -rw-r----- 1 xxx dba 43446622 May 28 19:16 1_10553.arc.gz
    -rw-r----- 1 xxx dba 52587365 May 28 19:16 1_10578.arc.gz
    -rw-r----- 1 xxx dba 45251820 May 28 19:16 1_10543.arc.gz
    -rw-r----- 1 xxx dba 60890256 May 28 19:17 1_10579.arc.gz
    -rw-r----- 1 xxx dba 46659008 May 28 19:17 1_10548.arc.gz
    -rw-r----- 1 xxx dba 116899466 May 28 19:17 2_10353.arc.gz
    -rw-r----- 1 xxx dba 77769517 May 28 19:17 1_10531.arc.gz
    -rw-r----- 1 xxx dba 66401923 May 28 19:18 1_10530.arc.gz
    -rw-r----- 1 xxx dba 45972697 May 28 19:18 1_10605.arc.gz
    -rw-r----- 1 xxx dba 55082543 May 28 19:18 1_10600.arc.gz
    -rw-r----- 1 xxxq dba 42682207 May 28 19:19 1_10547.arc.gz
    thanks,
    baskar.l

  • XML insertion/updation using merge and generate sequence number

    Hi,
    I am working on Oracle 11g.
    I have a doubt with XML load.
    I get an xml and I have to insert or update data into a table A. This I can achieve using MERGE statement.
    But there is one column in Table A, that I need to populate with a sequence number, based on the data sent in the xml.
    The xml does not send this column data.
    And I have to make sure the sequence is created based on the order in which records are present in xml.
    For example the MERGE is inserting five rows and then updating next two rows and again inserting 3 rows from xml into table A. The sequence number should be created in the same order for the column in table A.
    Also for each new xml, the sequence starts with 1 and ends with the number of records in the xml. So I cannot create a sequence and use seq.nextval.
    Please let me know, there is a way of achieveing this.
    Thank you!
    Edited by: 934451 on Aug 8, 2012 6:33 AM
    Edited by: 934451 on Aug 8, 2012 6:50 AM

    Hi,
    Following up on your previous thread : {thread:id=2403469}
    You can use the FOR ORDINALITY clause in XMLTable to generate the required sequence :
    MERGE INTO target_table t
    USING (
      SELECT x.seq_num, x.pk_id, x.col1, x.col2, ...
      FROM XMLTable(
             '/root/record'
             passing my_xml_doc
             columns seq_num FOR ORDINALITY
                   , pk_id   number       path 'ID'
                   , col1    varchar2(30) path 'COL1'
                   , col2    varchar2(30) path 'COL2'
           ) x
    ) src
    ON ( t.pk_id = src.pk_id )
    WHEN MATCHED THEN UPDATE
    SET t.seq_num = src.seq_num
       , t.col1 = src.col1
       , t.col2 = src.col2
    WHEN NOT MATCHED THEN INSERT
    (seq_num, pk_id, col1, col2, ...)
    VALUES (src.seq_num, src.pk_id, src.col1, src.col2, ...)
    ;

  • Reg : I need to generate a file name sequence number.

    Dear All,
    I need to generate file name in sequence number. Now i have generated file in specific folder. In that folder file i am reading one by one and generating. Problem is folder file some names having special characte those names are not generating while reading 'Cat' Caommand in shell script. Instad of that i want to generate files in 1.ldt,2.ldt to etc..
    Please guide me how to generate in specific folder.
    Thanks in advance.
    Best Regards,
    Velu.

    First, LabVIEW 7 allows you to pass string and path data types directly into the Matlab script node. Otherwise, in LV <= 6.1 you can do the following:
    In LabVIEW, convert the string to an array of U8s using the String to Byte Array function. Then pass the U8 array into the Matlab script node as a Real Vector type. Finally, in Matlab, convert the Real Vector to a string using the char() function. For example:
    stringAsString = char(stringAsRealVector)
    Attached is an image that shows how to do this.
    Good luck,
    -Jim
    Attachments:
    Matlab_Script_Node_String_Input.GIF ‏6 KB

  • How can we generate auto Sequence Number in DFF attribute

    Dear
    We are on r12,rignt now we have an issue to generate sequence number in site Level(DFF) on Supplier window,actully we want
    to generate sequence number on site leve while inserting new record on site level,so how could i achvie this or any way which can help us.
    --thanks                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

    You can consider writing a before-insert trigger.
    The trigger generates the next value of the sequence and makes :new.attributen = the sequence value.
    Hope this helps,
    Sandeep Gandhi

  • How to generat sequence number for db in XSLT

    Hello SOA Gurus,
    I have a requirement, Please see below
    I am using SOA 11.1.1.6
    From a webservice call to db insert XSLT,  i have 10 elements at source side and 11 elements at target side.
    From source to target first 10 mappings are done.
    Now requirement is, for the 11th element in target- we need pass a sequence number to the targeted database, means---(sequence number has to be generated for every execution of XSLT execution)
    How to do the last point???
    Can anyone help me plzz

    Hi,
    You can pass the sequence number in the 11th element using "oraext:sequence-next-val("Sequence name as a string", "Datasource as a string") function.
    Regards,
    Anshul

  • Generating a Primary Key WITHOUT using a Sequence Number

    Hi Everyone:
    I am trying to generate a primary key without using a sequence number or row count. What the user wants is the maximum value of the highest primary key already in the row set plus 1.
    For example, this is a Oracle Table (eg. named BatchSubmit) used to initiate batch job submission, and the primary key is an integer named "Runcard_Number". If there are 4 rows in this table and the Runcard_Numbers are 2, 6, 8 & 12, then the next generated Runcard_Number would be 13.
    I have looked throughout this forum and see how to generate numbers using a DBSequence, but the user does not want that. The numbers mean something to them, and they don't want them randomly assigned other than the max in the rowset plus 1. To do it in SQL it would be - select max(Runcard_Number) + 1 from BatchSubmit;
    I have been looking at using a hasnext loop and moving the maximum value to the new Runcard_Number, but I am very new to JHeadstart/JDev and I do not know where to put this. I am assuming the BatchSubmitImpl.java, but I'm not sure where to put it or which method to utilize
    I would appreciate any assistance.
    Mary
    U o Windsor

    Mary you're in luck, 'cause, I've been playing with the same thing, these days and found that..
    You can do that in two ways (that I know):
    - by calling a stored function that does max+1 (you can look it up in Dev's guide for Forms&4GLDevs 10g chapter 25.5 Invoking Stored Procedures and Functions)
    - by calling hardcoded or dinamicaly written statement, that does the same
    public Number callStatement(String stmt)
    Number id = new Number(0);
    Row idRow = getDBTransaction().createViewObjectFromQueryStmt(stmt).next();
    if(idRow != null)
    Object o = idRow.getAttribute(0);
    if(o != null)
    if(o instanceof Number)
    id = (Number)o;
    else
    throw new JboException("Conversion error!");
    return id;
    You should call it in
    protected void doDML(int operation, TransactionEvent transactionEvent)
    switch (operation)
    case DML_INSERT:
    // call here
    super.doDML(operation, transactionEvent);
    break;
    case DML_UPDATE:
    super.doDML(operation, transactionEvent);
    break;
    case DML_DELETE:
    super.doDML(operation, transactionEvent);
    break;
    Enjoy!
    S. Julijan

  • How to pass the sequence number of current loop in a for loop in FPGA vi to the host

    PCI-7830R
    LV 8.2
    What I was trying to do is to use multiple DIO to generate pulse at different sequence. Mode one is to automatically sweep from DIO1 to DIO20; mode 2 is several DIOs generate pulse simoutaneously.  So I use a case structure to make the selection, in the mean time, I set up two for loop in each case so that I can use multiple pulse generations. For example, in scanning mode, if I set 2 exposures, it sweeps from 1 to 20 then do it again.  
    Then I need to get the loop sequence number, i of each scenario. So I put an indicator within the first loop, and create a local variable of it and put in the second one.  Running the FPGA vi alone, I can see the indicator change in each case from 0 to N-1, N being the for loop time.But in the host vi, I tried to add this indicator as an element in the read/write invoke method, in the debugging mode, I could only see it directly jump to N-1 without all the changes I saw in FPGA vi. 
    Is it possible to get this number passed correctly from FPGA vi to the host vi? Thanks

    Thanks for the reply Jared.
    Excuse me if it looks incorrect, but I'm new to FPGA programming, so I would have to look into the FIFO you referred to.  I used local variables because for one thing I have several different cases containing for loop in each of them, and I only want one indicator for the "i".  If I put the indicator out of any for loop, it's only gonna show the last number which is N-1.  For the other thing, it seems like property nodes are not allowed in FPGA vi.  And by doing this, I can see the i number changing from 0 to N-1 in each case, well, in FPGA vi's front panel.  But while I ran the host vi with everything, the indicator in host vi's front panel only showed the last number N-1. It may be the reason you said, it happened too fast before the indicator in host vi can catch it.
    What I want to realize is to group the data I collect in host vi, for example, when I choose multiple exposure in each mode, and the FPGA runs 1 through 20 then do it again, I want the data stored in two groups using the loop sequence number as the seperator in file name.  So it goes like 1-1, 2-1.......20-1; then 1-2, 2-2,.....20-2.

  • How to populate sequence number automatically in fusion web application

    Hi all,
    I created simple fusion web application.
    I created a form which has programid and remaining fields are there.
    If i press save button program details will save in database.
    here i am giving programid manually. but i need to generate a sequence number to programid automatically.
    If i give program details and save for this program details one sequence number should be generate and save in databasePlease help me
    Thanks,
    raj

    Here there are two methods given
    1. Generating sequence number from the trigger
    2. another one is from java class.
    I tried two but i am not getting the sequence number.
    In my application under model project i have programview.
    i created CustomEntityEmpl java class.
    I double clicked on programid in attributes window, given some sequence name in name field,given db sequence name as as value.
    i mentioned name of sequence in Java class. but still it is asking a value when submiting the program details with out program id.
    please help ASAP
    Thanks
    Nag

Maybe you are looking for