Deadlock when deleting a not linked data record in a parent table

Hello, who knows about this problem with Oracle 10g:
Our installation of Oracle 10.2g behaves different from Oracle 9.2 concerning locking of data records:
To prevent that different users edit a complex data record at the same time and store it, the user has to put
the data record into the "edit mode" and we lock it with "Select CharFieldZ from TableX where ID = 1 for UPDATE NOWAIT".
In this data record references (= foreign keys) to other tables are used; with foreign key constraints we
prevent those data records of these tables from being deleted, which are used in data records of tableX: on
deleting such a record Oracle gives an error message ORA-02292, which the application translates for the
user: "You cannot delete this record, because it is used somewhere else".
Now when locking data record A under Oracle 10.2g, which contains a foreign Key upon data record 1 of tableF,
and trying to delete data record 2 of tableF, a deadlock appears, even when this data record is not used
anywhere else.
Further conditions:
- Data record 2 was created before locking of data record A.
- In the same session tableF was opened for reading before.
Is there a parameter, which leads Oracle 10.2g to return to the former behavoir ?
or: how is it possible to prevent a deadlock anyhow else ?
Thanks in advance
Lothar Weidl-Walther
Germany
Edited by: schatzag on 04.02.2009 14:22
for easier demonstration the SQL-scripts:
Installation:
DELETE TableF;
DELETE TableX;
CREATE TABLE TableF
( ID INTEGER NOT NULL,
NAME VARCHAR2(30 BYTE) NOT NULL);
CREATE UNIQUE INDEX PK_TableF ON TableF(ID);
ALTER TABLE TableF ADD CONSTRAINT PK_TableF PRIMARY KEY(ID);
INSERT INTO TableF VALUES (1, 'Record1');
INSERT INTO TableF VALUES (2, 'Record2');
commit;
CREATE TABLE TableX
( ID INTEGER NOT NULL,
NAME VARCHAR2(30 BYTE) NOT NULL,
CharFieldZ VARCHAR2(100 BYTE),
TableF_ID INTEGER);
ALTER TABLE TableX ADD (
CONSTRAINT FK_TableX_TableF
FOREIGN KEY (TableF_ID)
REFERENCES TableF (ID));
INSERT INTO TableX VALUES (1, 'ComplexRecord1', 'User1', 1);
commit;
Session1:
SELECT CharFieldZ FROM TableX WHERE ID = 1 FOR UPDATE NOWAIT;
SELECT * FROM TableF;
Session2:
DELETE FROM TableF WHERE ID = 2;
Edited by: schatzag on 04.02.2009 14:26

I'm not aware that the locking mechanism did change between Oracle 9i and 10g. Can you provide a simple and reproducable example?
You current description is very "uncomplete", e.g. this statement would lock the full table, but I think that is not what your application does.
Select CharFieldZ from TableX for UPDATE NOWAITAs Peter already mentioned you should check if there are any other differences between the databases. Let me mention just a few points that I can think of at the moment:
* indexes
* FK constraints with DELETE CASCADE
* higher oracle block size (can lead to more ITL locks)
Edited by: Sven W. on Feb 4, 2009 2:18 PM

