Conditional primary key

I want to use the conditional foreign key as:
Table1 structure:
col1 col2
Table2 Structure:
col1 col2
The above are the existing tables and now i have to create a new table as follows
col1 col2 col3
in this If col1 is 1 then foreign key of col2 shall be checked from table1.col1 and if col1 is 2 then from table2.col1
can I know Is it possible with the above requirements in sql server.

As Visakh  said it is not possible but if you keen to implement this take a look into  triggers
not ideal but,...
Best Regards,Uri Dimant SQL Server MVP,
http://sqlblog.com/blogs/uri_dimant/
MS SQL optimization: MS SQL Development and Optimization
MS SQL Consulting:
Large scale of database and data cleansing
Remote DBA Services:
Improves MS SQL Database Performance
SQL Server Integration Services:
Business Intelligence

Similar Messages

  • Difference between primary key and primary index

    Dear All,
             Hi... .Could you pls tell me the difference between primary key and primary index.
    Thanks...

    Hi,
    Primary Key : It is one which makes an entry of the field unique.No two distinct rows in a table can have the same value (or combination of values) in those columns.
    Eg: first entry is 111, if you again enter value 111 , it doesnot allow 111 again. similarly for the strings or characters or numc etc. Remember that for char or numc or string 'NAME' is not equal to 'name'.
    Primary Index: this is related to the performance .A database index is a data structure that improves the speed of operations in a table. Indices can be created using one or more columns, providing the basis for both rapid random lookups and efficient ordering of access to records. The disk space required to store the index is typically less than the storage of the table (since indices usually contain only the key-fields according to which the table is to be arranged, and excludes all the other details in the table), yielding the possibility to store indices into memory from tables that would not fit into it. In a relational database an index is a copy of part of a table. Some databases extend the power of indexing by allowing indices to be created on functions or expressions. For example, an index could be created on upper(last_name), which would only store the uppercase versions of the last_name field in the index.
    In a database , we may have a large number of records. At the time of retrieving data from the database based on a condition , it is a burden to the db server. so whenever we create a primary key , a primary index is automatically created by the system.
    If you want to maintain indices on other fields which are frequently used in where condition then you can create secondary indices.
    Reward points if helpful.
    Thanks,
    Sirisha..

  • Violation of Primary Key after a successful Update of BP

    When I've updated a BP via VB.net is there something I should do with the BP object after I've done an update?
    I can't seem to do consecative updates or I get the following error:
    Violation of PRIMARY KEY constraint 'CRD1_PRIMARY'. Cannot insert duplicate key in object 'CRD1'
    This is the code I use for updating:
    For i = 0 To oBusinessPartner.Addresses.Count - 1
                oBusinessPartner.Addresses.SetCurrentLine(i)
                If (oBusinessPartner.Addresses.AddressType = SAPbobsCOM.BoAddressType.bo_ShipTo) Then
                    '** Check only SHIP TO Addresses
                    If (oBusinessPartner.Addresses.AddressName = cbSAPShipTo.SelectedItem) Then
                        '** Address User wishes to update
                        oBusinessPartner.Addresses.AddressType = SAPbobsCOM.BoAddressType.bo_ShipTo
                        oBusinessPartner.Addresses.AddressName = lSAPAddressItems(iIndex).Company
                        oBusinessPartner.Addresses.Street = lSAPAddressItems(iIndex).Address1
                        oBusinessPartner.Addresses.City = lSAPAddressItems(iIndex).City
                        oBusinessPartner.Addresses.ZipCode = lSAPAddressItems(iIndex).Postal
                        oBusinessPartner.Addresses.State = lSAPAddressItems(iIndex).Prov
                        oBusinessPartner.Addresses.Country = lSAPAddressItems(iIndex).Country
                    End If
                End If
            Next
            lRetCode = oBusinessPartner.Update()
    I check to make sure the address i want to up date is a ShipTo address, then I check to make sure that the item I am editing matches the one in the BPObject's CurrentLine.
    Then I just change the values and .Update() it
    After I've done this though, if I try to update another ShipTo address in the same BP, it comes up with that error.
    Should I kill the BP object and reinitialize it?

    Hi Tyler,
    I totally understand what you wanna do.
    The clauses which you use is trying to add a new address in the name of existing address.
    You have to do 'setcurrentline' clause, I guess.
    But now, you don't know 'what is the ShipTo line'.
    Then, I think you'd better use some simple, easy but timely expensive way.
    1. Count the records in CRD1 under conditions of the cardcode.
    -> then you can get the number of addresses of the business partner.
    2. use a loop (while, for.. doesn't matter.)
    -> Now you can use setcurrentline clause.
    3. If the addressname is 'ShipTo', then you can update the record, and exit loop.
    pseudo code comes below.
    sql = "Select count(*) FROM OCRD WHERE cardcode = 'aaa'"
    ors.doquery sql
    for i=1 to ors.fields.item(0)
    oBusinessPartners.Addresses.setcurrentline(i)
    if obusinessPartners.Addresses.AddressName = "ShipTo" then
    oBusinessPartners.block = "newBlock"
    exit for
    end if
    next i
    Hope this useful for you.
    Regards,
    Hyunil choi.

  • Primary keys and constraints are gone....

    Hi Experts,
    I had a schema SchemaD with all primary keys and referential constraints. And i am a TOAD user. I had one more source schema SchemaS.
    In my destination schema all the tables has 2 extra columns for data warehouse purpose.
    I disabled all the constraints and i used toad utility "Copy Data to Another Schema" and i selected all the tables from Source SchemaS.
    After the completion of data copy i tried to enable all the constraints in SchemaD. But i found that there are no primary keys and referential integrates in that schema.
    Please help me in this issue.
    Thanks...
    Ray

    Check in the views "DBA_CONSTRAINTS" or ALL_CONSTRAINTS" with the condition owner='your_schema_name'
    If you are using toad to view the constraints, chances are high that there is a filter in the toad view and it is filtering the constraints...
    Edited by: Suchit on Feb 25, 2009 5:19 PM
    Edited by: Suchit on Feb 25, 2009 5:20 PM

  • Dynamic SQL Joining between tables and Primary keys being configured within master tables

    Team , Thanks for your help in advance !
    I'm looking out to code a dynamic SQL which should refer Master tables for table names and Primary keys and then Join for insertion into target tables .
    EG:
    INSERT INTO HUB.dbo.lp_order
    SELECT *
    FROM del.dbo.lp_order t1
    where not exists ( select *
    from hub.dbo.lp_order tw
    where t1.order_id = t2.order_id )
    SET @rows = @@ROWCOUNT
    PRINT 'Table: lp_order; Inserted Records: '+ Cast(@rows AS VARCHAR)
    -- Please note Databse names are going to remain the same but table names and join conditions on keys
    -- should vary for each table(s) being configured in master tables
    Sample of Master configuration tables with table info and PK Info :
    Table Info         
    Table_info_ID    Table_Name    
    1        lp_order    
    7        lp__transition_record    
    Table_PK_Info        
    Table_PK_Info_ID    Table_info_ID    PK_Column_Name
    2                1    order_id
    8                7    transition_record_id
    There can be more than one join condition for each table
    Thanks you !
    Rajkumar Yelugu

    Hi Rajkumar,
    It is glad to hear that you figured the question out by yourself.
    There's a flaw with your while loop in your sample code, just in case you hadn't noticed that, please see below.
    --In this case, it goes to infinite loop
    DECLARE @T TABLE(ID INT)
    INSERT INTO @T VALUES(1),(3),(2)
    DECLARE @ID INT
    SELECT @ID = MIN(ID) FROM @T
    WHILE @ID IS NOT NULL
    PRINT @ID
    SELECT @ID =ID FROM @T WHERE ID > @ID
    So a cursor would be the appropriate option in your case, please reference below.
    DECLARE @Table_Info TABLE
    Table_info_ID INT,
    Table_Name VARCHAR(99)
    INSERT INTO @Table_Info VALUES(1,'lp_order'),(7,'lp__transition_record');
    DECLARE @Table_PK_Info TABLE
    Table_PK_Info_ID INT,
    Table_info_ID INT,
    PK_Column_Name VARCHAR(99)
    INSERT INTO @Table_PK_Info VALUES(2,1,'order_id'),(8,7,'transition_record_id'),(3,1,'order_id2')
    DECLARE @SQL NVarchar(MAX),
    @ID INT,
    @Table_Name VARCHAR(20),
    @whereCondition VARCHAR(99)
    DECLARE cur_Tabel_Info CURSOR
    FOR SELECT Table_info_ID,Table_Name FROM @Table_Info
    OPEN cur_Tabel_Info
    FETCH NEXT FROM cur_Tabel_Info
    INTO @ID, @Table_Name
    WHILE @@FETCH_STATUS = 0
    BEGIN
    SELECT @whereCondition =ISNULL(@whereCondition+' AND ','') +'t1.'+PK_Column_Name+'='+'t2.'+PK_Column_Name FROM @Table_PK_Info WHERE Table_info_ID=@ID
    SET @SQL = 'INSERT INTO hub.dbo.'+@Table_Name+'
    SELECT * FROM del.dbo.'+@Table_Name+' AS T1
    WHERE NOT EXISTS (
    SELECT *
    FROM hub.dbo.'+@Table_Name+' AS T2
    WHERE '+@whereCondition+')'
    SELECT @SQL
    --EXEC(@SQL)
    SET @whereCondition = NULL
    FETCH NEXT FROM cur_Tabel_Info
    INTO @ID, @Table_Name
    END
    Supposing you had noticed and fixed the flaw, your answer sharing is always welcome.
    If you have any question, feel free to let me know.
    Eric Zhang
    TechNet Community Support

  • Use of end-date as part of Primary key in SAP Tables

    All,
    Any ideas on the rationale behind SAPs use of end-date as part of Primary key in general, specifically on condition Tables(A9xx for example) instead of Start-date? appreciate any help!!
    Best Regards
    TRP

    Hmm, another example is CSKS, this logic was probably designed already in the 1980s...maybe it was seen beneficial to be able to select the currently valid record by using the primary key only (the first record where DATBI is larger than system date, not possible when DATAB is the key instead).
    Maybe there are better explanations. Why do you need to know this, just curious?
    Thomas

  • ODI - Primary Key issue

    Hi ,
    I have a primary key constraint in the target datastore. Thats mapped to field in the source which is not primary key. How can I check that , when I map from source to target primary key constraint is not violated ( I checked DISTINCT and UNIQUE as filter condition , but its not accepting the format. Give me the exact format)

    Hi ,
    My requirement is like I have a primary key in one of the fields of target column. That field is mapping to a field in source which is not a primary key . Source field can have duplicate values. I have to filter out that values when it enters to the target field. I used "DISTICT" keyword in the target datastore. But that will check only for "DISTINCT" records. I cannot applu "DISTICT" for individual field.
    For EX:
    SOURCE : TARGET
    DEPT CLASS SUBCLASS DEPT(primary key) CLASS
    1 1 1
    1 2 2
    1 3 3
    2 2 1
    2 1 2
    2 3 3
    If I use "DISTINCT" then it will choose ( 1 1,1 2,1 3,2 2,2 1,2 3) . But that will violate the primary key constraint.
    Edited by: rameshchandra85 on Nov 29, 2008 9:11 PM

  • Form Validation on Complex Primary Key

    I have a that inserts/updates a table with a 2 coulmn primary key (ticket_num, ticket_seq). Is there anyway to create a page validation item that will keep users from violating the pk constraint and getting the ugly ORA-00001 error.
    I think I just don't understand the syntax of the "SQL Expression" validation.
    I would like to just find if the key already exists, but the following does not seem to catch it. I have put the following in validation expression 1.
    (select count(*)
    from system_issue_timings
    where ticket_num = :P3_TICKET_NUM
    and ticket_seq = :P3_TICKET_SEQ) > 0

    The pl/sql with count(*) above will not work as select count(*) into... will never raise no_data_found, it will result in zero in v_test.
    The other thing to watch out for on this type of validation (whether implemented as sql not exists or as a pl/sql returning boolean or pl/sql returning error) is that if you are doing updates on this page then you need to either :
    1. not fire the validation when updating (assuming you cannot modify the primary key columns on the page), or
    2. specifically exclude the row being updated from the validation lookup (using rowid for example) as otherwise it will satisfy the condition and fail the validation.
    You want to probably use 'sql NOTexists' validation as it "Passes if the query return no rows." :
    select 1
    from system_issue_timings
    where ticket_num = :P3_TICKET_NUM
    and ticket_seq = :P3_TICKET_SEQ
    Glen
    Edited by: gjmorris on Sep 24, 2008 1:02 PM - added actual solution.

  • JBO-25013: Too many objects match the primary key oracle.jbo.Key[1661 ].

    Hi ,
    I'm using 11g adf
    I have a table XX , in which C1 and C2 are bind with composite key.I didn't get any issue while adding records , but when i try to fetch records using QB , i'm getting this error below
    <Utils><buildFacesMessage> ADF: Adding the following JSF error message: Too many objects match the primary key oracle.jbo.Key[1661 ].
    oracle.jbo.TooManyObjectsException: JBO-25013: Too many objects match the primary key oracle.jbo.Key[1661 ].
    at oracle.jbo.server.EntityCache.throwTooManyObjectsException(EntityCache.java:505)
    at oracle.jbo.server.EntityCache.handleDuplicateKey(EntityCache.java:513)
    at oracle.jbo.server.EntityCache.addForAltKey(EntityCache.java:870)
    at oracle.jbo.server.EntityCache.add(EntityCache.java:474)
    at oracle.jbo.server.ViewRowStorage.entityCacheAdd(ViewRowStorage.java:2878)
    at oracle.jbo.server.ViewRowImpl.entityCacheAdd(ViewRowImpl.java:3546)
    at oracle.jbo.server.ViewObjectImpl.createInstanceFromResultSet(ViewObjectImpl.java:5031)
    at oracle.jbo.server.QueryCollection.populateRow(QueryCollection.java:3232)
    at oracle.jbo.server.QueryCollection.fetch(QueryCollection.java:3092)
    at oracle.jbo.server.QueryCollection.get(QueryCollection.java:2097)
    at oracle.jbo.server.ViewRowSetImpl.getRow(ViewRowSetImpl.java:4773)
    at oracle.jbo.server.ViewRowSetIteratorImpl.doFetch(ViewRowSetIteratorImpl.java:2914)
    at oracle.jbo.server.ViewRowSetIteratorImpl.ensureRefreshed(ViewRowSetIteratorImpl.java:2770)
    at oracle.jbo.server.ViewRowSetIteratorImpl.refresh(ViewRowSetIteratorImpl.java:3011)
    at oracle.jbo.server.ViewRowSetImpl.notifyRefresh(ViewRowSetImpl.java:2635)
    at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:1182)
    at oracle.jbo.server.ViewRowSetImpl.executeQueryForMasters(ViewRowSetImpl.java:1299)
    at oracle.jbo.server.ViewRowSetImpl.executeQueryForMode(ViewRowSetImpl.java:1217)
    at oracle.jbo.server.ViewRowSetImpl.executeQuery(ViewRowSetImpl.java:1211)
    at oracle.jbo.server.ViewObjectImpl.executeQuery(ViewObjectImpl.java:6097)
    at com.agile.xb.model.XBTransaction.EquityPlacement.EquityPlacementService.queries.XBTBankSetlHeadVOImpl.executeQuery(XBTBankSetlHeadVOImpl.java:168)
    at oracle.adf.model.bc4j.DCJboDataControl.executeIteratorBinding(DCJboDataControl.java:1315)
    at oracle.adf.model.binding.DCIteratorBinding.doExecuteQuery(DCIteratorBinding.java:2147)
    at oracle.adf.model.binding.DCIteratorBinding.executeQuery(DCIteratorBinding.java:2108)
    at oracle.jbo.uicli.binding.JUSearchBindingCustomizer.applyAndExecuteViewCriteria(JUSearchBindingCustomizer.java:598)
    at oracle.adfinternal.view.faces.model.binding.FacesCtrlSearchBinding.processQuery(FacesCtrlSearchBinding.java:424)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.sun.el.parser.AstValue.invoke(AstValue.java:157)
    at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:283)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMethodExpression(UIXComponentBase.java:1289)
    at oracle.adf.view.rich.component.UIXQuery.broadcast(UIXQuery.java:115)
    at oracle.adf.view.rich.component.fragment.UIXRegion.broadcast(UIXRegion.java:148)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:90)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:309)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:94)
    at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:102)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:90)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:309)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:94)
    at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:96)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.broadcastEvents(LifecycleImpl.java:812)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:292)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:177)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:191)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:97)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420)
    at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:247)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:157)
    at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:94)
    at java.security.AccessController.doPrivileged(Native Method)
    at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
    at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
    at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:138)
    at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:70)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:159)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:326)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3592)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2202)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2108)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1432)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    thanks in advance

    Thats not the problem. However, what is the condition you have. Typically, you should be having the condition C1 AND C2 and not C1 OR C2.
    Also, provide more details like how you have implemented QB. Does your iterator hasNext returns row..?
    regards,
    ~Krithika

  • Automatic row processing updating my primary key

    Hi all!
    In Apex 3.2, I've got an Interactive report with a DML form on a table. My table has a primary key which use a sequence (trigger based). When I created my forms, I specified that I wanted to use an existing trigger as the source type of the primary key.
    When I try to create a record, it work. If I try to create a new record and save, my trigger give me an error message because the automatic row processing is trying to update the primary key too. (My trigger on the update specify that the primary key should not be updated).
    So my question is : How can I make the automatic row processing update everything but the primary key ? (I noticed that I could have asked APEX to use my SEQUENCE directly instead of the trigger (in the creation Wizard). But I dont know how to change this now that my form is created.)
    Is there a source type that I can change in my primary key item ?
    Note : My primary key item (id_emp) is protected and hidden. If I display it as "Display only", the update works... But I dont need to see id_emp on my form.

    OK,
    From your first post, it sounds as though the process is trying to perform an INSERT rather than an UPDATE. It is, therefore, trying to create a new record using a primary key that already exists on the table.
    If that is the case, then we need to go through the points along that route:
    1 - when you load a record into the page, the primary key page item should be given a value. So, firstly, check the link is populating the correct page item. And then, when the page has loaded, click the Session button on the Developer's toolbar at the bottom of the screen and check that the value is there
    2 - when the page loads, one, and only one, page item should have the primary key value. This should be P3_NO_EMPLOYE*. Check other page items to make sure that their source is not NO_EMPLOYE. Again, check with using the Session button to see if the value appears anywhere else on the page
    3 - when the page loads, the "SAVE" button should become visible. Check that this is conditional on P3_NO_EMPLOYE being NOT NULL
    4 - there should be one, and only one, button that triggers the SAVE action. Check that there are no other buttons that either (A) are called SAVE or (B) trigger the INSERT SQL database action
    5 - when the SAVE button is clicked, the "Process Row of..." process should be triggered and, because the button is SAVE and, therefore, sends "SAVE" as the REQUEST value, the process identifies this request as an Update database action. Check that you have Update ticked on the process and that you only have one process that can perform the update
    6 - it is possible to change the value of the Request after a button has been clicked, so check that you have no computations or processes that run before the "Process Row of..." process
    Andy

  • Auto Increment of primary key value in jdeveloper.

    hi all,
    i have one table with one primary key.
    i want to increment that primary key when ever i go for CreateInsert or create operation in JSF page.
    i have tried with db sequence value type, but i was not able to achieve my condition. in DB Sequence i got error like cannot convert java.class.string to java.class.dbsequence.
    can any one suggest me in this to achieve my condition.
    regards,
    M vijayalakshmi.

    hi all,
    from this i found the simple method to achive the auto increment of primary key.
    http://www.techartifact.com/blogs/2012/10/adding-number-for-primary-key-in-oracle-adf-using-groovy-by-sequence.html#ixzz2EeU9CWo6
    in this am facing an one small issue.
    intial value of the primary key is 1.
    for this value i have entered the row of data.
    again i have clicked on the create button.
    then the value of the primary key has increased to 2.
    for this value i didnt entered the row of data to databse.
    just i closed the browser.
    if i run the run page again, the value of primary key is 3.
    my requirment is i shd get the value of primary key is "2".
    the increment shd happen the maxi value present in the primary key of the table.
    can any one help me in this how to achive this.
    thanks in advance.
    regards,
    M vijayalakshmi.

  • Order of fields in Primary key in where clause

    Hello,
    Does order of fields(complete primary key) in where condition matters with the performance or using of index ?
    Here is an example -
    BKPF has primary key - bukrs, gjahr, belnr.
    1. select single awkey into lv_awkey
      from bkpf where bukrs = p_bukrs
                  and gjahr = p_gjahr
                  and belnr = p_belnr.
    2. select single awkey into lv_awkey from bkpf
                                  where bukrs = p_bukrs and
                                            belnr = p_belnr and
                                            gjahr = p_gjahr.
    Does it make any difference in performance point of view with above two kinds ? Is that same applicable when accessing based on secondary index ?
    Thanks,
    Nagarjuna

    Hi Nagarjuna,
    the order of the fields does not influence the performance of the execution of the statements. This is true for primary key and secondary key accesses. In the statement cache (SAP and DB) two different statemens have to be maintained (parsing, space, ...) but their execution time is the same.
    Kind regards,
    Hermann

  • Database Adapter Merge with char/varchar primary key

    Hi guys,
    It seems as though merge statements in BPEL database adapters do not work if the primary key of the table contains a char/varchar. This is in Jdeveloper 10.1.3.4.0
    If I create the table below:
    create table test_merge (
      id        number primary key,
      text      varchar2(255)
    );Then the merge operation will update and insert as expected. However, if I create the same table but with id as a char/varchar, then the merge statement will never update.
    It seems like it never finds a record with the same id (if it is a char/varchar), and always attempts to insert, which results in unique key constraint errors for the primary key column.
    Has anyone else encountered this issue and found a way to get the merge statement to work correctly? I can obviously perform the select myself, and then conditionally update/insert, but I would prefer the merge to work as expected.
    Thanks

    After investigating further, it seems that even a database adapter select is not working correctly. Consider the following table:
    create table test_merge (
      id        varchar2(255) primary key,
      text      varchar2(255)
    );And I have inserted a record with id = "1" and text="abc"
    If I create a BPEL process and add a database adapter (with only the select checkbox ticked) with the following SQL:
    SELECT ID, TEXT FROM TEST_MERGE WHERE (ID = #id)If I invoke this adapter, passing in "1" as the id, then a record is returned, with the correct text (i.e. "abc") BUT the id returned is "-9900000000000000000000000000"
    Can anyone explain why this is happening?

  • IDOC to MSsql,  error in mapping(Violation of PRIMARY KEY constraint)

    Hi All,
    I'm working with MATMAS IDOC  to MSSql. My SQL structure is of 8 tables(multiple statements) with primary key. In mapping i have used UPDATE_INSERT in action field for all the tables but still im getting "Violation of PRIMARY KEY constraint" for the last table structure. first 7 tables are single occurances but the 8th structure data is coming multple times from IDOC(E1MARMM).
    my 8th table structure is :
    STATEMENT8                                IDOC(MAPPED)
    TABLE8
    ACTION                                      UPDATE_INSERT
    TABLE                                           TABLENAME
    ACCESS     0 to Unbounded            MAPPED with E1MARMM
    Item_CD                                used oneasmany +splitbyvalue with MATNR
    Plant_ID                                  used oneasmany +splitbyvalue with WERKS  
    EAN_CAT                                 used oneasmany +splitbyvalue with NUMTP
    EAN                                             used oneasmany +splitbyvalue with EAN11
    Numerator_For_Conversion_To_BaseUOM
    Display_UOM
    Denominator_for_conversion_To_baseUOM
    KEY           0 to Unbounded                 MAPPED with E1MARMM
    Item_CD                                used oneasmany +splitbyvalue with MATNR
    Plant_ID                                  used oneasmany +splitbyvalue with WERKS  
    EAN_CAT                                 used oneasmany +splitbyvalue with NUMTP
    EAN                                             used oneasmany +splitbyvalue with EAN11
    Display_UOM
    in test tab its fine and fetching number of times according to MARMM segments  but in END to END testing its triggering an error stating that
    ""Message processing failed. Cause: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'MM_EAN' (structure 'STATEMENT8'): com.microsoft.sqlserver.jdbc.SQLServerException: Violation of PRIMARY KEY constraint 'PK_MM_EAN'. Cannot insert duplicate key in object 'dbo.MM_EAN'.  ""
    Plz help me regarding this..

    Hi team,
    How resolve the below error 
    Violation of PRIMARY KEY constraint 'PK_test'. Cannot insert duplicate key in object 'dbo.test'. The duplicate key value is (12610). (Source: MSSQLServer, Error number: 2627) ?
    Thanks,
    Ram
    RAM
    There can be two reasons
    1. The insert script used is having multiple instances of the records with Key as 12610 returned from the source query. If this is the issue add a logic to include only the unique set of id values for records by avoiding duplicates. There are several approaches
    for this like using ROW_NUMBER with PARTITION BY, using a join with derived table etc
    2. The record with Key 12610 already exist in your destination table and your script is again trying to insert another instances of record with same key. This can be avoided by adding a NOT EXISTS condition with a subquery which will check and return only
    those records which doesnt already exist in the source
    Please Mark This As Answer if it solved your issue
    Please Vote This As Helpful if it helps to solve your issue
    Visakh
    My Wiki User Page
    My MSDN Page
    My Personal Blog
    My Facebook Page

  • Editable primary key in form

    I have a wizard created report/form page, based on a simple table. There are just 2 columns handled by the form, the primary key and an attribute. Both columns are mandatory (checked by HTMLDB validation objects).
    But the form behaves a bit strange in a certain situation. If I fill in the primary key, leaving the second field blank and click the 'Create button' then the form returns a message about the missing data (second field) but it also acts as if the row had been inserted. The 'Create button' is replaced by a 'Delete button' and an 'Apply Changes button'. If I then fill in the missing data and click 'Apply Changes' the system tries to update a non existing row.
    I know one should strive for using system generated keys but this assignment didn't give me the opportunity to do so.
    Is there a workaround available for this problem?
    HÃ¥kan

    Suspect this is because of request setting, which is determined by button selected, which obviously dependant on button displayed! Default conditions for displaying CREATE/SAVE button dependent on whether primary key has a balue or not.
    I guess there are several ways around problem; one would be to hide the key and use another item for entry and display, populating with the real key on entry, and populating real key in an on submit after comp/val firing before your automatic row processing process.
    Simplistic solution and not complete, but a start.

Maybe you are looking for

  • Cannot install drivers on B85M-P33

    About 2 months ago I assembled my new pc (incl. some old parts): *MSI GTX 760 Twin Frozr OC 2Gb. *Antec 302 full-tower *CX500M modular power supply *Intel Core i5-4670 processor * MSI B85M-P33 motherboard * Western Digital WD10EADS 1TB SATA hard driv

  • Aperture: How to burn images to optical media -- DVD, CD

    Howdy, Aperture: How to burn images to optical media Here: http://docs.info.apple.com/article.html?artnum=305041 Thanks victor

  • Search Replace within a text

    //Create Method named ReplaceBlankWithDash(input string, input/output OutputTextData):Boolean InputTextData : TextData = new; OutputTextData : TextData = new; Success : Boolean = True; InputTextData.SetValue(string); while not (InputTextData.IsAtEnd(

  • Passing a variable from Flash Cs3 (AS2) to C#

    I am working on what I thought would be a simple microsoft windows form application.  In the application I load a .swf file, straight and simple, but when the last frame is reached I need to pass information to the C# program that the last page has b

  • Regkey Import via task sequence using command line. Running directly from DP.

    I have a package that is going to run straight from the dp called JAVAHOME. Inside this package there is a regkey called JAVAHOME.REG If I want to run it as part of a task sequence using a command line. The run a command line step has use package cal