Update record to specific value or to null

Hello.
We have two tables. Both have the same attribute. Update sentence look if attribute has the same value in both tables. If the value is the same, another attribute is updated to specific value in one table.
Now i want to update attribute in all records. But if the both tables haven't got the same value, attribute in record should be updated to null.
For now update looks like:
update tableA set att1 = att2
where att3 = value2 and att4 IN (select att4 from tableB where att2 = value2);
Any idea?
I hope i explained the problem properly.
Thanks.

Like..
SQL> select * from test1;
C1         C2
c1          1
SQL> select * from test2;
C1        C22        C33
c2         11        100
c1          1        100
SQL> update test2 t2
  2  set c33 = decode(c22,(select max(c2) from test1 t1 where t1.c1=t2.c11),0,null);
2 rows updated.
SQL> select * from test2;
C1        C22        C33
c2         11
c1          1          0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

Similar Messages

  • Update Record Field if Value Not Equal

    Hello All,
    I am using Toad for Oracle 10. I have a MERGE INTO Process that updates tbl_requisition based on FK - fk_allotment_id that equals parent table tbl_allotment PK - pk_allotment_id. Both tables have create, update and deletes triggers. The process is executed when a Apply Changes/update button is clicked from tbl_allotment. So, all the record data from tbl_allotment updates tbl_requisition record if the fk and pk keys are equal. My problem is if a record is updated within tbl_requisition. Now the record from tbl_requisition is different from tbl_allotment. If any value is updated from tbl_allotment for the matching pk_allotment_id = fk_allotment_id record from tbl_requisition. tbl_allotment record data will override the updated value within tbl_requisition. I would like to only update the values that were updated/changed and are not equal from tbl_allotment to tbl_requisition. Can anyone assist me with this?
    Begin
    MERGE INTO tbl_requisition req
    USING tbl_allotment alt
    ON (req.fk_allotment_id = alt.pk_allotment_id)
    WHEN MATCHED THEN
    UPDATE SET
         req.FK_JOBCODE_ID = alt.FK_JOBCODE_ID,
         req.FK_JOBCODE_DESCR = alt.FK_JOBCODE_DESCR,
         req.FK_JOBCODE_PAYRANGE = alt.FK_JOBCODE_PAYRANGE,
         req.FK_PAY_RANGE_LOW_YEARLY = alt.FK_PAY_RANGE_LOW_YEARLY,
         req.FK_DEPARTMENT_ID = alt.FK_DEPARTMENT_ID,
         req.FK_DIVISION_ID = alt.FK_DIVISION_ID,
         req.FK_NUMBER_OF_POSITIONS = alt.NUMBER_OF_POSITIONS,
         req.FK_DEPARTMENT_NAME = alt.FK_DEPARTMENT_NAME,
         req.FK_DIVISION_NAME = alt.FK_DIVISION_NAME,
         req.REPORT_UNDER = alt.REPORT_UNDER;
    EXCEPTION
      WHEN NO_DATA_FOUND THEN
        dbms_output.put_line('No data found');
    End; Thanks for reading this thread and I hope someone can provide some assistance. If the create tables or anything is needed that is not a problem to provide.

    Thanks for responding Frank and providing the EXCEPTION information also. Here are my create tables and insert statement. I changed the child table from tbl_requisition to tbl_allotment_temp, same process though.
    CREATE TABLE  "TBL_ALLOTMENT"
       (     "PK_ALLOTMENT_ID" NUMBER,
         "FK_DEPARTMENT_ID" VARCHAR2(5),
         "FK_DIVISION_ID" VARCHAR2(100),
         "FK_JOBCODE_ID" NUMBER,
         "FK_JOBCODE_DESCR" VARCHAR2(100),
         "FK_JOBCODE_PAYRANGE" NUMBER(*,0),
         "FK_PAY_RANGE_LOW_YEARLY" NUMBER(*,0),
         "NUMBER_OF_POSITIONS" NUMBER,
          CONSTRAINT "PK_ALLOTMENT_ID" PRIMARY KEY ("PK_ALLOTMENT_ID") ENABLE
    CREATE TABLE  "TBL_ALLOTMENT_TEMP"
       (     "PK_ALLOTMENT_TEMP_ID" NUMBER,
         "FK_DEPARTMENT_ID" VARCHAR2(5),
         "FK_DIVISION_ID" VARCHAR2(100),
         "FK_JOBCODE_ID" NUMBER,
         "FK_JOBCODE_DESCR" VARCHAR2(100),
         "FK_JOBCODE_PAYRANGE" NUMBER(*,0),
         "FK_PAY_RANGE_LOW_YEARLY" NUMBER(*,0),
         "NUMBER_OF_POSITIONS" NUMBER,
          CONSTRAINT "PK_ALLOTMENT_TEMP_ID" PRIMARY KEY ("PK_ALLOTMENT_TEMP_ID") ENABLE
    INSERT INTO tbl_allotment
    (FK_DEPARTMENT_ID, FK_DIVISION_ID, FK_JOBCODE_ID, FK_JOBCODE_DESCR,
    FK_JOBCODE_PAYRANGE, FK_PAY_RANGE_LOW_YEARLY, NUMBER_OF_POSITIONS)
    values
    (00002, 0000220000, 100408, 'Revenue Analyst',
      2210, 38389, 5);Once data is created for tbl_allotment, this insert statement inserts the data to tbl_allotment_temp.
    INSERT INTO tbl_allotment_temp(
         PK_ALLOTMENT_TEMP_ID,
         FK_JOBCODE_ID,
         FK_JOBCODE_DESCR,
         FK_JOBCODE_PAYRANGE,
         FK_PAY_RANGE_LOW_YEARLY,
         FK_DEPARTMENT_ID,
         FK_DIVISION_ID,
         NUMBER_OF_POSITIONS)
        VALUES (
         :P3_PK_ALLOTMENT_ID,
         :P3_FK_JOBCODE_ID,
         :P3_FK_JOBCODE_DESCR,
         :P3_FK_JOBCODE_PAYRANGE,
         :P3_FK_PAY_RANGE_LOW_YEARLY,
         :P3_FK_DEPARTMENT_ID,
         :P3_FK_DIVISION_ID,
         :P3_NUMBER_OF_POSITIONS);Once any update occurs to tbl_allotment, this process updates tbl_allotment_temp based on temp.pk_allotment_temp_id = alt.pk_allotment_id.
    Begin
    MERGE INTO tbl_allotment_temp temp
    USING tbl_allotment alt
    ON (temp.pk_allotment_temp_id = alt.pk_allotment_id)
    WHEN MATCHED THEN
    UPDATE SET
         temp.FK_DEPARTMENT_ID = NVL (alt.FK_DEPARTMENT_ID, temp.FK_DEPARTMENT_ID),
         temp.FK_DIVISION_ID = NVL (alt.FK_DIVISION_ID, temp.FK_DIVISION_ID),
         temp.FK_JOBCODE_ID = NVL (alt.FK_JOBCODE_ID,    temp.FK_JOBCODE_ID),
         temp.FK_JOBCODE_DESCR = NVL (alt.FK_JOBCODE_DESCR, temp.FK_JOBCODE_DESCR),
         temp.FK_JOBCODE_PAYRANGE = NVL (alt.FK_JOBCODE_PAYRANGE, temp.FK_JOBCODE_PAYRANGE),
         temp.FK_PAY_RANGE_LOW_YEARLY = NVL (alt.FK_PAY_RANGE_LOW_YEARLY, temp.FK_PAY_RANGE_LOW_YEARLY),
         temp.NUMBER_OF_POSITIONS = NVL (alt.NUMBER_OF_POSITIONS, temp.NUMBER_OF_POSITIONS);
    End;Once the data is created within tbl_allotment the data is also inserted within tbl_allotment_temp. If tbl_allotment_temp.NUMBER_OF_POSITIONS value is changed from 5 to 10 is fine. The problem is when a update occurs within tbl_allotment and the updated field is not NUMBER_OF_POSITIONS. The changed field values from tbl_allotment should only update the field data within tbl_allotment_temp.
    UPDATE tbl_allotment_temp
    SET
    NUMBER_OF_POSITIONS = 10
    UPDATE tbl_allotment
    SET
    FK_JOBCODE_DESCR = 'Revenue Test'Now within tbl_allotment_temp only field FK_JOBCODE_DESCR should be updated to Revenue Test but my MERGE INTO process will update all the field values. So the updated NUMBER_OF_POSITIONS value 10 will now be 5. I would only like to update any changed value from tbl_allotment to tbl_allotment_temp. If any record value from tbl_allotment_temp was changed that value should not be updated from the MERGE INTO Process within tbl_allotment unless those values have been updated within tbl_allotment. Let me know if this is not clear so I can clarity more Frank.
    Edited by: Charles A on Aug 29, 2011 8:41 AM

  • Mapping problem with compressed key update record

    Hi, could you please advise?
    I'm getting the following problem:
    About a week ago replicat abened with "Error in mapping" error. I found in discard file some record looking like:
    filed1 = NULL
    field2 =
    field3 =
    field4 =
    field5 =
    datefield = -04-09 00:00:00
    field6 =
    field8 =
    field9 = NULL
    field10 =
    Where filed9 = @GETENV("GGHEADER", "COMMITTIMESTAM"), field10 = = @GETENV("GGHEADER", "COMMITTIMESTAM"), others are table fields mapped by USEDEFAULTS
    So I got Mapping problem with compressed key update record at 2012-06-01 15:44
    I guess I need to mention that extract failed in 5 minuts before it with: VAM function VAMRead returned unexpected result: error 600 - VAM Client Report <[CFileInfo::Read] Timeout expired after 10 retries with 1000 ms delay, waiting to read transaction log or backup files. To increase the number of retries, use SETENV (GGS_CacheRetryCount = n) in Extract parameter file. To control retry delay time, use SETENV (GGS_CacheRetryDelay = n). handle: 0000000000000398 ReadFile GetLastError:997 Wait GetLastError:997>.
    I don't know if it has ther same source as data corruption, could you tell me if it is?
    Well, I created new extract, starting 2012-06-01 15:30 to check if there was something with extract at the time, but got the same error.
    If I run extract beging at 15:52 it starts and works.
    But well, I got another one today. Data didn't look that bad, but yet one column came with null value:( And I'm using it as a key column, so I got Mapping problem with compressed key update record again:(
    I'm replicating from SQL Server 2008 to Oracle 11g.
    I'm actually using NOCOMPRESSUPDATES in Extract.
    CDC is enabled for all tables replicated. The only thing is that it is enabled not by ADD TRANDATA command, but by SQL Server sys.sp_cdc_enable_table, does it matter?
    Could you please advise why does it happen?

    Well, the problem begins somewhere in extract or before extract, may be in transaction log, I don't know:(
    Here are extract parameters:
    EXTRACT ETCHECK
    TRANLOGOPTIONS MANAGESECONDARYTRUNCATIONPOINT
    SOURCEDB TEST, USERID **, PASSWORD *****
    exttrail ./dirdat/ec
    NOCOMPRESSUPDATES
    NOCOMPRESSDELETES
    TABLE tst.table1, COLS (field1, field2, field3, field4, field5, field6, field7, field8 );
    TABLE tst.table2, COLS (field1, field2, field3, field4 );
    Data pump:
    EXTRACT DTCHECK
    SOURCEDB TEST, USERID **, PASSWORD *****
    RMTHOST ***, MGRPORT 7809
    RMTTRAIL ./dirdat/dc
    TABLE tst.table1;
    TABLE tst.table2;
    Replicat:
    REPLICAT rtcheck
    USERID tst, PASSWORD ***
    DISCARDFILE ./dirrpt/rtcheck.txt, PURGE
    SOURCEDEFS ./dirdef/sourcei.def
    HANDLECOLLISIONS
    UPDATEDELETES
    MAP tst.table1, t.table1, COLMAP (USEDEFAULTS , filed9 = @GETENV("GGHEADER", "COMMITTIMESTAMP"), filed10= @CASE(@GETENV("GGHEADER", "OPTYPE"), "SQL COMPUPDATE", "U", "PK UPDATE", "U",@GETENV("GGHEADER", "OPTYPE")) ), KEYCOLS (field3);
    MAP dbo.TPROCPERIODCONFIRMSTAV, TARGET R_019_000001.TPROCPERIODCONFIRMSTAV, COLMAP (USEDEFAULTS , field5 = @GETENV("GGHEADER", "COMMITTIMESTAMP"), filed6= @CASE(@GETENV("GGHEADER", "OPTYPE"), "SQL COMPUPDATE", "U", "PK UPDATE", "U",@GETENV("GGHEADER", "OPTYPE")) ), KEYCOLS (filed1, field2, field3);
    Rpt file for replicat:
    Oracle GoldenGate Delivery for Oracle
    Version 11.1.1.1 OGGCORE_11.1.1_PLATFORMS_110421.2040
    Windows x64 (optimized), Oracle 11g on Apr 22 2011 00:34:07
    Copyright (C) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
    Starting at 2012-06-05 12:49:38
    Operating System Version:
    Microsoft Windows Server 2008 R2 , on x64
    Version 6.1 (Build 7601: Service Pack 1)
    Process id: 2264
    Description:
    ** Running with the following parameters **
    REPLICAT rtcheck
    USERID tst, PASSWORD ***
    DISCARDFILE ./dirrpt/rtcheck.txt, PURGE
    SOURCEDEFS ./dirdef/sourcei.def
    HANDLECOLLISIONS
    UPDATEDELETES
    MAP tst.table1, t.table1, COLMAP (USEDEFAULTS , filed9 = @GETENV("GGHEADER", "COMMITTIMESTAMP"), filed10= @CASE(@GETENV("GGHEADER", "OPTYPE"), "SQL COMPUPDATE", "U", "PK UPDATE", "U",@GETENV("GGHEADER", "OPTYPE")) ), KEYCOLS (field3);
    MAP dbo.TPROCPERIODCONFIRMSTAV, TARGET R_019_000001.TPROCPERIODCONFIRMSTAV, COLMAP (USEDEFAULTS , field5 = @GETENV("GGHEADER", "COMMITTIMESTAMP"), filed6= @CASE(@GETENV("GGHEADER", "OPTYPE"), "SQL COMPUPDATE", "U", "PK UPDATE", "U",@GETENV("GGHEADER", "OPTYPE")) ), KEYCOLS (filed1, field2, field3);
    CACHEMGR virtual memory values (may have been adjusted)
    CACHEBUFFERSIZE: 64K
    CACHESIZE: 512M
    CACHEBUFFERSIZE (soft max): 4M
    CACHEPAGEOUTSIZE (normal): 4M
    PROCESS VM AVAIL FROM OS (min): 1G
    CACHESIZEMAX (strict force to disk): 881M
    Database Version:
    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
    PL/SQL Release 11.2.0.1.0 - Production
    CORE     11.2.0.1.0     Production
    TNS for 64-bit Windows: Version 11.2.0.1.0 - Production
    NLSRTL Version 11.2.0.1.0 - Production
    Database Language and Character Set:
    NLS_LANG = "AMERICAN_AMERICA.CL8MSWIN1251"
    NLS_LANGUAGE = "AMERICAN"
    NLS_TERRITORY = "AMERICA"
    NLS_CHARACTERSET = "CL8MSWIN1251"
    For further information on character set settings, please refer to user manual.
    ** Run Time Messages **
    Opened trail file ./dirdat/dc000000 at 2012-06-05 12:49:39
    2012-06-05 12:58:14 INFO OGG-01020 Processed extract process RESTART_ABEND record at seq 0, rba 925 (aborted 0 records).
    MAP resolved (entry tst.table1):
    MAP tst.table1, t.table1, COLMAP (USEDEFAULTS , filed9 = @GETENV("GGHEADER", "COMMITTIMESTAMP"), filed10= @CASE(@GETENV("GGHEADER", "OPTYPE"), "SQL COMPUPDATE", "U", "PK UPDATE", "U",@GETENV("GGHEADER", "OPTYPE")) ), KEYCOLS (field3);
    2012-06-05 12:58:14 WARNING OGG-00869 No unique key is defined for table table1. All viable columns will be used to represent the key, but may not guarantee uniqueness. KEYCOLS may be used to define the key.
    Using the following default columns with matching names:
    field1=field1, field2=field2, field3=field3, field4=field4, field5=field5, field6=field6, field7=field7, field8=field8
    Using the following key columns for target table R_019_000001.TCALCULATE: field3.
    2012-06-05 12:58:14 WARNING OGG-01431 Aborted grouped transaction on 'tst.table1', Mapping error.
    2012-06-05 12:58:14 WARNING OGG-01003 Repositioning to rba 987 in seqno 0.
    2012-06-05 12:58:14 WARNING OGG-01151 Error mapping from tst.table1 to tst.table1.
    2012-06-05 12:58:14 WARNING OGG-01003 Repositioning to rba 987 in seqno 0.
    Source Context :
    SourceModule : [er.main]
    SourceID : [er/rep.c]
    SourceFunction : [take_rep_err_action]
    SourceLine : [16064]
    ThreadBacktrace : [8] elements
    : [C:\App\OGG\replicat.exe(ERCALLBACK+0x143034) [0x00000001402192B4]]
    : [C:\App\OGG\replicat.exe(ERCALLBACK+0x11dd44) [0x00000001401F3FC4]]
    : [C:\App\OGG\replicat.exe(<RCALLBACK+0x11dd44) [0x000000014009F102]]
    : [C:\App\OGG\replicat.exe(<RCALLBACK+0x11dd44) [0x00000001400B29CC]]
    : [C:\App\OGG\replicat.exe(<RCALLBACK+0x11dd44) [0x00000001400B8887]]
    : [C:\App\OGG\replicat.exe(releaseCProcessManagerInstance+0x25250) [0x000000014028F200]]
    : [C:\Windows\system32\kernel32.dll(BaseThreadInitThunk+0xd) [0x000000007720652D]]
    : [C:\Windows\SYSTEM32\ntdll.dll(RtlUserThreadStart+0x21) [0x000000007733C521]]
    2012-06-05 12:58:14 ERROR OGG-01296 Error mapping from tst.table1 to tst.table1.
    * ** Run Time Statistics ** *
    Last record for the last committed transaction is the following:
    Trail name : ./dirdat/dc000000
    Hdr-Ind : E (x45) Partition : . (x04)
    UndoFlag : . (x00) BeforeAfter: A (x41)
    RecLength : 249 (x00f9) IO Time : 2012-06-01 15:48:56.285333
    IOType : 115 (x73) OrigNode : 255 (xff)
    TransInd : . (x03) FormatType : R (x52)
    SyskeyLen : 0 (x00) Incomplete : . (x00)
    AuditRBA : 44 AuditPos : 71176199289771
    Continued : N (x00) RecCount : 1 (x01)
    2012-06-01 15:48:56.285333 GGSKeyFieldComp Len 249 RBA 987
    Name: DBO.TCALCULATE
    Reading ./dirdat/dc000000, current RBA 987, 0 records
    Report at 2012-06-05 12:58:14 (activity since 2012-06-05 12:58:14)
    From Table tst.table1 to tst.table1:
    # inserts: 0
    # updates: 0
    # deletes: 0
    # discards: 1
    Last log location read:
    FILE: ./dirdat/dc000000
    SEQNO: 0
    RBA: 987
    TIMESTAMP: 2012-06-01 15:48:56.285333
    EOF: NO
    READERR: 0
    2012-06-05 12:58:14 ERROR OGG-01668 PROCESS ABENDING.
    Discard file:
    Oracle GoldenGate Delivery for Oracle process started, group RTCHECK discard file opened: 2012-06-05 12:49:39
    Key column filed3 (0) is missing from update on table tst.table1
    Missing 1 key columns in update for table tst.table1.
    Current time: 2012-06-05 12:58:14
    Discarded record from action ABEND on error 0
    Aborting transaction on ./dirdat/dc beginning at seqno 0 rba 987
    error at seqno 0 rba 987
    Problem replicating tst.table1 to tst.table1
    Mapping problem with compressed key update record (target format)...
    filed1 = NULL
    field2 =
    field3 =
    field4 =
    field5 =
    datefield = -04-09 00:00:00
    field6 =
    field8 =
    field9 = NULL
    field10 =
    Process Abending : 2012-06-05 12:58:14

  • Updates on a specific COLUMN is not generating a BEFORE or AFTER value ...

    I have a table SCHEMA_OWNER.RX_TX table that has 182 columns. Here is the extract param file. Also on this table i have enabled ALL COLUMNS to be supplimental logged via "alter table SCHEMA_OWNER.RX_TX add supplemental log data (all) columns". The table has a PK on the "ID" column. Please note that the POS_REFUND_DATE column in the table SCHEMA_OWNER.RX_TX is 178th column.
    When i execute the following UPDATE followed by a COMMIT, when the current value of POS_REFUND_DATE=NULL, i do not see TRAIL records getting created in the trail file.
    SQL>Update Eps2_Kp_900001058.Rx_Tx Set Pos_Refund_Date=Pos_Refund_Date Where Tx_Number=1014524 And Nhin_Store_Id=900001058 And Id=4575035;
    SQL>COMMIT;
    NOTE: If POS_REFUND_DATE is NOT NULL, before the above UPDATE is executed, then TRAIL RECORDS (i.e. before and after trail records) are successfully created.
    Here is param file for the EXTRACT=EXTPROD
    EXTRACT EXTPROD
    SETENV (ORACLE_SID = "opepsd2")
    SETENV (ORACLE_HOME = "/u01/app/oradev/product/11.2.0.3/db_1")
    SETENV (NLS_LANG="AMERICAN_AMERICA.WE8MSWIN1252")
    USERID ogguser, PASSWORD AACAAAAAAAAAAAKAJISJVHPCJAEJKJIHWHVCXHQIWIZEUCJF, ENCRYPTKEY DEFAULT
    EXTTRAIL /u02/ggoppr/trail/SP
    TRANLOGOPTIONS DBLOGREADER
    CACHEMGR CACHEBUFFERSIZE 64KB, CACHESIZE 2GB, CACHEDIRECTORY ./dirtmp
    GETUPDATEBEFORES
    NOCOMPRESSDELETES
    NOCOMPRESSUPDATES
    STATOPTIONS RESETREPORTSTATS
    REPORT AT 00:01
    REPORTROLLOVER AT 00:01
    REPORTCOUNT EVERY 60 SECONDS, RATE
    WARNLONGTRANS 2 HOURS
    TABLE EPS2_KP_900001058.RX_TX , COLS (ID,NHIN_STORE_ID,POS_SOLD_DATE,LAST_DML_BY_CONVERSION_DATE,RETURNED_DATE,POS_REFUND_DATE,UNSELL_DATE,ADMIN_REBILLED_DATE,PARTIAL_FILL_STATUS) , TOKENS ( NHIN_STORE_ID = "900001058" );
    Here are some usefull output from GGSCI:
    GGSCI (szabdb32) 4> dblogin userid ogguser , password ogguser123
    Successfully logged into database.
    GGSCI (szabdb32) 5> info all
    Program Status Group Lag Time Since Chkpt
    MANAGER RUNNING
    EXTRACT RUNNING EXTDEV2 00:00:00 00:00:07
    Description EPS Extract
    EXTRACT RUNNING EXTPROD 00:00:00 00:00:04
    EXTRACT RUNNING EXTSALE 00:00:00 00:00:04
    EXTRACT RUNNING EXTTEST 00:00:00 00:00:04
    EXTRACT RUNNING PMPDEV2 00:00:00 00:00:02
    EXTRACT RUNNING PMPPROD 00:00:00 00:00:01
    EXTRACT RUNNING PMPSALE 00:00:00 00:00:05
    EXTRACT RUNNING PMPTEST 00:00:00 00:00:05
    EXTRACT RUNNING RPMPDEV2 00:00:00 00:00:06
    Here is the DDL structure of the table object "EPS2_KP_900001058.RX_TX" (vERY LONg)
    CREATE TABLE "EPS2_KP_900001058"."RX_TX"
    ( "ID" NUMBER(38,0) NOT NULL ENABLE,
    "NHIN_STORE_ID" NUMBER(10,0) NOT NULL ENABLE,
    "DELETED" VARCHAR2(1 BYTE),
    "BRAND_ACQUISITION_COST" NUMBER(13,2),
    "AUTO_COUNTING_SYSTEM_PRIORITY" VARCHAR2(1 BYTE),
    "CHARGE" VARCHAR2(1 BYTE),
    "COMPOUND_FEE" NUMBER(13,2),
    "BASE_COST" NUMBER(13,2),
    "COUNSELING_CHOICE" VARCHAR2(1 BYTE),
    "NCPDP_DAW" VARCHAR2(1 BYTE),
    "FILL_QUANTITY" NUMBER(13,4),
    "BRAND_DISCOUNT" NUMBER(13,2),
    "DRUG_EXPIRATION_DATE" DATE,
    "FILL_DATE" DATE,
    "PICKED_UP" VARCHAR2(1 BYTE),
    "HOST_RETRIEVAL_DATE" DATE,
    "MANUFACTURER" VARCHAR2(10 BYTE),
    "SAFETY_CAP_FLAG" VARCHAR2(1 BYTE),
    "PAC_MED" VARCHAR2(1 BYTE),
    "REFILL_NUMBER" NUMBER(5,0),
    "REPORTABLE_SALES_DATE" DATE,
    "FILL_STATUS" VARCHAR2(1 BYTE),
    "TAX_AMOUNT" NUMBER(13,2),
    "TP_BILL" VARCHAR2(1 BYTE),
    "UC_PRICE" NUMBER(13,2),
    "UP_CHARGE" NUMBER(13,2),
    "USUAL" VARCHAR2(1 BYTE),
    "DAYS_SUPPLY" NUMBER(10,0),
    "DRUG_SCHEDULE" VARCHAR2(1 BYTE),
    "DAYS_SUPPLY_BASIS" VARCHAR2(1 BYTE),
    "FOLLOW_UP_DATE" DATE,
    "GROUP_ON_RX" VARCHAR2(3 BYTE),
    "ICD9" VARCHAR2(7 BYTE),
    "ICD9_TYPE" VARCHAR2(1 BYTE),
    "NUM_LABELS" NUMBER(3,0),
    "OWED" NUMBER(13,4),
    "PRESCRIBED_QUANTITY" NUMBER(13,4),
    "STOP_DATE" DATE,
    "WRITTEN_DATE" DATE,
    "DISPENSED_DRUG_NDC" VARCHAR2(11 BYTE),
    "LANG" VARCHAR2(2 BYTE) NOT NULL ENABLE,
    "SIG_PER_DAY" NUMBER(13,4),
    "SIG_PER_DOSE" NUMBER(13,4),
    "SIG_TEXT" VARCHAR2(515 BYTE),
    "REFILL_SOURCE" NUMBER(5,0),
    "TX_DELETED" VARCHAR2(1 BYTE),
    "TX_NUMBER" NUMBER(12,0),
    "CENTRAL_FILL_CUTOFF_DATE" DATE,
    "BRAND_PRICE" NUMBER(13,2),
    "GENERIC_PRICE" NUMBER(13,2),
    "DRUG_DISPENSED" VARCHAR2(1 BYTE),
    "POS_STATUS" VARCHAR2(1 BYTE),
    "POS_INVOICE_NUMBER" NUMBER(35,0),
    "CASHIER_NAME" VARCHAR2(28 BYTE),
    "REGISTER_NUM" VARCHAR2(20 BYTE),
    "POS_OVERRIDDEN_NET_PAID" NUMBER(13,2),
    "POS_REASON_FOR_VOID" VARCHAR2(120 BYTE),
    "RX_STOLEN" VARCHAR2(1 BYTE),
    "POS_BARCODE_NUM" NUMBER(20,0),
    "RETURNED_DATE" DATE,
    "RX_CREDIT_INITIATOR" VARCHAR2(1 BYTE),
    "ORIGINAL_QTY" NUMBER(13,4),
    "ORIGINAL_PRICE" NUMBER(13,2),
    "OLD_RX_TX_ID" NUMBER(38,0),
    "NEW_RX_TX_ID" NUMBER(38,0),
    "PATIENT_DISEASE_ID" NUMBER(38,0),
    "PRICE_CODE_ID" NUMBER(38,0),
    "TAX_ID" NUMBER(38,0),
    "COMPOUND_ID" NUMBER(38,0),
    "DRUG_BRAND_ID" NUMBER(38,0),
    "DRUG_GENERIC_ID" NUMBER(38,0),
    "REFERENCE_BRAND_ID" NUMBER(38,0),
    "KEEP_SAME_DRUG" VARCHAR2(1 BYTE),
    "DIFFERENT_GENERIC" VARCHAR2(1 BYTE),
    "RX_SUMMARY_ID" NUMBER(38,0),
    "PRESCRIBER_CLINIC_LINK_ID" NUMBER(38,0),
    "SUPV_PRESCRIBER_CLINIC_LINK_ID" NUMBER(38,0),
    "DRUG_COST_TYPE_ID" NUMBER(38,0),
    "BASECOST_ID" NUMBER(38,0),
    "REQUESTED_PRICE_TO_QTY" NUMBER(13,2),
    "OVERRIDDEN_PRICE_AMOUNT" NUMBER(13,2),
    "PRICE_OVERRIDE_REASON" VARCHAR2(1 BYTE),
    "PRICE_OVERRIDE_NOTE_ID" NUMBER(38,0),
    "GENERIC_ACQUISITION_COST" NUMBER(13,2),
    "GENERIC_DISCOUNT" NUMBER(13,2),
    "PROFESSIONAL_FEE" NUMBER(13,2),
    "NO_SALES_TAX" VARCHAR2(1 BYTE),
    "COMPETITIVE_PRICED" VARCHAR2(1 BYTE),
    "USING_PERCENT_OF_BRAND" VARCHAR2(1 BYTE),
    "USING_COMPOUND_PLAN_PRICING" VARCHAR2(1 BYTE),
    "ALLOW_PRICE_OVERRIDE" VARCHAR2(1 BYTE),
    "POS_SOLD_DATE" DATE,
    "FILL_LOCATION" VARCHAR2(1 BYTE),
    "NOTES" VARCHAR2(2000 BYTE),
    "DRUG_IMAGE_KEY" VARCHAR2(255 BYTE),
    "BRAND_MANUALLY_SELECTED" VARCHAR2(1 BYTE),
    "GENERIC_MANUALLY_SELECTED" VARCHAR2(1 BYTE),
    "TX_STATUS" VARCHAR2(1 BYTE),
    "RETURNED_USER_ID" NUMBER(38,0),
    "DE_INITIALS" VARCHAR2(3 BYTE),
    "DV_INITIALS" VARCHAR2(3 BYTE),
    "PV_INITIALS" VARCHAR2(3 BYTE),
    "OVERRIDE_USER_ID" NUMBER(38,0),
    "PARTIAL_FILL_STATUS" VARCHAR2(1 BYTE),
    "PARTIAL_FILL_BILLING_TYPE" VARCHAR2(1 BYTE),
    "INTENDED_QUANTITY" NUMBER(13,4),
    "PATIENT_REQUESTED_PRICE" VARCHAR2(1 BYTE),
    "MISSING_DATE" DATE,
    "REPLACE_DATE" DATE,
    "RETURN_TO_STOCK_DATE" DATE,
    "RX_COM_DOWN" VARCHAR2(1 BYTE),
    "RPH_NAME_OF_RECORD" VARCHAR2(60 BYTE),
    "CUSTOM_SIG" VARCHAR2(1 BYTE),
    "DISCOUNT_ID" NUMBER(38,0),
    "PATIENT_REQUEST_BRAND_GENERIC" VARCHAR2(1 BYTE),
    "WILL_CALL_PICKED_UP_DATE" DATE,
    "COMPLETION_RX_TX_ID" NUMBER(38,0),
    "PARTIAL_RX_TX_ID" NUMBER(38,0),
    "SENT_TO_EHR" VARCHAR2(1 BYTE) DEFAULT 'N',
    "DRUG_IMAGE_START_DATE" DATE,
    "ADMIN_REBILLED" VARCHAR2(1 BYTE),
    "SIG_CODE" VARCHAR2(20 BYTE),
    "SIG_TEXT_FOREIGN_LANGUAGE" VARCHAR2(515 BYTE),
    "RTRN_PRESCRIBER_CLINIC_LINK_ID" NUMBER(38,0),
    "OUTSOURCE_COMPOUND" VARCHAR2(1 BYTE),
    "IMPRINT_TEXT" VARCHAR2(512 BYTE),
    "IMPRINT_SOURCE" VARCHAR2(36 BYTE),
    "DIB_PEM_IDENTIFIER" VARCHAR2(20 BYTE),
    "DIB_DATABASE_VERSION" VARCHAR2(5 BYTE),
    "DIB_ISSUE_DATE" DATE,
    "COST_VERIFIED" VARCHAR2(1 BYTE),
    "SEND_TO_PRESCRIBER_WILDCARD" VARCHAR2(1 BYTE),
    "COUNSELING_RPH_INITIALS" VARCHAR2(3 BYTE),
    "STATE_REPORT_STATUS" VARCHAR2(1 BYTE),
    "REQUIRE_RELATION_TO_PATIENT" VARCHAR2(1 BYTE),
    "PHOTO_ID_STATE" VARCHAR2(3 BYTE),
    "PHOTO_ID_TYPE" VARCHAR2(2 BYTE),
    "PHOTO_ID_NUMBER" VARCHAR2(20 BYTE),
    "RELATIONSHIP_TO_PATIENT" VARCHAR2(2 BYTE),
    "PICKUP_FIRST_NAME" VARCHAR2(50 BYTE),
    "PICKUP_LAST_NAME" VARCHAR2(50 BYTE),
    "REQUIRE_PICKUP_ID_TYPE" VARCHAR2(1 BYTE),
    "REQUIRE_PICKUP_ID_STATE" VARCHAR2(1 BYTE),
    "REQUIRE_PICKUP_ID_NAME" VARCHAR2(1 BYTE),
    "REQUIRE_PICKUP_ID_NUMBER" VARCHAR2(1 BYTE),
    "REQUIRE_PICKUP_ID_EXPIRATION" VARCHAR2(1 BYTE),
    "PHOTO_ID_EXPIRE_DATE" DATE,
    "PATIENT_DELIVERY_NOTES_ID" NUMBER(38,0),
    "CANCEL_REASON" VARCHAR2(2 BYTE),
    "COUNSELING_RPH_EMPLOYEE_NUM" VARCHAR2(255 BYTE),
    "RPH_COUNSEL_NOTES_ID" NUMBER(38,0),
    "MEMBERSHIP_INDICATOR" VARCHAR2(1 BYTE),
    "COUNSEL_REASON" VARCHAR2(2 BYTE),
    "POS_VOID_REASON_CODE" VARCHAR2(10 BYTE),
    "AUTHORIZING_MANAGER_NAME" VARCHAR2(255 BYTE),
    "FREQUENCY_RATE" NUMBER(13,4),
    "INCREMENTAL_CONV_SENT_TO_EHR" VARCHAR2(1 BYTE),
    "ENTERPRISE_RX_FILL_COUNT" NUMBER(5,0),
    "INTENDED_DAYS_SUPPLY" NUMBER(10,0),
    "DDID_USED_BY_DRUG_SELECTION" NUMBER(10,0),
    "GPI_USED_BY_DRUG_SELECTION" VARCHAR2(24 BYTE),
    "NEW_DDID_AUTHORIZED_BY_EMP_NUM" VARCHAR2(255 BYTE),
    "TIME_FRAME" NUMBER(2,0),
    "TIME_FRAME_TYPE" NUMBER(2,0),
    "LAST_DML_BY_CONVERSION_DATE" TIMESTAMP (6),
    "END_OF_THERAPY_DATE" TIMESTAMP (6),
    "UNSELL_DATE" TIMESTAMP (6),
    "UNSELL_QUALIFIER" VARCHAR2(2 BYTE),
    "ADMIN_REBILLED_DATE" TIMESTAMP (6),
    "LAST_UPDATE_DATE" TIMESTAMP (6),
    "TP_LAST_UPDATE_DATE" TIMESTAMP (6),
    "ADMIN_REBILL_QUALIFIER" VARCHAR2(3 BYTE),
    "PRIOR_RETURN_REASON_CODE" VARCHAR2(2 BYTE),
    "POS_PRICE_ADJUSTMENT_CODE" VARCHAR2(2 BYTE),
    "TX_SOLD_QUALIFIER" VARCHAR2(3 BYTE),
    "MEDICARE_NOTICE" VARCHAR2(1 BYTE),
    "POS_REFUND_REASON_CODE" VARCHAR2(10 BYTE),
    "POS_REASON_FOR_REFUND" VARCHAR2(120 BYTE),
    "POS_REFUND_DATE" TIMESTAMP (6),
    "MEDGUIDE_TO_PRINT" VARCHAR2(1 BYTE),
    "PATIENT_EDUCATION_TO_PRINT" VARCHAR2(1 BYTE),
    "EXCLUDED_OTC" VARCHAR2(1 BYTE),
    CONSTRAINT "RX_TX_PK" PRIMARY KEY ("ID")
    USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
    TABLESPACE "EPS2_KP_900001058_INDEX" ENABLE,
    SUPPLEMENTAL LOG DATA (ALL) COLUMNS,
    SUPPLEMENTAL LOG GROUP "GGS_RX_TX_78190" ("ID") ALWAYS,
    CONSTRAINT "NOTES_FK1" FOREIGN KEY ("RPH_COUNSEL_NOTES_ID")
    REFERENCES "EPS2_KP_900001058"."NOTES" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK1" FOREIGN KEY ("PRICE_OVERRIDE_NOTE_ID")
    REFERENCES "EPS2_KP_900001058"."NOTES" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK10" FOREIGN KEY ("DISCOUNT_ID")
    REFERENCES "EPS2_KP_900001058"."DISCOUNT" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK11" FOREIGN KEY ("SUPV_PRESCRIBER_CLINIC_LINK_ID")
    REFERENCES "EPS2_KP_900001058"."PRESCRIBER_CLINIC_LINK" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK12" FOREIGN KEY ("PATIENT_DISEASE_ID")
    REFERENCES "EPS2_KP_900001058"."PATIENT_DISEASE" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK13" FOREIGN KEY ("PRESCRIBER_CLINIC_LINK_ID")
    REFERENCES "EPS2_KP_900001058"."PRESCRIBER_CLINIC_LINK" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK14" FOREIGN KEY ("RX_SUMMARY_ID")
    REFERENCES "EPS2_KP_900001058"."RX_SUMMARY" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK15" FOREIGN KEY ("DRUG_GENERIC_ID")
    REFERENCES "EPS2_KP_900001058"."DRUG" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK16" FOREIGN KEY ("DRUG_BRAND_ID")
    REFERENCES "EPS2_KP_900001058"."DRUG" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK17" FOREIGN KEY ("COMPOUND_ID")
    REFERENCES "EPS2_KP_900001058"."COMPOUND" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK18" FOREIGN KEY ("RETURNED_USER_ID")
    REFERENCES "EPS2_KP_900001058"."USERS" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK2" FOREIGN KEY ("TAX_ID")
    REFERENCES "EPS2_KP_900001058"."TAX" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK20" FOREIGN KEY ("DRUG_COST_TYPE_ID")
    REFERENCES "EPS2_KP_900001058"."DRUG_COST_TYPE" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK21" FOREIGN KEY ("BASECOST_ID")
    REFERENCES "EPS2_KP_900001058"."BASECOST" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK22" FOREIGN KEY ("COMPLETION_RX_TX_ID")
    REFERENCES "EPS2_KP_900001058"."RX_TX" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK23" FOREIGN KEY ("PARTIAL_RX_TX_ID")
    REFERENCES "EPS2_KP_900001058"."RX_TX" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK24" FOREIGN KEY ("RTRN_PRESCRIBER_CLINIC_LINK_ID")
    REFERENCES "EPS2_KP_900001058"."PRESCRIBER_CLINIC_LINK" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK25" FOREIGN KEY ("PATIENT_DELIVERY_NOTES_ID")
    REFERENCES "EPS2_KP_900001058"."NOTES" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK4" FOREIGN KEY ("PRICE_CODE_ID")
    REFERENCES "EPS2_KP_900001058"."PRICE_CODE" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK5" FOREIGN KEY ("REFERENCE_BRAND_ID")
    REFERENCES "EPS2_KP_900001058"."DRUG" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK6" FOREIGN KEY ("OLD_RX_TX_ID")
    REFERENCES "EPS2_KP_900001058"."RX_TX" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK7" FOREIGN KEY ("NEW_RX_TX_ID")
    REFERENCES "EPS2_KP_900001058"."RX_TX" ("ID") ENABLE NOVALIDATE,
    CONSTRAINT "RX_TX_FK9" FOREIGN KEY ("OVERRIDE_USER_ID")
    REFERENCES "EPS2_KP_900001058"."USERS" ("ID") ENABLE NOVALIDATE
    ) SEGMENT CREATION IMMEDIATE
    PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
    NOCOMPRESS LOGGING
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
    TABLESPACE "EPS2_KP_900001058_DATA" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX1" ON "EPS2_KP_900001058"."RX_TX" ("DISCOUNT_ID")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
    TABLESPACE "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX10" ON "EPS2_KP_900001058"."RX_TX" ("PRICE_OVERRIDE_NOTE_ID")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
    TABLESPACE "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX11" ON "EPS2_KP_900001058"."RX_TX" ("BASECOST_ID")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
    TABLESPACE "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX12" ON "EPS2_KP_900001058"."RX_TX" ("REFERENCE_BRAND_ID")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
    TABLESPACE "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX13" ON "EPS2_KP_900001058"."RX_TX" ("RX_SUMMARY_ID")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
    TABLESPACE "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX15" ON "EPS2_KP_900001058"."RX_TX" ("SUPV_PRESCRIBER_CLINIC_LINK_ID")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
    TABLESPACE "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX16" ON "EPS2_KP_900001058"."RX_TX" ("TAX_ID")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
    TABLESPACE "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX17" ON "EPS2_KP_900001058"."RX_TX" ("TX_NUMBER")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
    TABLESPACE "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX18" ON "EPS2_KP_900001058"."RX_TX" ("DISPENSED_DRUG_NDC")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
    TABLESPACE "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX19" ON "EPS2_KP_900001058"."RX_TX" ("DRUG_COST_TYPE_ID")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
    TABLESPACE "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX2" ON "EPS2_KP_900001058"."RX_TX" ("COMPOUND_ID")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
    TABLESPACE "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX20" ON "EPS2_KP_900001058"."RX_TX" ("OVERRIDE_USER_ID")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
    TABLESPACE "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX21" ON "EPS2_KP_900001058"."RX_TX" ("RETURNED_USER_ID")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
    TABLESPACE "EPS2_KP_900001058_INDEX" ;
    CREATE UNIQUE INDEX "EPS2_KP_900001058"."RX_TX_IX22" ON "EPS2_KP_900001058"."RX_TX" (CASE "NHIN_STORE_ID" WHEN 900001058 THEN "TX_NUMBER" ELSE NULL END )
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
    TABLESPACE "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX23" ON "EPS2_KP_900001058"."RX_TX" ("COMPLETION_RX_TX_ID")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
    TABLESPACE "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX24" ON "EPS2_KP_900001058"."RX_TX" ("PARTIAL_RX_TX_ID")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
    TABLESPACE "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX28" ON "EPS2_KP_900001058"."RX_TX" (TRUNC("REPORTABLE_SALES_DATE"))
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
    TABLESPACE "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX29" ON "EPS2_KP_900001058"."RX_TX" ("PATIENT_DELIVERY_NOTES_ID")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
    TABLESPACE "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX3" ON "EPS2_KP_900001058"."RX_TX" ("DRUG_BRAND_ID")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
    TABLESPACE "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX30" ON "EPS2_KP_900001058"."RX_TX" ("FILL_LOCATION")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
    TABLESPACE "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX31" ON "EPS2_KP_900001058"."RX_TX" ("FILL_DATE")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
    TABLESPACE "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX4" ON "EPS2_KP_900001058"."RX_TX" ("DRUG_GENERIC_ID")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
    TABLESPACE "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX5" ON "EPS2_KP_900001058"."RX_TX" ("NEW_RX_TX_ID")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
    TABLESPACE "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX6" ON "EPS2_KP_900001058"."RX_TX" ("OLD_RX_TX_ID")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
    TABLESPACE "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX7" ON "EPS2_KP_900001058"."RX_TX" ("PATIENT_DISEASE_ID")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
    TABLESPACE "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX8" ON "EPS2_KP_900001058"."RX_TX" ("PRESCRIBER_CLINIC_LINK_ID")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
    TABLESPACE "EPS2_KP_900001058_INDEX" ;
    CREATE INDEX "EPS2_KP_900001058"."RX_TX_IX9" ON "EPS2_KP_900001058"."RX_TX" ("PRICE_CODE_ID")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
    BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
    TABLESPACE "EPS2_KP_900001058_INDEX" ;
    Hope to get a solution to the above issue. Why no TRAIL records are being created for this 178th column in question. If i do for example the following SQL for a different column say "RETURNED_DATE", when the value of the RETURNED_DATE=NULL before the UPDATE is fired, the TRAIL records are being generated.
    SQL>Update Eps2_Kp_900001058.Rx_Tx Set RETURNED_DATE=RETURNED_DATE Where Tx_Number=1014524 And Nhin_Store_Id=900001058 And Id=4575035;
    SQL>COMMIT;

    This looks like a trailing null issue. Sometimes Oracle decides not to write columns to the redo logs if they are null and they are the last column in the record. What version of Oracle is this? I can ask QA to look into this and see what can be done.
    Thanks for the reply, but
    1) The UPDATE done to a column i.e.POS_REFUND_DATE is NOT THE LAST column of the table=eps2_kp_900001058. Please see the DDL that is in this mail chain. So your observation is not right.
    2) Also the TRAIL records does get generated if the following UPDATE is executed and the value of this column is NOT NULL prior to the firing of this UPDATE
    Update Eps2_Kp_900001058.Rx_Tx Set Pos_Refund_Date=Pos_Refund_Date Where Tx_Number=1014524 And Nhin_Store_Id=900001058 And Id=4575035;
    3) The TRAIL records does not get generted if the following UPDATE is done and the value of the column POS_REFUND_DATE is NULL before the UPDATE is fired.
    Update Eps2_Kp_900001058.Rx_Tx Set Pos_Refund_Date=Pos_Refund_Date Where Tx_Number=1014524 And Nhin_Store_Id=900001058 And Id=4575035;
    Very strange. Hope you can get me an answer.
    Also opened an SR for this issue, the SR details are:
    SR 3-7288541301 : TRAIL records are not getting generated for SELECTED UPDATE SQL statements - DB supplimental logging
    4) Also the DB version is 11gR2, 11.2.0.3, 64 bit enterprise edition on AIX

  • Update Upper row column value in null column in sql 2008

    Hi All,
    I want to update Upper row value into lower null value column dynamically . i have 10000 record .
    any one have  sql query or any idea.Please help 
    Akhilesh Sahu Sr.Software Developer

    Hi akhilesh,
    Based on your description, you want to Sorting by a specified order that NULL value should be located in the bottom of some columns. If in this scenario, we can try to add a calculated field to convert the values of the field to A, B depend on the specified
    order. Then Sorting the field by A to Z to achieve your requirement. For more details, please refer to the following steps:
    Right-click the dataset to add a calculated field named Order with the expression like below:
    =iiF(Fields!CircleId.Value="","B","A")
    Right-click the report item to open the properties dialog box.
    Click Sorting in the left pane, then add a sorting as below:
    Sort by: [Order]                                                           
    Order: A to Z
    If you have any other questions, please feel free to let me know.
    Thanks,
    Katherine Xiong
    Katherine Xiong
    TechNet Community Support

  • Update column with ROW_NUMBER() value

    I have a column that I would like to update with a ROW_NUMBER() value partitioned by a specific column.
    CREATE TABLE ##tmp (id INT NULL,
    value1 VARCHAR(10),
    value2 VARCHAR(10))
    INSERT INTO ##tmp (value1,
    value2)
    VALUES ('A', 'asdfasdf'),
    ('A', 'asdf'),
    ('A', 'VC'),
    ('B', 'aasdf'),
    ('C', 'sdfgs'),
    ('C', 'xdfbhsdty'),
    ('C', '23sdgfg'),
    ('C', '234')
    -- update the ID column with the values below
    SELECT ROW_NUMBER() OVER (PARTITION BY Value1 ORDER BY Value2),
    Value1,
    Value2
    FROM ##tmp
    I have 14 million records.  Can someone explain the best way to do this?  Does the ORDER BY destroy performance for this many records?
    Thanks!

    CREATE TABLE ##tmp (id INT NULL,
    value1 VARCHAR(10),
    value2 VARCHAR(10))
    INSERT INTO ##tmp (value1,
    value2)
    VALUES ('A', 'asdfasdf'),
    ('A', 'asdf'),
    ('A', 'VC'),
    ('B', 'aasdf'),
    ('C', 'sdfgs'),
    ('C', 'xdfbhsdty'),
    ('C', '23sdgfg'),
    ('C', '234')
    -- update the ID column with the values below
    ; with cte as (
    SELECT ROW_NUMBER() OVER (PARTITION BY Value1 ORDER BY Value2) as RowNumber,
    Value1,
    Value2
    FROM ##tmp
    update cte
    set Id = RowNumber;
    Russel Loski, MCT, MCSE Data Platform/Business Intelligence. Twitter: @sqlmovers; blog: www.sqlmovers.com

  • Mapping problem with compressed key update record (target format)...

    Hi Guys,
    Getting below error while replication from Source to target. Source table is having NOT NULL Column, but on target replicat process giving error about some NULL value ??
    How to overcome this issue, any idea...
    2011-08-04 10:35:04 INFO OGG-00995 Oracle GoldenGate Delivery for Oracle, rmastrk.prm: REPLICAT RMASTRK starting.
    2011-08-04 10:35:05 INFO OGG-00996 Oracle GoldenGate Delivery for Oracle, rmastrk.prm: REPLICAT RMASTRK started.
    2011-08-04 10:35:06 WARNING OGG-00869 Oracle GoldenGate Delivery for Oracle, rmastrk.prm: OCI Error ORA-01407: cannot update ("INFRA"."CUST"."CODE") to NULL (status = 1407), SQL <UPDATE "INFRA"."CUST" SET "ORD_ID" = :a2,"DP_ID" = :a3,"EXCHNG_CODE" = :a4,"ORD_QTY" = :a5,"ORD_PRICE" = :a6,"CODE" = :a7,"MKRT_CODE" = :a8,"CHANN>.
    2011-08-04 10:35:06 WARNING OGG-01004 Oracle GoldenGate Delivery for Oracle, rmastrk.prm: Aborted grouped transaction on 'INFRA.CUST', Database error 1407 (ORA-01407: cannot update ("INFRA"."CUST"."SCRP_CODE") to NULL).
    2011-08-04 10:35:06 WARNING OGG-01003 Oracle GoldenGate Delivery for Oracle, rmastrk.prm: Repositioning to rba 44132192 in seqno 68708.
    2011-08-04 10:35:06 *WARNING OGG-01154 Oracle GoldenGate Delivery for Oracle, rmastrk.prm: SQL error 1407 mapping INFRA.CUST to INFRA.CUST OCI Error ORA-01407:* *cannot update ("INFRA"."CUST"."SCRP_CODE") to NULL (status = 1407), SQL <UPDATE "INFRA"."CUST" SET "ORD_ID" = :a2,"DP_ID" = :a3,"EXCHNG_CODE"=:a4,"ORD_QTY"*
    *= :a5,"ORD_PRICE" = :a6,"SCRP_CODE" = :a7,"MKRT_CODE" = :a8,"CHANN>.*
    2011-08-04 10:35:06 WARNING OGG-01003 Oracle GoldenGate Delivery for Oracle, rmastrk.prm: Repositioning to rba 44132192 in seqno 68708.
    2011-08-04 10:35:06 ERROR OGG-01296 Oracle GoldenGate Delivery for Oracle, rmastrk.prm: Error mapping from INFRA.CUST to INFRA.CUST.
    2011-08-04 10:35:06 ERROR OGG-01668 Oracle GoldenGate Delivery for Oracle, rmastrk.prm: PROCESS ABENDING.
    Oracle GoldenGate Delivery for Oracle process started, group RMASTRK discard file opened: 2011-08-04 10:35:05
    Current time: 2011-08-04 10:35:06
    Discarded record from action ABEND on error 1407
    OCI Error ORA-01407: cannot update ("INFRA"."CUST"."SCRP_CODE") to NULL
    (status = 1407), SQL <UPDATE "INFRA"."CUST" SET "ORD_ID" = :a2,"MKRT_CODE" = :a8,"CHANN>
    Aborting transaction on ./dirdat/pm beginning at seqno 68708 rba 44132192
    error at seqno 68708 rba 44132192
    Problem replicating INFRA.CUST to INFRA.CUST
    *Mapping problem with compressed key update record (target format)...*
    ORD_QTY = 500
    ORD_PRICE = 37430
    SCRP_CODE =
    MKRT_CODE = N
    Oracle GoldenGate Delivery for Oracle process started, group RMASTRK discard file opened: 2011-08-
    04 10:35:05
    Current time: 2011-08-04 10:35:06
    Discarded record from action ABEND on error 1407
    OCI Error ORA-01407: cannot update ("INFRA"."CUST"."SCRP_CODE") to NULL
    (status = 1407), SQL <UPDATE "INFRA"."CUST" SET "ORD_ID" = :a2,"MKRT_CODE" = :a8,"CHANN>
    Aborting transaction on ./dirdat/pm beginning at seqno 68708 rba 44132192
    error at seqno 68708 rba 44132192
    Problem replicating INFRA.CUST to INFRA.CUST
    Mapping problem with compressed key update record (target format)...
    ORD_QTY = 500
    ORD_PRICE = 37430
    SCRP_CODE =
    MKRT_CODE = N
    Any inputs / help would be appreciated.
    Regards,
    Manish

    The SCRP_CODE column has a NOT NULL constraint. The ORA-01407 error is telling you that you cannot update or set a value for this column to null because of the constraint. This has absolutely nothing to do with an index. You can use a marker/sentinel value in lieu of using NULL. For a numeric field, where everything is positive, a negative value (-1) can be decoded as meaning null. For a character field, a code such as NA can represent NULL.
    This also has nothing to do (directly) with GoldenGate failing because of this error. The underlying SQL statement will fail everywhere, regardless of the tool or application. It is not a case of failing only in GoldenGate.

  • Get error ORA-20505 and ORA-01403 when UPDATING record

    Hi,
    I'm running APEX 3.2.1, on Oracle XE 10.2.0.1, on Sun Ultra20 (Intel-based) running Windows Server 2003.
    I created a small, department database - to keep track of contacts, equipment, etc.
    Initially, I used a NUMBER as the PRIMARY KEY in both the CONTACTS table and EQUIPMENT tables. I created a CONTACTS interactive report and a CONTACT DETAILS form, where the EDIT button on a row in the CONTACTS report brings up the individual record to modify. Same thing for EQUIPMENT - interactive report page and form page.
    This all worked fine!
    Then, I decided to change the PRIMARY KEY for the CONTACTS table to a STRING - with CONTACT_FIRST_NAME and CONTACT_LAST_NAME as the primary key. I figured I this would prevent duplicate entries. After the change, inserts work. Updates work, IF a change is made to ANY field EXCEPT first name or last name.
    UPDATES fail - if user modifies EITHER the first name or last name - in APEX. But, update SUCCEEDS if done in SQL Developer. Obviously, I missing a subtle nuance in APEX, but I can't figure it out.
    I've included DEBUG trace and version information below.
    Thanks,
    Andy
    ORA-20505: Error in DML: p_rowid=Adam1, p_alt_rowid=CONTACT_FIRST_NAME, p_rowid2=Adam, p_alt_rowid2=CONTACT_LAST_NAME. ORA-01403: no data found
    0.02: A C C E P T: Request="SAVE"
    0.02: Metadata: Fetch application definition and shortcuts
    0.02: NLS: wwv_flow.g_flow_language_derived_from=FLOW_PRIMARY_LANGUAGE: wwv_flow.g_browser_language=en-us
    0.02: alter session set nls_language="AMERICAN"
    0.02: alter session set nls_territory="AMERICA"
    0.02: NLS: CSV charset=WE8MSWIN1252
    0.02: ...NLS: Set Decimal separator="."
    0.02: ...NLS: Set NLS Group separator=","
    0.02: ...NLS: Set date format="DD-MON-RR"
    0.02: ...Setting session time_zone to -06:00
    0.02: Setting NLS_DATE_FORMAT to application date format: DD-MON-YYYY
    0.02: ...NLS: Set date format="DD-MON-YYYY"
    0.03: Fetch session state from database
    0.03: ...Check session 1896858759858984 owner
    0.03: Setting NLS_DATE_FORMAT to application date format: DD-MON-YYYY
    0.03: ...NLS: Set date format="DD-MON-YYYY"
    0.03: ...Check for session expiration:
    0.03: ...Metadata: Fetch Page, Computation, Process, and Branch
    0.03: Session: Fetch session header information
    0.03: ...Metadata: Fetch page attributes for application 101, page 21
    0.05: ...Validate item page affinity.
    0.05: ...Validate hidden_protected items.
    0.05: ...Check authorization security schemes
    0.05: Session State: Save form items and p_arg_values
    0.05: ...Session State: Save "P21_CONTACT_FIRST_NAME" - saving same value: "Adam"
    0.06: ...Session State: Saved Item "P21_CONTACT_LAST_NAME" New Value="Adam Jr"
    0.06: ...Session State: Save "P21_CONTACT_COMPANY" - saving same value: "Atempo"
    0.06: ...Session State: Save "P21_CONTACT_JOB_TITLE" - saving same value: "Sr Sw Engr"
    0.06: ...Session State: Save "P21_CONTACT_JOB_ROLE" - saving same value: "Engineering"
    0.06: ...Session State: Save "P21_CONTACT_STATUS" - saving same value: "Active"
    0.06: ...Session State: Save "P21_CONTACT_PRODUCT" - saving same value: ""
    0.06: ...Session State: Save "P21_CONTACT_PHONE" - saving same value: "222-333-4444"
    0.06: ...Session State: Save "P21_CONTACT_MOBILE" - saving same value: ""
    0.06: ...Session State: Save "P21_CONTACT_FAX" - saving same value: ""
    0.06: ...Session State: Save "P21_CONTACT_EMAIL" - saving same value: ""
    0.06: ...Session State: Save "P21_CONTACT_STREET" - saving same value: ""
    0.06: ...Session State: Save "P21_CONTACT_CITY" - saving same value: ""
    0.06: ...Session State: Save "P21_CONTACT_STATE" - saving same value: "CO"
    0.06: ...Session State: Save "P21_CONTACT_ZIP" - saving same value: ""
    0.06: ...Session State: Save "P21_CONTACT_COUNTRY" - saving same value: "United States"
    0.06: ...Session State: Save "P21_CONTACT_NOTES" - saving same value: ""
    0.06: Processing point: ON_SUBMIT_BEFORE_COMPUTATION
    0.06: Branch point: BEFORE_COMPUTATION
    0.06: Computation point: AFTER_SUBMIT
    0.06: Tabs: Perform Branching for Tab Requests
    0.06: Branch point: BEFORE_VALIDATION
    0.06: Perform validations:
    0.08: ...Item in validation equals expression 2: P21_CONTACT_JOB_ROLE
    0.08: ...Item in validation equals expression 2: P21_CONTACT_STATUS
    0.08: ...Item Not Null Validation: P21_CONTACT_PHONE
    0.08: ...Item in validation equals expression 2: P21_CONTACT_STATE
    0.08: ...Item in validation equals expression 2: P21_CONTACT_COUNTRY
    0.08: Branch point: BEFORE_PROCESSING
    0.08: Processing point: AFTER_SUBMIT
    0.08: ...Process "Process Row of ISR_CONTACTS": DML_PROCESS_ROW (AFTER_SUBMIT) #OWNER#:ISR_CONTACTS:P21_CONTACT_FIRST_NAME:CONTACT_FIRST_NAME:P21_CONTACT_LAST_NAME:CONTACT_LAST_NAME|IU
    0.08: Show ERROR page...
    0.08: Performing rollback...
    Oracle Database 10g Express Edition Release 10.2.0.1.0 - Product
    PL/SQL Release 10.2.0.1.0 - Production
    CORE 10.2.0.1.0 Production
    TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
    NLSRTL Version 10.2.0.1.0 - Production
    Database     
    NAME     XE
    CREATED     06/08/2010 05:22:50 PM
    RESETLOGS_TIME     07/09/2010 10:09:59 AM
    PRIOR_RESETLOGS_CHANGE#     193066
    PRIOR_RESETLOGS_TIME     06/08/2010 05:22:52 PM
    LOG_MODE     ARCHIVELOG
    CHECKPOINT_CHANGE#     4436025
    ARCHIVE_CHANGE#     4387159
    OPEN_RESETLOGS     NOT ALLOWED
    VERSION_TIME     07/09/2010 10:08:44 AM
    OPEN_MODE     READ WRITE
    PROTECTION_MODE     MAXIMUM PERFORMANCE
    PROTECTION_LEVEL     MAXIMUM PERFORMANCE
    REMOTE_ARCHIVE     ENABLED
    DATABASE_ROLE     PRIMARY
    ARCHIVELOG_CHANGE#     4458138
    SWITCHOVER_STATUS     SESSIONS ACTIVE
    DATAGUARD_BROKER     DISABLED
    GUARD_STATUS     NONE
    FORCE_LOGGING     NO
    CGI Environment     
    PLSQL_GATEWAY     WebDb
    GATEWAY_IVERSION     2
    SERVER_SOFTWARE     Oracle Embedded PL/SQL Gateway/10.2.0.1.0
    GATEWAY_INTERFACE     CGI/1.1
    SERVER_PORT     8080
    SERVER_NAME     XDB HTTP Server
    REQUEST_METHOD     GET
    QUERY_STRING     p=4500:36:1896858759858984:::::
    PATH_INFO     /f
    SCRIPT_NAME     /apex
    REMOTE_ADDR     10.135.65.180
    SERVER_PROTOCOL     HTTP/1.1
    REQUEST_PROTOCOL     tcp
    REMOTE_USER     ANONYMOUS
    HTTP_USER_AGENT     Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.19) Gecko/2010031422 Firefox/3.0.19 (.NET CLR 3.5.30729)
    HTTP_HOST     isr-si-project:8080

    Maybe because you're changing primary key...and then updating record with primary key that doesn't exist.

  • CS5 Update Record behaior deletes the record

    Hello
    I am having an issue that I just cant seem to understand or resolve.
    I am using the CS5 Update Record Server Bahavior to update the user table for a website, but instead if updating the record, it deletes the entire record.
    I look at the SQL and it is definately an Update, so I dont see how it deleting the entire record.
    What I did:
    Passed in record ID through querystring to get the filtered recordset
    Created update form for dynamic data (the corrent data is filling form from recoredset)
    Created hidden field to hold ID
    Clicked the Update Record Server Behavior and matched form variables to appropriate DB fields
    Set it to go to page to list all users
    Saved page
    Run on local server (php/MySQL)
    When I edit the user  data in the update form and click submit, the record is deleted.
    * I checked the MySQL DB and the entire recored has been deleted
    Anyone have a clue on why this is happening?
    Here's the code from the page:
    <?php require_once('../Connections/localconn.php'); ?>
    <?php
    if (!function_exists("GetSQLValueString")) {
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
      if (PHP_VERSION < 6) {
        $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
      $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
      switch ($theType) {
        case "text":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;   
        case "long":
        case "int":
          $theValue = ($theValue != "") ? intval($theValue) : "NULL";
          break;
        case "double":
          $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
          break;
        case "date":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;
        case "defined":
          $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
          break;
      return $theValue;
    $editFormAction = $_SERVER['PHP_SELF'];
    if (isset($_SERVER['QUERY_STRING'])) {
      $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
    if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "updateuser")) {
      $updateSQL = sprintf("UPDATE users SET fname=%s, lname=%s, uname=%s, password=%s, ulevel=%s WHERE id=%s",
                           GetSQLValueString($_POST['fname'], "text"),
                           GetSQLValueString($_POST['lname'], "text"),
                           GetSQLValueString($_POST['uname'], "text"),
                           GetSQLValueString($_POST['pword'], "text"),
                           GetSQLValueString($_POST['ulevel'], "int"),
                           GetSQLValueString($_POST['id'], "int"));
      mysql_select_db($database_localconn, $localconn);
      $Result1 = mysql_query($updateSQL, $localconn) or die(mysql_error());
      $updateGoTo = "users.php";
      if (isset($_SERVER['QUERY_STRING'])) {
        $updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
        $updateGoTo .= $_SERVER['QUERY_STRING'];
      header(sprintf("Location: %s", $updateGoTo));
    $colname_Recordset_users = "-1";
    if (isset($_GET['id'])) {
      $colname_Recordset_users = $_GET['id'];
    mysql_select_db($database_localconn, $localconn);
    $query_Recordset_users = sprintf("SELECT * FROM users WHERE id = %s", GetSQLValueString($colname_Recordset_users, "int"));
    $Recordset_users = mysql_query($query_Recordset_users, $localconn) or die(mysql_error());
    $row_Recordset_users = mysql_fetch_assoc($Recordset_users);
    $totalRows_Recordset_users = mysql_num_rows($Recordset_users);
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Title</title>
    <meta http-equiv="Content-Language" content="English" />
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <META NAME="ROBOTS" CONTENT="NOINDEX, FOLLOW">
    <link rel="stylesheet" type="text/css" href="style.css" media="screen" />
    </head>
    <body>
    <div id="wrap">
    <div id="top"></div>
    <div id="content">
    <div class="header">
    <h1><a href="#">FENA </a></h1>
    <h2>Content Management System (CMS)</h2>
    </div>
    <div class="breadcrumbs">
    <a href="#">Home</a> &middot; Edit User
    </div>
    <div class="middle">
    <h2>Edit User - <?php echo $row_Recordset_users['lname']; ?>, <?php echo $row_Recordset_users['fname']; ?></h2>
    <form method="POST" action="<?php echo $editFormAction; ?>" name="updateuser"> 
    <table>
    <tr>
         <td>Last Name</td>
            <td><input name="lname" type="text" value="<?php echo $row_Recordset_users['lname']; ?>" /></td>
        </tr>
        <tr>
         <td>First Name</td>
            <td><input name="fname" type="text" value="<?php echo $row_Recordset_users['fname']; ?>" /></td>
        </tr>
        <tr>
         <td>Username</td>
            <td><input name="uname" type="text" value="<?php echo $row_Recordset_users['uname']; ?>" /></td>
        </tr>
        <tr>
         <td>Password</td>
            <td><input name="pword" type="text" value="<?php echo $row_Recordset_users['password']; ?>" /></td>
        </tr>
        <tr>
         <td>User Level</td>
            <td>
             <select name="ulevel">
                 <option value="<?php echo $row_Recordset_users['ulevel']; ?>"><?php echo $row_Recordset_users['ulevel']; ?></option>
                    <option value="1">Admin</option>
                    <option value="2">Editor</option>
                </select>
            </td>
        </tr>
        <tr>
         <td colspan="2" align="right"><input name="id" type="hidden" value="<?php echo $row_Recordset_users['id']; ?>" /><input name="submit" type="submit" value="Submit" /></td>
        </tr>
    </table>
    <input type="hidden" name="MM_update" value="updateuser" />
    </form>
    </div>
    <div class="right">
    <h2>Navigation</h2>
    <ul>
    <li><a href="index.php">Home</a></li>
    <li><a href="users.php">Users</a></li>
    <li><a href="users_add.php">Add User</a></li>
    </ul>
    </div>
    <div id="clear"></div>
    </div>
    <div id="bottom"></div>
    </div>
    <div id="footer">
    Developed by Me
    </div>
    </body>
    </html>
    <?php
    mysql_free_result($Recordset_users);
    ?>

    Hi Paul,
    I am actually try to a create a submit a process and have it to update the DB.
    Thanks,
    Han

  • Update record validation

    I've used DW insert app object to build form to update a
    record. I'd like to add an if statement but I am unsure where to
    insert the code. I want to check a field for a specific value
    before letting the record be updated. If the value is equal to a
    specific value the form is process otherwise the entire update is
    cancelled.
    Thanks

    rozebiz wrote:
    > I've used DW insert app object to build form to update a
    record. I'd like to
    > add an if statement but I am unsure where to insert the
    code. I want to check
    > a field for a specific value before letting the record
    be updated. If the value
    > is equal to a specific value the form is process
    otherwise the entire update is
    > cancelled.
    The PHP code that controls the update begins with this line
    ("form1"
    will be whatever name the update form has):
    if ((isset($_POST["MM_update"])) &&
    ($_POST["MM_update"] == "form1")) {
    Place your cursor at the end of that line and press enter a
    couple of
    times to insert space for the following code:
    if ($_POST['myVariable'] != 'required_value') {
    // code to inform user that update has not been done
    else {
    Then scroll down until you find this code:
    header(sprintf("Location: %s", $updateGoTo));
    Insert another closing curly brace immediately after it to
    balance the
    opening one after "else".
    Replace 'myVariable' and 'required_value' with the field that
    you want
    to check and the value it needs to be.
    David Powers, Adobe Community Expert
    Author, "Foundation PHP for Dreamweaver 8" (friends of ED)
    Author, "PHP Solutions" (friends of ED)
    http://foundationphp.com/

  • Update Record Parameter Variable SQL injection

    Hello...Please advise how to correct code... The update
    record field recordcurrent is a y/n checkbox field with radio
    buttons for selecting response with default as N. Here is the code
    that has an error:
    MM_editCmd.Parameters.Append
    MM_editCmd.CreateParameter("param11", 5, 1, -1,
    MM_IIF(Request.Form("RecordCurrentCheck"),
    Request.Form("RecordCurrentCheck"), null)) ' adDouble
    The code for the recordset follows:
    <input <%If
    (CStr((eprofile.Fields.Item("RecordCurrent").Value)) = CStr("Y"))
    Then Response.Write("checked=""checked""") :
    Response.Write("")%> type="radio" name="RecordCurrentCheck"
    value="Y">
    Yes
    <input <%If
    (CStr((eprofile.Fields.Item("RecordCurrent").Value)) = CStr("N"))
    Then Response.Write("checked=""checked""") :
    Response.Write("")%> type="radio" name="RecordCurrentCheck"
    value="N"checked>
    Should there be a second createparameter based on there being
    two buttons?
    Thank you for your assistance,
    Much confused one,
    Lara

    Try...
    <input <%If
    (CStr((eprofile.Fields.Item("RecordCurrent").Value)) = CStr("Y"))
    Then Response.Write("checked='checked'")%> type="radio"
    name="RecordCurrentCheck" value="Y"> Yes
    <input <%If
    (CStr((eprofile.Fields.Item("RecordCurrent").Value)) = CStr("N"))
    Then Response.Write("checked='checked'")%> type="radio"
    name="RecordCurrentCheck" value="N"> No

  • Updating records

    helloo..
    i have a java application that will add records , search and update records in the database..
    i have the fields id,name,phone,address,sex and dob..
    i will be having an update button , whenever the user will click on the update button he can update the record he wants and then the updated record will be stored..but i don't know how to write the code for this ..
    can any one help me by giving me a sample code...
    this is my application code:
    import java.sql.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.table.*;
    public class Insert3 extends JFrame implements ActionListener
         JTextField id, name,address,phone,sex,dob;
         JButton add,update;
         JPanel panel, buttonPanel;
         static ResultSet res;
         static Connection conn;
         static Statement stat;
         static String[][] tableData;
         JTable dataTable;
         Container c = getContentPane();
         JScrollPane scrollpane;
         //private ImageIcon logo;
    public static void main (String[] args)
              Insert3 worker = new Insert3();
              try
                        //Connect to the database and insert some records:
                             Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                             Connection conn = DriverManager.getConnection("jdbc:odbc:database");//database is the DSName
                             stat = conn.createStatement();
                             /*stat.executeUpdate("INSERT INTO Customer VALUES (1001, 'Simpson','hamad town',222,'m','may 72')");
                             stat.executeUpdate("INSERT INTO Customer VALUES (1002, 'McBeal','isatown',333,'f','jan 79')");
                             stat.executeUpdate("INSERT INTO Customer VALUES (1003, 'Flinstone','hamad town',292,'m','may 72')");
                             stat.executeUpdate("INSERT INTO Customer VALUES (1004, 'Cramden','hamad town',987,'m','may 72')");
                             stat.executeUpdate("INSERT INTO Customer VALUES (1004, 'Cramden','hamad town',987,'m','may 72')");
                             stat.executeUpdate("INSERT INTO Customer VALUES (1004, 'Cramden','hamad town',987,'m','may 72')");*/
                   }//try
              catch(Exception e)
                        System.out.println("Caught exception in main: " +e);
                   }//catch
    //Create the JTable and build the GUI..
         worker.updateTable();
         }//main
    //===========================================================================================================================
    void makeGUI()
              c.setLayout(new BorderLayout());
              id = new JTextField(20);
              name = new JTextField(20);
              address=new JTextField(20);
              phone=new JTextField(20);
              sex=new JTextField(20);
              dob=new JTextField(20);
              add = new JButton("ADD");
              update=new JButton("UPDATE");
              panel = new JPanel();
              buttonPanel = new JPanel(new GridLayout(3,4));
              buttonPanel.add(new JLabel("ID",JLabel.CENTER));
              buttonPanel.add(id);
              buttonPanel.add(new JLabel("Name",JLabel.CENTER));
              buttonPanel.add(name);
              buttonPanel.add(new JLabel("Address",JLabel.CENTER));
              buttonPanel.add(address);
              buttonPanel.add(new JLabel("Phone",JLabel.CENTER));
              buttonPanel.add(phone);
              buttonPanel.add(new JLabel("Sex",JLabel.CENTER));
              buttonPanel.add(sex);
              buttonPanel.add(new JLabel("Date Of Birth",JLabel.CENTER));
              buttonPanel.add(dob);
              panel.add(add);
              panel.add(update);
              add.addActionListener(this);
              search.addActionListener(this);
              pack();
              setVisible(true);
         }//makeGUI
    //===========================================================================================================================
    public void actionPerformed(ActionEvent e)
              if(e.getSource() == add)
              if(id.getText().equals("") || name.getText().equals("") || address.getText().equals("") || phone.getText().equals("") || sex.getText().equals("")|| dob.getText().equals(""))
              JOptionPane.showMessageDialog(null,"Please fill in the missing fields","Missing Fields!!!",JOptionPane.INFORMATION_MESSAGE);
                   try
                        String idInput = id.getText();
                        if(idInput.equals(""))
                        idInput = "0";
                        int userId = Integer.parseInt(idInput);
                        String userName = name.getText();
                        String userAddress = address.getText();
                        String userPhone = phone.getText();
                        String userSex = sex.getText();
                        String userDateBirth = dob.getText();
                        //logo=new ImageIcon("C:\My Documents\SENIOR\diagonal.jpg");
                        //Image img = Toolkit.getDefaultToolkit().getImage("diagonal.jpg");
                        String sql = "INSERT INTO CUSTOMER VALUES ('"+userId+"', '"+userName+"', '"+userAddress+"', '"+userPhone+"', '"+userSex+"', '"+userDateBirth+"')";
                        stat.executeUpdate(sql);
                        id.setText("");
                        name.setText("");
                        address.setText("");
                        phone.setText("");
                        sex.setText("");
                        dob.setText("");
                        updateTable();
                        repaint();
    }//try
                   catch(Exception ee)
                        System.out.println("Caught exception in actionPerformed: "+ee);
                   }//catch
    }//if
    if(e.getSource()==update)
                   String idEntered = id.getText();
                   String enteredName=name.getText();
                   String enteredPhone=phone.getText();
                   String enteredSex=sex.getText();
                   String enteredDob=dob.getText();
                   try
                   catch(Exception eee)
                                       System.out.println("Caught exception in actionPerformed: "+eee);
                   }//catch
         }//else
         }//actionlistener
    //===========================================================================================================================
    void updateTable()
         try
                   int rowNumbers = 0;
                   //Get the number of rows in the table so we know how big to make the data array..
                   ResultSet results = stat.executeQuery("SELECT COUNT(*) FROM CUSTOMER");
                   while(results.next())
                             rowNumbers = results.getInt(1);
                        }//while
                   System.out.println("Rows: "+rowNumbers);
                   tableData = new String[rowNumbers][6];
                   int currentRow = 0;
                   ResultSet results1 = stat.executeQuery("SELECT * FROM CUSTOMER");
                   while(results1.next())
                             tableData[currentRow][0] = results1.getString(1);
                             tableData[currentRow][1] = results1.getString(2);
                             tableData[currentRow][2] = results1.getString(3);
                             tableData[currentRow][3] = results1.getString(4);
                             tableData[currentRow][4] = results1.getString(5);
                             tableData[currentRow][5] = results1.getString(6);
                             currentRow++;
                        }//while
    //===============================================
    //Create the table model:
    final String[] colName = {"Id", "Name","Address","Phone","Sex","Date OF Birth"};
    TableModel pageModel = new AbstractTableModel()
         public int getColumnCount()
              return tableData[0].length;
         }//getColumnCount
         public int getRowCount()
              return tableData.length;
         }//getRowCount
    public Object getValueAt(int row, int col)
              return tableData[row][col];
    }//getValueAt
         public String getColumnName(int column)
              return colName[column];
    }//getcolName
         public Class getColumnClass(int col)
              return getValueAt(0,col).getClass();
         }//getColumnClass
         public boolean isCellEditable(int row, int col)
              return false;
    }//isCellEditable
         public void setValueAt(String aValue, int row, int column)
              tableData[row][column] = aValue;
    }//setValueAt
    };//pageModel
    //===========================================================================================================================
    //Create the JTable from the table model:
    dataTable = new JTable(pageModel);
    //===========================================================================================================================
    if(scrollpane != null)
              scrollpane.setVisible(false);
              scrollpane = null;
         }//if
    scrollpane = new JScrollPane(dataTable);
    scrollpane.setVisible(true);
    if(buttonPanel == null)
         makeGUI();
         c.add(buttonPanel, BorderLayout.NORTH);
         c.add(panel, BorderLayout.CENTER);
         c.add(scrollpane, BorderLayout.SOUTH);
         id.grabFocus();
         pack();
    }//try
    catch(Exception e)
    System.out.println("Caught updateTable exception: "+e);
    }//catch
    }//updatetable
    }//Jframe
    i did the add part but know i'm stuck with the update..well this is my first time to work with databases using java ..
    so please can someone help
    thankx

    Yes, I want find out how it works and what was the cause the program could not work.

  • Update Record probem

    Hi,
    I am having problem with UPDATE RECORD in DW/MX2004, I am
    using JSP/Oracle DB.
    I created a search page, result page and update page. When
    the condition found, the result page displayed the result with the
    link to the right record, which opened the record data; however,
    when I made changes and click "Update Record" button, nothing got
    updated in the database.
    Does anyone know what went wrong? Appreciate your help.
    Regards.
    Attached is the update file code.
    // *** Edit Operations: declare variables
    // set the form action variable
    String MM_editAction = request.getRequestURI();
    if (request.getQueryString() != null &&
    request.getQueryString().length() > 0) {
    String queryString = request.getQueryString();
    String tempStr = "";
    for (int i=0; i < queryString.length(); i++) {
    if (queryString.charAt(i) == '<') tempStr = tempStr +
    "&lt;";
    else if (queryString.charAt(i) == '>') tempStr = tempStr
    + "&gt;";
    else if (queryString.charAt(i) == '"') tempStr = tempStr +
    "&quot;";
    else tempStr = tempStr + queryString.charAt(i);
    MM_editAction += "?" + tempStr;
    // connection information
    String MM_editDriver = null, MM_editConnection = null,
    MM_editUserName = null, MM_editPassword = null;
    // redirect information
    String MM_editRedirectUrl = null;
    // query string to execute
    StringBuffer MM_editQuery = null;
    // boolean to abort record edit
    boolean MM_abortEdit = false;
    // table information
    String MM_editTable = null, MM_editColumn = null, MM_recordId
    = null;
    // form field information
    String[] MM_fields = null, MM_columns = null;
    %>
    <%
    // *** Update Record: set variables
    if (request.getParameter("MM_update") != null &&
    request.getParameter("MM_update").toString().equals("fr_update")
    request.getParameter("MM_recordId") != null) {
    MM_editDriver = MM_webtrain_db_DRIVER;
    MM_editConnection = MM_webtrain_db_STRING;
    MM_editUserName = MM_webtrain_db_USERNAME;
    MM_editPassword = MM_webtrain_db_PASSWORD;
    MM_editTable = "WEBTRAIN.COURSE_NAME";
    MM_editColumn = "C_NAME";
    MM_recordId = "'" + request.getParameter("MM_recordId") +
    MM_editRedirectUrl = "search_page.jsp";
    String MM_fieldsStr =
    "C_NAME|value|C_DESC|value|MODULE1|value|MOD1_LOC|value|QUIZ1_NAME|value|QUIZ1_LOC|value" ;
    String MM_columnsStr =
    "C_NAME|',none,''|C_DESC|',none,''|MODULE1|',none,''|MOD1_LOC|',none,''|QUIZ1_NAME|',none ,''|QUIZ1_LOC|',none,''";
    // create the MM_fields and MM_columns arrays
    java.util.StringTokenizer tokens = new
    java.util.StringTokenizer(MM_fieldsStr,"|");
    MM_fields = new String[tokens.countTokens()];
    for (int i=0; tokens.hasMoreTokens(); i++) MM_fields
    = tokens.nextToken();
    tokens = new java.util.StringTokenizer(MM_columnsStr,"|");
    MM_columns = new String[tokens.countTokens()];
    for (int i=0; tokens.hasMoreTokens(); i++) MM_columns =
    tokens.nextToken();
    // set the form values
    for (int i=0; i+1 < MM_fields.length; i+=2) {
    MM_fields[i+1] = ((request.getParameter(MM_fields
    )!=null)?(String)request.getParameter(MM_fields):"");
    // append the query string to the redirect URL
    if (MM_editRedirectUrl.length() != 0 &&
    request.getQueryString() != null) {
    MM_editRedirectUrl += ((MM_editRedirectUrl.indexOf('?') ==
    -1)?"?":"&") + request.getQueryString();
    %>
    <%
    // *** Update Record: construct a sql update statement and
    execute it
    if (request.getParameter("MM_update") != null &&
    request.getParameter("MM_recordId") != null) {
    // create the update sql statement
    MM_editQuery = new StringBuffer("update
    ").append(MM_editTable).append(" set ");
    for (int i=0; i+1 < MM_fields.length; i+=2) {
    String formVal = MM_fields[i+1];
    String elem;
    java.util.StringTokenizer tokens = new
    java.util.StringTokenizer(MM_columns[i+1],",");
    String delim = ((elem = (String)tokens.nextToken()) != null
    && elem.compareTo("none")!=0)?elem:"";
    String altVal = ((elem = (String)tokens.nextToken()) != null
    && elem.compareTo("none")!=0)?elem:"";
    String emptyVal = ((elem = (String)tokens.nextToken()) !=
    null && elem.compareTo("none")!=0)?elem:"";
    if (formVal.length() == 0) {
    formVal = emptyVal;
    } else {
    if (altVal.length() != 0) {
    formVal = altVal;
    } else if (delim.compareTo("'") == 0) { // escape quotes
    StringBuffer escQuotes = new StringBuffer(formVal);
    for (int j=0; j < escQuotes.length(); j++)
    if (escQuotes.charAt(j) == '\'') escQuotes.insert(j++,'\'');
    formVal = "'" + escQuotes + "'";
    } else {
    formVal = delim + formVal + delim;
    MM_editQuery.append((i!=0)?",":"").append(MM_columns
    ).append(" = ").append(formVal);
    MM_editQuery.append(" where
    ").append(MM_editColumn).append(" = ").append(MM_recordId);
    if (!MM_abortEdit) {
    // finish the sql and execute it
    Driver MM_driver =
    (Driver)Class.forName(MM_editDriver).newInstance();
    Connection MM_connection =
    DriverManager.getConnection(MM_editConnection,MM_editUserName,MM_editPassword);
    PreparedStatement MM_editStatement =
    MM_connection.prepareStatement(MM_editQuery.toString());
    MM_editStatement.executeUpdate();
    MM_connection.close();
    // redirect with URL parameters
    if (MM_editRedirectUrl.length() != 0) {
    response.sendRedirect(response.encodeRedirectURL(MM_editRedirectUrl));
    return;
    %>
    <%
    String rs_update__MMColParam = "1";
    if (request.getParameter("C_NAME") !=null)
    {rs_update__MMColParam = (String)request.getParameter("C_NAME");}
    %>
    <%
    Driver Driverrs_update =
    (Driver)Class.forName(MM_webtrain_db_DRIVER).newInstance();
    Connection Connrs_update =
    DriverManager.getConnection(MM_webtrain_db_STRING,MM_webtrain_db_USERNAME,MM_webtrain_db_ PASSWORD);
    PreparedStatement Statementrs_update =
    Connrs_update.prepareStatement("SELECT * FROM WEBTRAIN.COURSE_NAME
    WHERE C_NAME = '" + rs_update__MMColParam + "'");
    ResultSet rs_update = Statementrs_update.executeQuery();
    boolean rs_update_isEmpty = !rs_update.next();
    boolean rs_update_hasData = !rs_update_isEmpty;
    Object rs_update_data;
    int rs_update_numRows = 0;
    %>

    $colname_rs = "-1";
    if (isset($_SESSION['username'])) {
    $colname_rs = $_SESSION['username'];
    $colname2_rs = "-1";
    if (isset($_SESSION['password'])) {
    $colname2_rs = $_SESSION['password'];
    mysql_select_db($database_connDB, $connDB);
    $query_rs = sprintf("SELECT * FROM company WHERE username =
    %s and password = %s LIMIT 1", GetSQLValueString($colname_rs,
    "text"),GetSQLValueString($colname2_rs, "text"));
    $rs = mysql_query($query_rs, $connDB) or die(mysql_error());
    $row_rs = mysql_fetch_assoc($rs);
    $totalRows_rs = mysql_num_rows($rs);
    if ($row_rs['cid'] != "") {
    $editFormAction = $_SERVER['PHP_SELF'];
    if (isset($_SERVER['QUERY_STRING'])) {
    $editFormAction .= "?" .
    htmlentities($_SERVER['QUERY_STRING']);
    $updateSQL = sprintf("UPDATE company SET loggedin=%s WHERE
    cid=%s",
    GetSQLValueString(0, "int"),
    GetSQLValueString($row_rs['cid'], "int"));
    mysql_select_db($database_connDB, $connDB);
    $Result1 = mysql_query($updateSQL, $connDB) or
    die(mysql_error());
    }

  • Error in updating records brought by LOV

    Hi everybody
    I am using Oracle 10 g
    when fetching data from the database by choosing a specific record from LOV then trying to make "save" means "commit" I have this error
    FRM-40509: Oracle error: unable to update record
    I think there is a problem in mapping btw the record in the form and the cursor pointing to that record in the database because when i execute "next_recod" button after choosing one in LOV it go to the record next the one specified before choosing from LOV
    knowing that updating process working correctly when choosing by ("first_record, previous_record, next_record or last_record)
    so what is the solution
    please help
    thank you very much

    yes please
    I didn't know what do you mean by customized or default menu
    I build LOV using the wizard and bind it by a query to a table then make Show_LOV from the form
    so when I choose one of the rows and they brought to the text boxes assigend to them after that when I make "Commit" I got that error
    thank you for help
    and sorry for bieng late in reply, I don't have enternet after 2:00 pm

  • Need help to insert and update records in MDM

    Hi ,
    I am trying to develop an webdynpro application which can create and update records in tables of a repository of MDM . For example .. I want to insert values and later update values in Vendor table.
    I am new to webdynpro and MDM. If any one can help step by step or can send a sample code which I can be ready to use that would be great help.
    If anyone can have a sample code .. kindly mail to "[email protected]"
    It is urgent. Please help.
    Regards,
    Niraj
    Edited by: Niraj Kumar on May 23, 2008 6:50 AM

    Hi Niraj,
    Are u going to work with webdynpro Java/ABAP?
    some materials which are found useful are sent.
    Cheers,
    Mary

Maybe you are looking for