Similar Messages

  • DMS icon disable when documents are not linked

    Dear friends,
    Our client is having a requirement that when documents are not linked with any of the item no. of Purchase Requisition, then the DMS icon should be disabled, so that user dont have to check each and every item level of PR. If document is linked with any of the item no., then it should not get disabled.
    Kindly suggest how to explore this functionality in SAP DMS.
    Regards,
    Punam

    Try doing a Save As on the linked doc and see if that helps. I presume there is no problem accessing the links from the same machine.

  • Imported Form and sub-form from another database. Sub-form not creating new records tied to parent form's data.

    I have imported all objects from an old access db (.adp file) into a new db (.accdb).  All of my data lives in sql server so I have added all the tables and views to the .accdb as linked tables.  My forms all connect to data, but I am having issues
    with a sub form.  The sub form does not allow for creation of children records tied to the parent record the way the old db did/does.
    Correct - old format .adp file (notice the empty second record in sub-form with the defaulted date of today's date):
    Incorrect - new .accdb file (notice the lack of empty second record in sub-form like above):
    If I click the create new record icon in the bottom of the subform, it creates a completely blank record not tied to the parent record (fields blacked out in screen shots above).  When using this button all parent record fields are blank.  
    I have also verified the child table used in the sub-form has a valid Fky relationship to parent table used in the parent form.
     

    Have you checked each forms 'Filter' property (in Design view) to make sure they are blank and that each forms 'Filter On Load' property to make sure it is set to 'No'? Also, you might try inserting the following commands in each forms On
    Open event:
    DoCmd.RunCommand acCmdRemoveAllFilters
    DoCmd.ShowAllRecords
    If you can open each forms Record Source and they are showing that new records are able to be entered (the new record * is showing at the bottom of the recordset), then check each forms On Load and On Open events to make sure there is no filtering.
    In addition, check any macro or VBA commands behind the button that opens the main form to make sure there is no SQL filtering in the DoCmd.OpenForm command.
    If one of the forms Record Source does NOT allow new records, then you will need to change that Record Source so the new record * indicator shows.
    Out of ideas at this point.

  • Deadlock when delete rows with blob.

    Hello
    I have the following issue. I try to clean a table that contains a BLOB column.
    To do this I use SQLDBC I create a statement that contains the LOB column, I fetch the line, load the Blob. and before fetching the next line, I send a delete request. and I fall in the deadlock.
    If I fetch the next line before sending the delete request there is no deadlock, there is also no deadlock if i do not request le LOB column in the select.
    In fact when I made select with LOB, there is the follwing line in DOMAIN.LOCKS
    SESSION;TRANSCOUNT;PROCESS;USERNAME;DATE;TIME;TERMID;LASTWRITE;LOCKMODE;LOCKSTATE;APPLPROCESS;APPLNODE;SCHEMANAME;OWNER;TABLENAME;TABLEID;ROWIDLENGTH;ROWIDHEX;ROWID;
    295513;                4290;438;ESKDBADM;2010-06-17;12:05:46;ly-delorme-u..1674;?;tab_share;?;5748;LY-DELORME.esker.corp;?;?;?;0000800000046919;0;?;?
    when i send the delete request the following lock appears in DOMAIN.LOCKS. A exclusif lock on the column I want to delete. It's ok
    SESSION;TRANSCOUNT;PROCESS;USERNAME;DATE;TIME;TERMID;LASTWRITE;LOCKMODE;LOCKSTATE;APPLPROCESS;APPLNODE;SCHEMANAME;OWNER;TABLENAME;TABLEID;ROWIDLENGTH;ROWIDHEX;ROWID;
    295521;                4287;167;ESKDBADM;2010-06-17;12:05:49;ly-delorme-u..1674;         5;row_exclusive;write;5748;LY-DELORME.esker.corp;ESKDBADM;ESKDBADM;DBM350_AUTOTESTXML;0000000000000934;5;00C51133800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000;
    BUT there is a dead lock , I think because of the following entry in DOMAIN.LOCK_WAITS
    TABLENAME;TABLEID;H_TERMID;H_PROCESS;H_APPLPROCESS;H_APPLNODE;H_ROWIDHEX;H_ROWID;H_LOCKMODE;H_DATE;H_TIME;H_LOCKTIMEOUT;R_TERMID;R_PROCESS;R_APPLPROCESS;R_APPLNODE;R_ROWIDHEX;R_ROWID;R_REQMODE;R_DATE;R_TIME;R_REQTIMEOUT;
    ?;0000800000046919;ly-delorme-u..1674;438;5748;LY-DELORME.esker.corp;?;?;tab_share;2010-06-17;12:05:46;?;ly-delorme-u..1674;167;5748;LY-DELORME.esker.corp;?;?;tab_exclusive;2010-06-17;12:05:49;      3585
    The database request a tab_exclusive lock on tableid 0000800000046918 but there is already a tab_share lock on this.
    Do you why there is a lock on the table :  tableid 0000800000046918 ?
    How to avoid this lock using SQLDBC ?
    Thanks for you help.
    Yann.

    this is the same reply as previous reply, this carriage return. I hope.
    Hello,
    Here is code that explain my issue.
    I create a table like this :
    create table "ESKDBADM"."DBM350_AUTOTESTXML"( "MSN" INTEGER not null, "DIST_FILE" BLOB, constraint SYSPRIMARYKEY primary key ("MSN"))
    And then I try to delete row with the following program. I do not understand why the request SELECT Msn, DIST_FILE FROM DBM350_AUTOTESTXML set a share lock on the tableid : 000080000004691D.
    I do not find this tableid in the "SYSINFO"."FILES" table.
    SESSION;TRANSCOUNT;PROCESS;USERNAME;DATE;TIME;TERMID;LASTWRITE;LOCKMODE;LOCKSTATE;APPLPROCESS;APPLNODE;SCHEMANAME;OWNER;TABLENAME;TABLEID;ROWIDLENGTH;ROWIDHEX;ROWID;
    295697; 5220;172;ESKDBADM;2010-06-21;11:01:40;ly-delorme-u..1CDC;?;tab_share;?;7388;LY-DELORME.esker.corp;?;?;?;000080000004691D;0;?;?
    // SQLDBC.cpp : Defines the entry point for the console application.
    // YOU MUST CHANGE CONNECTION SETTINGS.
    #include "stdafx.h"
    #include <stdio.h>
    #include <tchar.h>
    #include <comdef.h>
    #include <iostream>
    #include "SQLDBC.h"
    using namespace SQLDBC;
    static void parseArgs(int argc, wchar_t **argv);
    static SQLDBC_Connection *connectDB(SQLDBC_Environment * env = NULL);
    static char* convertToUCS2(char *src);
    static void usage();
    SQLDBC_Environment *g_env;
    typedef struct ConnectArgsT {
      bstrt username;
      bstrt password;
      bstrt dbname;  
      bstrt host;    
      bstrt request;    
    } ConnectArgsT;
    ConnectArgsT connectArgs;
    void exitOnError(SQLDBC_ErrorHndl &err);
    int _tmain(int argc, _TCHAR* argv[])
       parseArgs(argc, argv);
       SQLDBC_Connection *conn = connectDB();
       //* Create a new statment object and execute it.
       SQLDBC_PreparedStatement *stmt = conn->createPreparedStatement();
       // FREEZE
       if (connectArgs.request.length() == 0)
               connectArgs.request = "SELECT Msn, DIST_FILE FROM DBM350_AUTOTESTXML";     
       /* NO FREEZE
       if (connectArgs.request.length() == 0)
               connectArgs.request = "SELECT Msn FROM DBM350_AUTOTESTXML";
       char command = (char)((LPCWSTR)(connectArgs.request));
        //* Executes the UNICODE encoded SQL command.
       SQLDBC_Retcode ret = stmt->prepare((const char*)command, SQLDBC_StringEncodingType::UCS2Swapped);
       exitOnError(stmt->error());
       stmt->execute();
       exitOnError(stmt->error());
       // * Get the resultset.  
       SQLDBC_ResultSet *result;
       result = stmt->getResultSet();
       exitOnError(stmt->error());
       // * Fetch the row from the resultset.     
       result->next();
            SQLDBC::SQLDBC_RowSet* pRowset =  result->getRowSet();
         ret = pRowset->fetch();          
       exitOnError(result->error());
       wchar_t szString[30];
       SQLDBC_Length ind;
    Get a string value from the column.
       result->getObject(1, SQLDBC_HOSTTYPE_UCS2_SWAPPED, szString, &ind, sizeof(szString)); // Retreive MSN.
       // Delete de line.
       // Create a new connection for delete
       SQLDBC_Connection *conn2 = connectDB(g_env);
       //* Create a new statment object and execute it.
       SQLDBC_PreparedStatement *stmt2 = conn2->createPreparedStatement();
         std::wstring st = L"DELETE FROM DBM350_AUTOTESTXML WHERE MSN=";
         st +=  szString;
         stmt2->prepare((char*)st.c_str(), SQLDBC_StringEncodingType::UCS2Swapped);
        //* Executes the UNICODE encoded SQL command.
         ret = stmt2->execute();
       exitOnError(stmt->error());
       printf("%s\n", szString);
       return 0;
    static char *convertToUCS2(char *src)
      int len = strlen(src);
      wchar_t w=(wchar_t)calloc(len, sizeof(wchar_t));
      int nc = mbstowcs(w, src, len);
      if ((size_t)-1 == nc) {
        fprintf(stderr, "Conversion to UCS2 failed. Execution stopped.\n");
        exit(1);
      short s=(SQLDBC_Int2)calloc(nc+1, sizeof(SQLDBC_Int2));
      int i;
      for(i=0; i<nc; i++) {
        s<i> = w<i>;
      free(w);
      return (char*)s;
    static char* strupper(char *str)
        char *p=str;
        while(*p) {
            p=toupper(p);
            ++p;
        return str;
    static wchar_t *argv0;      
    #ifdef WIN32
    #define STRICMP _stricmp
    #else
    #define STRICMP strcasecmp
    #endif
    SQLDBC_Connection *connectDB(SQLDBC_Environment * env)
      char errorText[200];
      SQLDBC_Retcode rc;
      if (g_env == NULL)
    Every application has to initialize the SQLDBC library by getting a
    reference to the ClientRuntime and calling the SQLDBC_Environment constructor.
           SQLDBC_IRuntime *runtime;
           runtime = SQLDBC::GetClientRuntime(errorText, sizeof(errorText));
           if (!runtime) {
              fprintf(stderr, "Getting instance of the ClientRuntime failed %s\n", errorText);
              usage();
           env = new SQLDBC_Environment(runtime);
           g_env = env;
    Create a new connection object and open a session to the database.
      SQLDBC_Connection *conn = env->createConnection();
      printf("Connecting to '%s' on '%s' as user '%s'\n",
             (char)connectArgs.dbname, (char)connectArgs.host, (char*)connectArgs.username);
      rc = conn->connect(connectArgs.host, connectArgs.dbname,
                         connectArgs.username, connectArgs.password);
      if(SQLDBC_OK != rc) {
        fprintf(stderr, "Can't connect to '%s'.\nERROR: %d:'%s'\n",
                connectArgs.dbname, conn->error().getErrorCode(), conn->error().getErrorText());
        exit(1);
      return conn;
    static void parseArgs (int argc, wchar_t **argv)
      argv0 = wcsdup(argv[0]);
    setting defaults for demo database
      connectArgs.username = "ESKDBADM";
      connectArgs.password = "DELORME";
      connectArgs.dbname = "EDP350";
      connectArgs.host = "ly-delorme";
    use values from command line
      if (argc > 5) {
        connectArgs.request = argv [5];
      if (argc > 4) {
        connectArgs.host = argv [4];
      if (argc > 3) {
        connectArgs.dbname = argv [3];
      if (argc > 2) {
        connectArgs.password = argv [2];
      if (argc > 1) {
        if (!wcsicmp(argv [1], L"-h"))
          usage();
        else {
          connectArgs.username = argv [1];
      strupper(connectArgs.username);
      strupper(connectArgs.password);
    void exitOnError(SQLDBC_ErrorHndl &err)
      if(err) {
        fprintf(stderr, "Execution stopped %d:'%s'", err.getErrorCode(), err.getErrorText());
        exit(1);
    static void usage()
      wchar_t *s = wcsrchr(argv0, L'/');
      if (!s)
        s = wcsrchr(argv0, L'
      if (s)
        *s = '\0';
      printf("Syntax: %s [-h] | [<connect_options>]\n"
             "\tconnect_options :: \n"
             "\t\t[ <username> \n"
             "\t\t[ <password>\n"
             "\t\t[ <database_name>\n"
             "\t\t[ <database_server> ]]]]\n"
               "\t\t[ <request> ]]]]\n"
             "\tCalling %s without any arguments will use user '%s','%s'\n"
             "\t\ton database '%s' at server '%s'\n",
             argv0, argv0,
             connectArgs.username, connectArgs.password,
             connectArgs.dbname, connectArgs.host);
      exit(1);

  • ICR Process 2, FBICR2, reconcilation screen not showing data records

    Experts,
    My reconciliation screen is not showing me any records for process 2. After posting 2 documents and running FBICA2 (Assignment Program), I can see the items be assigned. The records are also all available in auxially programs total records and list of documents. When I run FBICR2 (manual reconciliation) I get the following screen http://img20.imageshack.us/img20/8163/20395360.png
    . Has anyone dealt with this issue? Why would the records be available at all steps except the last?

    Ralph,
    With the help of an ICR SME yesterday, I was able to get process two working! It was great, the two notes helped and we reconciled several test scenarios.
    This morning, I was working on process 2 and used the auxilary program to delete the transactional data (not index tables), reactivated the data tables, posted two new documents, and now the reconciliation display is back to u201CNo Data Record Selectedu201D issue we solved this week. No configuration was changed since FBICR2 began working yesterday. I tried recalculating totals in the Aux. programs list but that didn't help either.  FBICA2 is still working perfectly and when I look at the records in auxiliary programs they have been assigned a document group number, so I know they are reconciling. The issue is with the Display in FBICR2. What would trigger FBICR2 to revert back to this error? Are there any known issue with the stability of FBICR2, or known issues with using the delete transactional data program?
    Please Advise.
    Thanks,
    John Scime

  • How to delete the duplicate rows present in the parent table & insert the latest duplicate record into the parent table linked with the child table.

    I have a master table and i need to import the rows into the parent and child table.
    Master table name is Flatfile_Inventory
    Parent Table name is INVENTORY
    Child Tables name are INVENTORY_AMOUNT,INVENTORY_DETAILS,INVENTORY_VEHICLE,
    Error details will be goes to LOG_INVENTORY_ERROR
    I have 4 duplicate rows in the Flatfile_Inventory which i have already inserted in the Parent and child table.
    Again when i run the query using stored procedure,
    its tells that all the 4 rows are duplicate and will move to the Log_Inventory_Error.
    I need is if i have the duplicate rows in the flatfile_Inventory when i start inserting into the parent and child table the already inserted row have the unique ID i
    must identify it and delete that row in the both parent and chlid table.And latest row must get inserted into the Parent and child table from Flatfile_Inventory.
    Please help me to write the query i have attached the Full stored procedure Script..
    Arunraj Kumar

    Hi Santhosh,
    This is my Script.
    -- =============================================
    -- Stored Procedure for FLATFILE_INVENTORY
    -- =============================================
    -- Drop stored procedure if it already exists
       DROP PROCEDURE SP_Flatfile_Inventory
    GO
    CREATE PROCEDURE SP_Flatfile_Inventory
    AS
    --USE IconicMarketing
    GO
    DECLARE
    @FileType  varchar(50)  ,
    @ACDealerID  varchar(50)  ,
    @ClientDealerID  varchar(50)  ,
    @DMSType  varchar(50)  ,
    @StockNumber  varchar(50)  ,
    @InventoryDate  datetime  ,
    @StockType  varchar(100)  ,
    @DMSStatus  varchar(50)  ,
    @InvoicePrice  numeric(18, 2)  ,
    @CostPack  varchar(50)  ,
    @SalesCost  numeric(18, 2)  ,
    @HoldbackAmount  numeric(18, 2)  ,
    @ListPrice  numeric(18, 2)  ,
    @MSRP  varchar(max)  ,
    @LotLocation  varchar(50)  ,
    @TagLine  varchar(max)  ,
    @Certification  varchar(max)  ,
    @CertificationNumber  varchar(max)  ,
    @VehicleVIN  varchar(50)  ,
    @VehicleYear  bigint  ,
    @VehicleMake  varchar(50)  ,
    @VehicleModel  varchar(50)  ,
    @VehicleModelCode  varchar(50)  ,
    @VehicleTrim  varchar(50)  ,
    @VehicleSubTrimLevel  varchar(max)  ,
    @Classification  varchar(max)  ,
    @TypeCode  varchar(100)  ,
    @VehicleMileage  bigint  ,
    @EngineCylinderCount  bigint  ,
    @TransmissionType  varchar(50)  ,
    @VehicleExteriorColor  varchar(50)  ,
    @VehicleInteriorColor  varchar(50)  ,
    @CreatedDate  datetime  ,
    @LastModifiedDate  datetime  ,
    @ModifiedFlag  varchar(max)  ,
    @InteriorColorCode  varchar(50)  ,
    @ExteriorColorCode  varchar(50)  ,
    @PackageCode  varchar(50)  ,
    @CodedCost  varchar(50)  ,
    @Air  varchar(100)  ,
    @OrderType  varchar(max)  ,
    @AgeDays  bigint  ,
    @OutstandingRO  varchar(50)  ,
    @DlrAccessoryRetail  varchar(50)  ,
    @DlrAccessoryCost  varchar(max)  ,
    @DlrAccessoryDesc  varchar(max)  ,
    @ModelDesc  varchar(50)  ,
    @Memo1  varchar(1000)  ,
    @Memo2  varchar(max)  ,
    @Weight  varchar(max)  ,
    @FloorPlan  numeric(18, 2)  ,
    @Purchaser  varchar(max)  ,
    @PurchasedFrom  varchar(max)  ,
    @InternetPrice  varchar(50)  ,
    @InventoryAcctDollar  numeric(18, 2)  ,
    @VehicleType  varchar(50)  ,
    @DealerAccessoryCode  varchar(50)  ,
    @AllInventoryAcctDollar  numeric(18, 2)  ,
    @BestPrice  varchar(50)  ,
    @InStock  bigint  ,
    @AccountingMake  varchar(50)  ,
    @GasDiesel  varchar(max)  ,
    @BookValue  varchar(10)  ,
    @FactoryAccessoryDescription  varchar(max)  ,
    @TotalReturn  varchar(10)  ,
    @TotalCost  varchar(10)  ,
    @SS  varchar(max)  ,
    @VehicleBody  varchar(max)  ,
    @StandardEquipment  varchar(max)  ,
    @Account  varchar(max)  ,
    @CalculatedPrice  varchar(10)  ,
    @OriginalCost  varchar(10)  ,
    @AccessoryCore  varchar(10)  ,
    @OtherDollar  varchar(10)  ,
    @PrimaryBookValue  varchar(10)  ,
    @AmountDue  varchar(10)  ,
    @LicenseFee  varchar(10)  ,
    @ICompany  varchar(max)  ,
    @InvenAcct  varchar(max)  ,
    @Field23  varchar(max)  ,
    @Field24  varchar(max)  ,
    @SalesCode  varchar(max)  ,
    @BaseRetail  varchar(10)  ,
    @BaseInvAmt  varchar(10)  ,
    @CommPrice  varchar(10)  ,
    @Price1  varchar(10)  ,
    @Price2  varchar(10)  ,
    @StickerPrice  varchar(10)  ,
    @TotInvAmt  varchar(10)  ,
    @OptRetail  varchar(max)  ,
    @OptInvAmt  varchar(10)  ,
    @OptCost  varchar(10)  ,
    @Options  varchar(max)  ,
    @Category  varchar(max)  ,
    @Description  varchar(max)  ,
    @Engine  varchar(max)  ,
    @ModelType  varchar(max)  ,
    @FTCode  varchar(max)  ,
    @Wholesale  varchar(max)  ,
    @Retail  varchar(max)  ,
    @Draft  varchar(max)  ,
    @Inventoryid int;
    DECLARE Inventory_Cursor CURSOR FOR 
    SELECT * from [dbo].[FLATFILE_INVENTORY];
    OPEN Inventory_Cursor
    FETCH NEXT FROM Inventory_Cursor 
    INTO @FileType   ,
    @ACDealerID     ,
    @ClientDealerID     ,
    @DMSType     ,
    @StockNumber     ,
    @InventoryDate    ,
    @StockType    ,
    @DMSStatus     ,
    @InvoicePrice     ,
    @CostPack     ,
    @SalesCost     ,
    @HoldbackAmount     ,
    @ListPrice     ,
    @MSRP     ,
    @LotLocation     ,
    @TagLine     ,
    @Certification     ,
    @CertificationNumber     ,
    @VehicleVIN     ,
    @VehicleYear     ,
    @VehicleMake     ,
    @VehicleModel     ,
    @VehicleModelCode     ,
    @VehicleTrim     ,
    @VehicleSubTrimLevel     ,
    @Classification     ,
    @TypeCode    ,
    @VehicleMileage     ,
    @EngineCylinderCount     ,
    @TransmissionType     ,
    @VehicleExteriorColor     ,
    @VehicleInteriorColor     ,
    @CreatedDate    ,
    @LastModifiedDate    ,
    @ModifiedFlag     ,
    @InteriorColorCode     ,
    @ExteriorColorCode     ,
    @PackageCode     ,
    @CodedCost     ,
    @Air    ,
    @OrderType     ,
    @AgeDays     ,
    @OutstandingRO     ,
    @DlrAccessoryRetail     ,
    @DlrAccessoryCost     ,
    @DlrAccessoryDesc     ,
    @ModelDesc     ,
    @Memo1 ,
    @Memo2     ,
    @Weight     ,
    @FloorPlan     ,
    @Purchaser     ,
    @PurchasedFrom     ,
    @InternetPrice     ,
    @InventoryAcctDollar     ,
    @VehicleType     ,
    @DealerAccessoryCode     ,
    @AllInventoryAcctDollar     ,
    @BestPrice     ,
    @InStock     ,
    @AccountingMake     ,
    @GasDiesel     ,
    @BookValue     ,
    @FactoryAccessoryDescription     ,
    @TotalReturn     ,
    @TotalCost     ,
    @SS     ,
    @VehicleBody     ,
    @StandardEquipment     ,
    @Account     ,
    @CalculatedPrice     ,
    @OriginalCost     ,
    @AccessoryCore     ,
    @OtherDollar     ,
    @PrimaryBookValue     ,
    @AmountDue     ,
    @LicenseFee     ,
    @ICompany     ,
    @InvenAcct     ,
    @Field23     ,
    @Field24     ,
    @SalesCode     ,
    @BaseRetail     ,
    @BaseInvAmt     ,
    @CommPrice     ,
    @Price1     ,
    @Price2     ,
    @StickerPrice     ,
    @TotInvAmt     ,
    @OptRetail     ,
    @OptInvAmt     ,
    @OptCost     ,
    @Options     ,
    @Category     ,
    @Description     ,
    @Engine     ,
    @ModelType     ,
    @FTCode     ,
    @Wholesale     ,
    @Retail     ,
    @Draft     ;
    WHILE @@FETCH_STATUS = 0
    BEGIN
        PRINT @VehicleVIN    ;
    -- ****************** insert into Inventory Table ***********
    INSERT INTO INVENTORY 
    IconicDealerID,
    StockNumber,
    DMSType,
    InventoryDate
    VALUES (@ClientDealerID,@StockNumber,@DMSType,@InventoryDate);
    set @Inventoryid = scope_identity();
    PRINT @Inventoryid;
    --Insert into Inventory_Details Table
    INSERT INTO [INVENTORY_DETAILS]
    InventoryID,
    StockType,
    DMSStatus,
    LotLocation,
    TagLine,
    Certification,
    CertificationNumber,
    CreatedDate,
    LastModifiedDate,
    ModifiedFlag,
    PackageCode,
    OrderType,
    AgeDays,
    OutstandingRO,
    Memo1,
    Memo2,
    Purchaser,
    PurchasedFrom,
    DealerAccessoryCode,
    InStock,
    AccountingMake,
    SS,
    Account,
    AccessoryCore,
    ICompany,
    InvenAcct,
    Field23,
    Field24,
    SalesCode,
    Draft,
    FTCode
    VALUES (
    @InventoryID,
    @StockType,
    @DMSStatus,
    @LotLocation,
    @TagLine,
    @Certification,
    @CertificationNumber,
    @CreatedDate,
    @LastModifiedDate,
    @ModifiedFlag,
    @PackageCode,
    @OrderType,
    @AgeDays,
    @OutstandingRO,
    @Memo1,
    @Memo2,
    @Purchaser,
    @PurchasedFrom,
    @DealerAccessoryCode,
    @InStock,
    @AccountingMake,
    @SS,
    @Account,
    @AccessoryCore,
    @ICompany,
    @InvenAcct,
    @Field23,
    @Field24,
    @SalesCode,
    @Draft,
    @FTCode
    --Insert into Inventory_Amount Table
    INSERT INTO [dbo].[INVENTORY_AMOUNT]
    InventoryID,
    AllInventoryAcctDollar,
    OtherDollar,
    PrimaryBookValue,
    AmountDue,
    LicenseFee,
    CalculatedPrice,
    OriginalCost,
    BookValue,
    TotalReturn,
    TotalCost,
    DlrAccessoryRetail,
    DlrAccessoryCost,
    DlrAccessoryDesc,
    InternetPrice,
    InventoryAcctDollar,
    BestPrice,
    Weight,
    FloorPlan,
    CodedCost,
    InvoicePrice,
    CostPack,
    SalesCost,
    HoldbackAmount,
    ListPrice,
    MSRP,
    BaseRetail,
    BaseInvAmt,
    CommPrice,
    Price1,
    Price2,
    StickerPrice,
    TotInvAmt,
    OptRetail,
    OptInvAmt,
    OptCost,
    Wholesale,
    Retail
    VALUES (
    @InventoryID,
    @AllInventoryAcctDollar,
    @OtherDollar,
    @PrimaryBookValue,
    @AmountDue,
    @LicenseFee,
    @CalculatedPrice,
    @OriginalCost,
    @BookValue,
    @TotalReturn,
    @TotalCost,
    @DlrAccessoryRetail,
    @DlrAccessoryCost,
    @DlrAccessoryDesc,
    @InternetPrice,
    @InventoryAcctDollar,
    @BestPrice,
    @Weight,
    @FloorPlan,
    @CodedCost,
    @InvoicePrice,
    @CostPack,
    @SalesCost,
    @HoldbackAmount,
    @ListPrice,
    @MSRP,
    @BaseRetail,
    @BaseInvAmt,
    @CommPrice,
    @Price1,
    @Price2,
    @StickerPrice,
    @TotInvAmt,
    @OptRetail,
    @OptInvAmt,
    @OptCost,
    @Wholesale,
    @Retail
    --Insert into Inventory_Vehicle Table
    INSERT INTO [dbo].[INVENTORY_VEHICLE]
    InventoryID,
    InteriorColorCode,
    ExteriorColorCode,
    Air,
    ModelDesc,
    VehicleType,
    VehicleVIN,
    VehicleYear,
    VehicleMake,
    VehicleModel,
    VehicleModelCode,
    VehicleTrim,
    VehicleSubTrimLevel,
    Classification,
    TypeCode,
    VehicleMileage
    VALUES (
    @InventoryID,
    @InteriorColorCode,
    @ExteriorColorCode,
    @Air,
    @ModelDesc,
    @VehicleType,
    @VehicleVIN,
    @VehicleYear,
    @VehicleMake,
    @VehicleModel,
    @VehicleModelCode,
    @VehicleTrim,
    @VehicleSubTrimLevel,
    @Classification,
    @TypeCode,
    @VehicleMileage
    -- Move cursor to Next record 
        FETCH NEXT FROM Inventory_Cursor 
    INTO @FileType   ,
    @ACDealerID     ,
    @ClientDealerID     ,
    @DMSType     ,
    @StockNumber     ,
    @InventoryDate    ,
    @StockType    ,
    @DMSStatus     ,
    @InvoicePrice     ,
    @CostPack     ,
    @SalesCost     ,
    @HoldbackAmount     ,
    @ListPrice     ,
    @MSRP     ,
    @LotLocation     ,
    @TagLine     ,
    @Certification     ,
    @CertificationNumber     ,
    @VehicleVIN     ,
    @VehicleYear     ,
    @VehicleMake     ,
    @VehicleModel     ,
    @VehicleModelCode     ,
    @VehicleTrim     ,
    @VehicleSubTrimLevel     ,
    @Classification     ,
    @TypeCode    ,
    @VehicleMileage     ,
    @EngineCylinderCount     ,
    @TransmissionType     ,
    @VehicleExteriorColor     ,
    @VehicleInteriorColor     ,
    @CreatedDate    ,
    @LastModifiedDate    ,
    @ModifiedFlag     ,
    @InteriorColorCode     ,
    @ExteriorColorCode     ,
    @PackageCode     ,
    @CodedCost     ,
    @Air    ,
    @OrderType     ,
    @AgeDays     ,
    @OutstandingRO     ,
    @DlrAccessoryRetail     ,
    @DlrAccessoryCost     ,
    @DlrAccessoryDesc     ,
    @ModelDesc     ,
    @Memo1 ,
    @Memo2     ,
    @Weight     ,
    @FloorPlan     ,
    @Purchaser     ,
    @PurchasedFrom     ,
    @InternetPrice     ,
    @InventoryAcctDollar     ,
    @VehicleType     ,
    @DealerAccessoryCode     ,
    @AllInventoryAcctDollar     ,
    @BestPrice     ,
    @InStock     ,
    @AccountingMake     ,
    @GasDiesel     ,
    @BookValue     ,
    @FactoryAccessoryDescription     ,
    @TotalReturn     ,
    @TotalCost     ,
    @SS     ,
    @VehicleBody     ,
    @StandardEquipment     ,
    @Account     ,
    @CalculatedPrice     ,
    @OriginalCost     ,
    @AccessoryCore     ,
    @OtherDollar     ,
    @PrimaryBookValue     ,
    @AmountDue     ,
    @LicenseFee     ,
    @ICompany     ,
    @InvenAcct     ,
    @Field23     ,
    @Field24     ,
    @SalesCode     ,
    @BaseRetail     ,
    @BaseInvAmt     ,
    @CommPrice     ,
    @Price1     ,
    @Price2     ,
    @StickerPrice     ,
    @TotInvAmt     ,
    @OptRetail     ,
    @OptInvAmt     ,
    @OptCost     ,
    @Options     ,
    @Category     ,
    @Description     ,
    @Engine     ,
    @ModelType     ,
    @FTCode     ,
    @Wholesale     ,
    @Retail     ,
    @Draft     ;
    END 
    CLOSE Inventory_Cursor;
    DEALLOCATE Inventory_Cursor;
    GO
    SET ANSI_PADDING OFF
    GO
    Arunraj Kumar

  • Problem When Try to add Master data record for User define form

    Hi,
    I have made one user define form. And assign UDO and fields proerly in form.
    But when I try to add the record from the form it will give me error
    Invalid Code [Operation Master  -Code] [Message 173-36]
    I have already bind the code field of the table to one field in the screen painter.
    Please give me the reply.
    Regards,
    Gunjan Shukla.

    Dear Shukla
    Can you please try to do the binding in the code (after loading the from).
    Doing that, do you still have the problem?
    Best regards,
    Miki

  • Creating a Trigger for Deleting the records from a parent Table

    I am new to creating Trigger
    We will need several small tables that will be used to store any records that are deleted by the owner of the table. These will likely need a trigger where we would Delete from the parent table and on that Delete populate the child table with the previous record's data.
    Please give me a pseudo code for this
    Thanks
    John
    Edited by: user10750995 on Dec 30, 2008 9:06 AM

    Something like this:
    CREATE OR REPLACE TRIGGER trg_my_table_hist
    AFTER DELETE
    ON my_table
    FOR EACH ROW
    BEGIN
    INSERT INTO Hist_MyTable
    ( column1, column2, ..., DELETION_DATE)
    VALUES
    (:OLD.column1, :OLD.column2, ...., SYSDATE);
    END;
    /My_Table is your main table. When a row is deleted, the trigger will be fired and copy the deleted row to another table called Hist_My_Table. I'm supposing that the history table has all columns as they are defined in main tables plus a column named DELETION_DATE.
    My experience indicates that, probably, it's a good idea maintain update history and the user. But it depends on your requests.
    Regards,
    Miguel

  • SPLIT data-record AT delimiter into table-fieldname

    Hi all,
    I have the following SPLIT statement. But unable to split into respective field in an internal table. I'm using the standard delimeter.
    Please help me how to create a file using the delimeter w_delimeter.
    When I create the file with separated by '#' even it is not spliting.
    w_delimeter TYPE c value cl_abap_char_utilities=>horizontal_tab.
    SPLIT data-record AT w_delimeter INTO i_0208-pernr
                                                                         i_0208-begda
                                                                        i_0208-endda
                                                                        i_0208-wtart
                                                                        i_p0208-allpc.
    Thanks,
    Prasad

    Hi Prasad,
    it should work try this bellow piece of code.
    REPORT  ZTEST_A.
    data: Begin of itab occurs 1,
            name(30),
            street(30),
            Apt(3),
            city(30),
            state(2),
            zipcode(5),
          end of itab,
          text1(250),
          text2(250).
    Text1 = 'Jacson  3 xyz dr  B4  abcd  DE  12345'.
    Text2 = 'Edward  3 Caaa dr  B4  pqr  DE  54623'.
    split text1  AT '  '  into   itab-name itab-street  itab-Apt
            itab-city itab-state itab-zipcode.
    append itab.
    split text2  AT '  '  into   itab-name itab-street  itab-Apt
            itab-city itab-state itab-zipcode.
    append itab.
    thanks,
    Venkat

  • Insert statement does not insert all records from a partitioned table

    Hi
    I need to insert records in to a table from a partitioned table.I set up a job and to my surprise i found that the insert statement is not inserting all the records on the partitioned table.
    for example when i am using select statement on to a partitioned table
    it gives me 400 records but when i insert it gives me only 100 records.
    can anyone help in this matter.

    INSERT INTO TABLENAME(COLUMNS)
    (SELECT *
    FROM SCHEMA1.TABLENAME1
    JOIN SCHEMA2.TABLENAME2a
    ON CONDITION
    JOIN SCHEMA2.TABLENAME2 b
    ON CONDITION AND CONDITION
    WHERE CONDITION
    AND CONDITION
    AND CONDITION
    AND CONDITION
    AND (CONDITION
    HAVING SUM(COLUMN) > 0
    GROUP BY COLUMNS

  • Deadlock when deleting from rsstatmanpsa during DSO activation

    We are experiencing intermittent Oracle deadlocks during DSO activation in our BI system.  The deadlocks occur when the following SQL statement is executed:
          delete from rsstatmanpsa where
                 partnr >= l_s_status-rnr_sid and
                 psa     = l_s_status-dta.
    This is at line 83 of the SET STATUS method of class CL_RSSM_STATMAN.  (See below for runtime error details.)
    When these errors occur the background job for the DSO activation is cancelled with the message ABAP/4 processor: DBIF_RSQL_SQL_ERROR.  Strangely, when this occurs as part of a process chain, the status of the process variant does not get updated until/unless someone displays the process chain log, at which point the status changes and follow-on events are triggered.  In other words, the process chain does not seem to be receiving word that the DSO activation process has abended, so we do not receive alerts that a problem has occurred.
    Has anyone else experienced this issue?
    Thanks,
    Bob
    P.S.  We are running BI 7.0, Patch Level 15 on Oracle 10.2.0.4.0
    Runtime Errors         DBIF_RSQL_SQL_ERROR
    Exception              CX_SY_OPEN_SQL_DB
    Error analysis
    An exception occurred that is explained in detail below.
    The exception, which is assigned to class 'CX_SY_OPEN_SQL_DB', was not caught
    in
    procedure "SET_STATUS" "(METHOD)", nor was it propagated by a RAISING clause.
    How to correct the error
    Database error text........: "ORA-00060: deadlock detected while waiting for
    resource"
    Internal call code.........: "[RSQL/DELE/RSSTATMANPSA ]"
    Please check the entries in the system log (Transaction SM21).
    If the error occures in a non-modified SAP program, you may be able to
    find an interim solution in an SAP Note.
    If you have access to SAP Notes, carry out a search with the following
    keywords:
    "DBIF_RSQL_SQL_ERROR" "CX_SY_OPEN_SQL_DB"
    "CL_RSSM_STATMAN===============CP" or "CL_RSSM_STATMAN===============CM008"
    "SET_STATUS"
    If you cannot solve the problem yourself and want to send an error
    notification to SAP, include the following information:
    1. The description of the current problem (short dump)
    To save the description, choose "System->List->Save->Local File
    (Unconverted)".
    2. Corresponding system log
    Display the system log by calling transaction SM21.
    Restrict the time interval to 10 minutes before and five minutes
    after the short dump. Then choose "System->List->Save->Local File
    (Unconverted)".
    3. If the problem occurs in a problem of your own or a modified SAP
    program: The source code of the program
    In the editor, choose "Utilities->More
    Utilities->Upload/Download->Download".
    4. Details about the conditions under which the error occurred or which
    actions and input led to the error.
    The exception must either be prevented, caught within proedure
    "SET_STATUS" "(METHOD)", or its possible occurrence must be declared in the
    RAISING clause of the procedure.
    To prevent the exception, note the following:
    Information on where terminated
    Termination occurred in the ABAP program "CL_RSSM_STATMAN===============CP" -
    in "SET_STATUS".
    The main program was "RSPROCESS ".
    In the source code you have the termination point in line 83
    of the (Include) program "CL_RSSM_STATMAN===============CM008".
    The program "CL_RSSM_STATMAN===============CP" was started as a background job.
    Job Name....... "BI_PROCESS_ODSACTIVAT"
    Job Initiator.. "ALEREMOTE"
    Job Number..... 05302800
    The termination is caused because exception "CX_SY_OPEN_SQL_DB" occurred in
    procedure "SET_STATUS" "(METHOD)", but it was neither handled locally nor
    declared
    in the RAISING clause of its signature.
    The procedure is in program "CL_RSSM_STATMAN===============CP "; its source
    code begins in line
    1 of the (Include program "CL_RSSM_STATMAN===============CM008 ".
    Source Code Extract
    Line
    SourceCde
    53
    if i_with_internal_check is initial.
    54
    l_s_status = i_s_status.
    55
    call function 'RSSM_GET_TIME'
    56
    importing
    57
    e_timestamps = l_s_status-ts_last_changed.
    58
    if l_s_status-ts_proc_started <= '10000101000000'.
    59
    l_s_status-ts_proc_started = l_s_status-ts_last_changed.
    60
    endif.
    61
    if l_s_status_exist is initial.
    62
    insert rsstatmanstatus from l_s_status.
    63
    if sy-subrc <> 0.
    64
    message x000.
    65
    endif.
    66
    else.
    67
    modify rsstatmanstatus from l_s_status.
    68
    if sy-subrc <> 0.
    69
    message x000.
    70
    endif.
    71
    endif.
    72
    delete from rsstatmanpart where
    73
    rnr      = l_s_status-rnr and
    74
    dta      = l_s_status-dta and
    75
    dta_type = l_s_status-dta_type.
    76
    select single * from rsstatmanpsa into l_s_psa where
    77
    rnr      = l_s_status-rnr and
    78
    psa      = l_s_status-dta.
    79
    if sy-subrc = 0.
    80
    delete from rsmdatastate_psa where
    81
    psa  = l_s_status-dta and
    82
    type = l_s_status-dta_type.
    >>>>>
    delete from rsstatmanpsa where
    84
    partnr >= l_s_status-rnr_sid and
    85
    psa     = l_s_status-dta.
    86
    else.
    87
    select single * from rsmdatastate_psa into l_ds_psa where
    88
    psa  = l_s_status-dta and
    89
    type = l_s_status-dta_type.
    90
    if sy-subrc = 0 and l_ds_psa-sid_checked > l_s_status-rnr_sid.
    91
    delete from rsmdatastate_psa where
    92
    psa  = l_s_status-dta and
    93
    type = l_s_status-dta_type.
    94
    delete from rsstatmanpsa where
    95
    partnr >= l_s_status-rnr_sid and
    96
    psa     = l_s_status-dta.
    97
    endif.
    98
    endif.
    99
    if i_with_commit = 'X'.
    100
    call function 'DB_COMMIT'.
    101
    endif.
    102
    endif.

    Walter,
    Thanks for the suggestion.  This is the same recommendation I just received from SAP.
    We are currently in the midst of regression testing for a major release, so cannot implement these corrections immediately.  I'll post again after we implement the corrections and let you know if they solve our problem.
    Thanks again.
    Bob

  • How to restore deleted, but not erased, data?

    I just restored my iphone, from an older backup.  itunes says that the information is deleted from the device, but not erased. How do I recover this deleted information?

    I have never seen a message where iTunes states that data is deleted but it has not been erased.
    The only way that you can recover that data - and data is a somewhat vague term because it can refer to so many different things such as documents, contacts, notes, etc. - is to restore from a backup that contains that data or if you have a local copy of that data stored somewhere on your computer you can import it again via File Sharing, email, DropBox, etc.
    So I guess at this point the next question is what data are you trying to recover?

  • Be make lost grid in xaml when it be not received data???

    I want be make lost #f5f5f5 background of gird when it no having data.How? I used to IConverter but it still that.
    Public IdVisiable
    get;set;
    <Grid.RowDefinitions>
    <RowDefinition Height="auto"></RowDefinition>
    <RowDefinition Height="auto"></RowDefinition>
    <RowDefinition Height="auto"></RowDefinition>
    </Grid.RowDefinitions>
    <Grid Grid.Row="0" Visibility="{Binding isVisiable, Converter={StaticResource visisableconvert}}">
    <StackPanel Orientation="Vertical" >

    Hi Grey Herney,
    >>I want be make lost #f5f5f5 background of gird when it no having data
    Could you please try to describe more about your question? It will be better if you can post a simple complete reproduce project in here.
    Best Regards,
    Amy Peng
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • How to clear/delete diagnostic and usage data records?

    The records under diagnostic and usage getting more each day and i have no ideas on how to delete it. Have try to sync with pc via iTunes and off the function under setting/privacy/location service/systems services/diagnostic and usage. Non works, please HELP!

    FYI
    Complete guide to using iOS 6
    http://howto.cnet.com/ios-6-complete-guide/
    Guide to Built-In Apps on iOS
    https://sites.google.com/site/appleclubfhs/support/advice-and-articles/guide-to- built-in-apps-ios
    You can download a complete iOS 5 iPad User Guide and iOS 6 iPad User Guide here: http://support.apple.com/manuals/ipad/
    Also, Good Instructions http://www.tcgeeks.com/how-to-use-ipad-2/
    Apple - iPad - Guided Tours
    http://www.apple.com/ipad/videos/
    Apple iPad Guided Tours - Watch the videos see all the amazing iPad apps in action. Learn how to use FaceTime, Mail, Safari, Videos, Maps, iBooks, App Store, and more.
    http://www.youtube.com/watch?v=YT2bD0-OqBM
    http://www.youtube.com/watch?v=ROY4tLyNlsg&feature=relmfu
    http://www.youtube.com/watch?v=QSPXXhmwYf4&feature=relmfu
    How to - Articles & User Guides & Tutorials
    http://www.iphone-mac.com/index.php/Index/howto/id/4/type/select
    iPad How-Tos  http://ipod.about.com/lr/ipad_how-tos/903396/1/
    You can download this guide to your iPad.
    iPad User Guide for iOS 5
    http://itunes.apple.com/us/book/ipad-user-guide-for-ios-5/id470308101?mt=11
     Cheers, Tom

  • I linked my ipad 2 to my desktop.  I opened an excel document and can use it when I'm linked.  How do I save it to my ipad and use it when I'm not linked

    help

    You will need to get the file into the Numbers app and there are a few different ways to do that. You could email the file and then use the "Open In" feature (tap and hold down on the open file in the email and select "Open In Numbers" from the resulting window) use iOS file sharing or maybe DropBox.
    I use file sharing with Pages which is another iWorks app. Read this for more information.
    http://support.apple.com/kb/HT4094

Maybe you are looking for