I am facing problem in updating the form view values using sqldatasource bind with Oracle database.
My Select and Insert events are working properly, all columns and parameters are correct.
But when i hit on update button below error occures:
"ORA-01036: illegal variable name/number"
Here is my Update Command using in sqldatasource (binded with oracle):
UPDATE REPORT_PINK
SET DEMOG_HEIGHT = :DEMOG_HEIGHT
, DEMOG_WEIGHT = :DEMOG_WEIGHT
, DEMOG_TX_NO = :DEMOG_TX_NO
, DEMOG_TX_PLACE = :DEMOG_TX_PLACE
, DEMOG_TX_DATE = :DEMOG_TX_DATE
, DEMOG_TX_TYPE = :DEMOG_TX_TYPE
, DEMOG_RELATIONSHIP = :DEMOG_RELATIONSHIP
, MED_HIS_CAUSE = :MED_HIS_CAUSE
, MED_HIS_ALLERGY = :MED_HIS_ALLERGY
, MED_HIS_BIOPSY_DATE = :MED_HIS_BIOPSY_DATE
, MED_HIS_DIALYSIS = :MED_HIS_DIALYSIS
, MED_HIS_DIALYSIS_DATE = :MED_HIS_DIALYSIS_DATE
, MED_HIS_PREV_TX_FIRST = :MED_HIS_PREV_TX_FIRST
, MED_HIS_PREV_TX_DATE_FIRST = :MED_HIS_PREV_TX_DATE_FIRST
, MED_HIS_PREV_TX_SECOND = :MED_HIS_PREV_TX_SECOND
, MED_HIS_PREV_TX_DATE_SECOND = :MED_HIS_PREV_TX_DATE_SECOND
, COMOR_HEART = :COMOR_HEART
, COMOR_LIVER = :COMOR_LIVER
, COMOR_HEPATITIS_B = :COMOR_HEPATITIS_B
, COMOR_HEPATITIS_C = :COMOR_HEPATITIS_C
, COMOR_DIABETES = :COMOR_DIABETES
, COMOR_TB = :COMOR_TB
, COMOR_PEPTIC = :COMOR_PEPTIC
, COMOR_CANCER = :COMOR_CANCER
, IMM_CDC_DATE = :IMM_CDC_DATE
, IMM_CDC_NORMAL_T = :IMM_CDC_NORMAL_T
, IMM_CDC_NORMAL_B = :IMM_CDC_NORMAL_B
, IMM_CDC_DTT_B = :IMM_CDC_DTT_B
, IMM_CDC_DTT_T = :IMM_CDC_DTT_T
, IMM_CDC_AHG_B = :IMM_CDC_AHG_B
, IMM_CDC_AHG_T = :IMM_CDC_AHG_T
, IMM_FLOW_DATE = :IMM_FLOW_DATE
, IMM_FLOW_IGGT_PAT = :IMM_FLOW_IGGT_PAT
, IMM_FLOW_IGGT_PRO = :IMM_FLOW_IGGT_PRO
, IMM_FLOW_IGGB_PAT = :IMM_FLOW_IGGB_PAT
, IMM_FLOW_IGGB_PRO = :IMM_FLOW_IGGB_PRO
, IMM_FLOW_IGMT_PAT = :IMM_FLOW_IGMT_PAT
, IMM_FLOW_IGMB_PAT = :IMM_FLOW_IGMB_PAT
, IMM_ANTI_HLA_PRA = :IMM_ANTI_HLA_PRA
, IMM_ANTI_HLA_PRA_DATE = :IMM_ANTI_HLA_PRA_DATE
, TC_REMUZZI_GLOMERULI_L = :TC_REMUZZI_GLOMERULI_L
, TC_REMUZZI_TUBULE_L = :TC_REMUZZI_TUBULE_L
, TC_REMUZZI_INTERSTITM_L = :TC_REMUZZI_INTERSTITM_L
, TC_REMUZZI_ARTERIS_L = :TC_REMUZZI_ARTERIS_L
, TC_REMUZZI_GLOMERULI_R = :TC_REMUZZI_GLOMERULI_R
, TC_REMUZZI_TUBULE_R = :TC_REMUZZI_TUBULE_R
, TC_REMUZZI_INTERSTITM_R = :TC_REMUZZI_INTERSTITM_R
, TC_REMUZZI_ARTERIS_R = :TC_REMUZZI_ARTERIS_R
, TC_ANAST_ARTERY = :TC_ANAST_ARTERY
, TC_ANAST_VEIN = :TC_ANAST_VEIN
, TC_ANAST_URETER = :TC_ANAST_URETER
, TC_DONATE_FIRST_ISCHEMIC = :TC_DONATE_FIRST_ISCHEMIC
, TC_DONATE_SECOND_ISCHEMIC = :TC_DONATE_SECOND_ISCHEMIC
, TC_DONATE_COLD_ISCHEMIC = :TC_DONATE_COLD_ISCHEMIC
, TC_DONATE_PERFUSION = :TC_DONATE_PERFUSION
, DONOR_NAME = :DONOR_NAME
, DONOR_NRIC = :DONOR_NRIC
, DONOR_GENDER = :DONOR_GENDER
, DONOR_AGE = :DONOR_AGE
, DONOR_DEATH = :DONOR_DEATH
, DONOR_INOTROPES = :DONOR_INOTROPES
, DONOR_ISHYPER = :DONOR_ISHYPER
, DONOR_HYPER = :DONOR_HYPER
, DONOR_ISDIABETES = :DONOR_ISDIABETES
, DONOR_DIABETES = :DONOR_DIABETES
, DONOR_ISOTHERS = :DONOR_ISOTHERS
, DONOR_OTHERS = :DONOR_OTHERS
, DONOR_UREA = :DONOR_UREA
, DONOR_CREAT = :DONOR_CREAT
, DONOR_HB = :DONOR_HB
, DONOR_PT = :DONOR_PT
, DONOR_PTT = :DONOR_PTT
, VIRO_HBSAG_RECP = :VIRO_HBSAG_RECP
, VIRO_HBSAG_RECP_DATE = :VIRO_HBSAG_RECP_DATE
, VIRO_ANTI_HB_RECP = :VIRO_ANTI_HB_RECP
, VIRO_ANTI_HB_RECP_DATE = :VIRO_ANTI_HB_RECP_DATE
, VIRO_ANTI_HBC_RECP = :VIRO_ANTI_HBC_RECP
, VIRO_ANTI_HBC_RECP_DATE = :VIRO_ANTI_HBC_RECP_DATE
, VIRO_HBV_RECP = :VIRO_HBV_RECP
, VIRO_HBV_RECP_DATE = :VIRO_HBV_RECP_DATE
, VIRO_ANTI_HCV_RECP = :VIRO_ANTI_HCV_RECP
, VIRO_ANTI_HCV_RECP_DATE = :VIRO_ANTI_HCV_RECP_DATE
, VIRO_HIV_AG_RECP = :VIRO_HIV_AG_RECP
, VIRO_HIV_AG_RECP_DATE = :VIRO_HIV_AG_RECP_DATE
, VIRO_HIV_PCR_RECP = :VIRO_HIV_PCR_RECP
, VIRO_HIV_PCR_RECP_DATE = :VIRO_HIV_PCR_RECP_DATE
, VIRO_CMV_RECP = :VIRO_CMV_RECP
, VIRO_CMV_RECP_DATE = :VIRO_CMV_RECP_DATE
, VIRO_VDRL_RECP = :VIRO_VDRL_RECP
, VIRO_VDRL_RECP_DATE = :VIRO_VDRL_RECP_DATE
, VIRO_ABO_RECP = :VIRO_ABO_RECP
, VIRO_ABO_RECP_DATE = :VIRO_ABO_RECP_DATE
, VIRO_HCV_PCR_RECP = :VIRO_HCV_PCR_RECP
, VIRO_HCV_PCR_RECP_DATE = :VIRO_HCV_PCR_RECP_DATE
, VIRO_HBSAG_DONOR = :VIRO_HBSAG_DONOR
, VIRO_HBSAG_DONOR_DATE = :VIRO_HBSAG_DONOR_DATE
, VIRO_ANTI_HB_DONOR = :VIRO_ANTI_HB_DONOR
, VIRO_ANTI_HB_DONOR_DATE = :VIRO_ANTI_HB_DONOR_DATE
, VIRO_ANTI_HBC_DONOR = :VIRO_ANTI_HBC_DONOR
, VIRO_ANTI_HBC_DONOR_DATE = :VIRO_ANTI_HBC_DONOR_DATE
, VIRO_HBV_DONOR = :VIRO_HBV_DONOR
, VIRO_HBV_DONOR_DATE = :VIRO_HBV_DONOR_DATE
, VIRO_ANTI_HCV_DONOR = :VIRO_ANTI_HCV_DONOR
, VIRO_ANTI_HCV_DONOR_DATE = :VIRO_ANTI_HCV_DONOR_DATE
, VIRO_HCV_PCR_DONOR = :VIRO_HCV_PCR_DONOR
, VIRO_HCV_PCR_DONOR_DATE = :VIRO_HCV_PCR_DONOR_DATE
, VIRO_HIV_AG_DONOR = :VIRO_HIV_AG_DONOR
, VIRO_HIV_AG_DONOR_DATE = :VIRO_HIV_AG_DONOR_DATE
, VIRO_HIV_PCR_DONOR = :VIRO_HIV_PCR_DONOR
, VIRO_HIV_PCR_DONOR_DATE = :VIRO_HIV_PCR_DONOR_DATE
, VIRO_CMV_DONOR = :VIRO_CMV_DONOR
, VIRO_CMV_DONOR_DATE = :VIRO_CMV_DONOR_DATE
, VIRO_VDRL_DONOR = :VIRO_VDRL_DONOR
, VIRO_VDRL_DONOR_DATE = :VIRO_VDRL_DONOR_DATE
, VIRO_ABO_DONOR = :VIRO_ABO_DONOR
, VIRO_ABO_DONOR_DATE = :VIRO_ABO_DONOR_DATE
, HLA_A1_RECP = :HLA_A1_RECP
, HLA_A2_RECP = :HLA_A2_RECP
, HLA_B1_RECP = :HLA_B1_RECP
, HLA_B2_RECP = :HLA_B2_RECP
, HLA_DR1_RECP = :HLA_DR1_RECP
, HLA_DR2_RECP = :HLA_DR2_RECP
, HLA_ANTITITRE_RECP = :HLA_ANTITITRE_RECP
, HLA_A1_DONOR = :HLA_A1_DONOR
, HLA_A2_DONOR = :HLA_A2_DONOR
, HLA_B1_DONOR = :HLA_B1_DONOR
, HLA_B2_DONOR = :HLA_B2_DONOR
, HLA_DR1_DONOR = :HLA_DR1_DONOR
, HLA_DR2_DONOR = :HLA_DR2_DONOR
, HLA_ANTITITRE_DONOR = :HLA_ANTITITRE_DONOR
WHERE PAT_ID = :PAT_ID
My problem is resolved, as I was not using the primary key to match the where condition, when I changed where condition with primary key it starts working.
Is it compulsory to give where condition with primary key while using sqldatasource (or with oracle) because generally we can put any where condition to update record while doing manually.
Yes, I think it is mandatory to use the primary key in order to fire update query using SqlDataSource t doesn't if you are using SqlDataSource with Oracle, SQL Server or any other data source.
The reason could be that SqlDataSource only allows to edit one record at a time so the changes will reflect only one record and not more then one.