Discussions
Categories
- 385.5K All Categories
- 4.9K Data
- 2.5K Big Data Appliance
- 2.4K Data Science
- 453.4K Databases
- 223.2K General Database Discussions
- 3.8K Java and JavaScript in the Database
- 47 Multilingual Engine
- 606 MySQL Community Space
- 486 NoSQL Database
- 7.9K Oracle Database Express Edition (XE)
- 3.2K ORDS, SODA & JSON in the Database
- 585 SQLcl
- 4K SQL Developer Data Modeler
- 188K SQL & PL/SQL
- 21.5K SQL Developer
- 46 Data Integration
- 46 GoldenGate
- 298.4K Development
- 4 Application Development
- 20 Developer Projects
- 166 Programming Languages
- 295K Development Tools
- 150 DevOps
- 3.1K QA/Testing
- 646.7K Java
- 37 Java Learning Subscription
- 37.1K Database Connectivity
- 201 Java Community Process
- 108 Java 25
- 22.2K Java APIs
- 138.3K Java Development Tools
- 165.4K Java EE (Java Enterprise Edition)
- 22 Java Essentials
- 176 Java 8 Questions
- 86K Java Programming
- 82 Java Puzzle Ball
- 65.1K New To Java
- 1.7K Training / Learning / Certification
- 13.8K Java HotSpot Virtual Machine
- 94.3K Java SE
- 13.8K Java Security
- 208 Java User Groups
- 25 JavaScript - Nashorn
- Programs
- 667 LiveLabs
- 41 Workshops
- 10.3K Software
- 6.7K Berkeley DB Family
- 3.6K JHeadstart
- 6K Other Languages
- 2.3K Chinese
- 207 Deutsche Oracle Community
- 1.1K Español
- 1.9K Japanese
- 474 Portuguese
ora-01407 cannot update to null

Source table Data : ps_cts_iqn_empl_wo
EMPLID | Work_order_Id | Project_Id | Start_Dt | End_Dt | Standard_Rate | CTS_WO_OT_RATE | Vendor_ID |
570716 | 12456 | 530 | 11-Aug-19 | 31-Aug-19 | 10 | 15 | 45621 |
570716 | 12452 | 530 | 11-Aug-19 | 31-Aug-19 | 14 | 15 | 45621 |
570717 | 12451 | 210 | 10-AUG-19 | 13-AUG-19 | 15 | 18 | 43221 |
570717 | 12450 | 510 | 15-JUL-19 | 28-JUL-19 | 15 | 18 | 43221 |
570718 | 12451 | 510 | 15-Aug-19 | 28-Aug-19 | 15 | 18 | 43221 |
Target Table :
EMPLID | Project_Id | report_due_date | Work_order_Id | WO_End_Dt | WO_Standard_Rate | WO_OT_Rate | Vendor_id |
570716 | 530 | 14-Aug-19 | |||||
570716 | 530 | 13-Aug-19 | |||||
570717 | 510 | 14-Aug-19 |
Required Output :
case 1 :
----------
When employee id and project id matched and report_due_date falls between start_dt and end_dt. and more than one row present for this combination then i need to update max(work_order_id) row values in target.
Case 2 :
-------
When employee id and project id matched and report_due_date not falls between start_dt and end_dt. i need to fetch a maximum work_order_id row and Work_order_Id end_dt should be less than report_due_date.
EMPLID | Project_Id | report_due_date | Work_order_Id | End_Dt | Standard_Rate | CTS_WO_OT_RATE | Vendor_id |
570716 | 530 | 14-Aug-19 | 12456 | 31-Aug-19 | 10 | 15 | 45621 |
570716 | 530 | 13-Aug-19 | 12456 | 31-Aug-19 | 10 | 15 | 45621 |
570717 | 510 | 14-Aug-19 | 12451 | 13-Aug-19 | 15 | 18 | 43221 |
CREATE TABLE ps_cts_iqn_empl_wo (EMPLID VARCHAR2(11) NOT NULL, WORK_ORDER_ID VARCHAR2(15) NOT NULL, PROJECT_ID VARCHAR2(15) NOT NULL, START_DT DATE, END_DT DATE, STANDARD_RATE DECIMAL(15, 2) NULL, CTS_WO_OT_RATE DECIMAL(15, 2) NULL, VENDOR_ID VARCHAR2(10) NULL) ; Insert into ps_cts_iqn_empl_wo (EMPLID,WORK_ORDER_ID,PROJECT_ID,START_DT,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID) values ('570716','12456','530',to_date('11-AUG-2019','DD-MON-YYYY'),to_date('31-AUG-2019','DD-MON-YYYY'),10,15,'45621'); Insert into ps_cts_iqn_empl_wo (EMPLID,WORK_ORDER_ID,PROJECT_ID,START_DT,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID) values ('570716','12452','530',to_date('11-AUG-2019','DD-MON-YYYY'),to_date('31-AUG-2019','DD-MON-YYYY'),14,15,'45621'); Insert into ps_cts_iqn_empl_wo (EMPLID,WORK_ORDER_ID,PROJECT_ID,START_DT,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID) values ('570717','12451','510',to_date('10-AUG-2019','DD-MON-YYYY'),to_date('13-AUG-2019','DD-MON-YYYY'),15,18,'43221'); Insert into ps_cts_iqn_empl_wo (EMPLID,WORK_ORDER_ID,PROJECT_ID,START_DT,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID) values ('570717','12450','510',to_date('15-JUL-2019','DD-MON-YYYY'),to_date('28-JUL-2019','DD-MON-YYYY'),15,18,'43221'); Insert into ps_cts_iqn_empl_wo (EMPLID,WORK_ORDER_ID,PROJECT_ID,START_DT,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID) values ('570718','12451','510',to_date('15-AUG-2019','DD-MON-YYYY'),to_date('28-AUG-2019','DD-MON-YYYY'),15,18,'43221'); CREATE TABLE PS_CT_IQN_ACC_STG (EMPLID VARCHAR2(11) NOT NULL, PROJECT_ID VARCHAR2(15) NOT NULL, REPORT_DUE_DATE DATE, WORK_ORDER_ID VARCHAR2(15) NULL, END_DT DATE, STANDARD_RATE DECIMAL(15, 2) NULL, CTS_WO_OT_RATE DECIMAL(15, 2) NULL, VENDOR_ID VARCHAR2(10) NULL) Insert into PS_CT_IQN_ACC_STG (EMPLID,PROJECT_ID,REPORT_DUE_DATE,WORK_ORDER_ID,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID) values ('570716','530',to_date('14-AUG-2019','DD-MON-YYYY'),null,null,null,null,null);Insert into PS_CT_IQN_ACC_STG (EMPLID,PROJECT_ID,REPORT_DUE_DATE,WORK_ORDER_ID,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID) values ('570716','530',to_date('13-AUG-2019','DD-MON-YYYY'),null,null,null,null,null); Insert into PS_CT_IQN_ACC_STG (EMPLID,PROJECT_ID,REPORT_DUE_DATE,WORK_ORDER_ID,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID) values ('570717','510',to_date('14-AUG-2019','DD-MON-YYYY'),null,null,null,null,null);
Query
UPDATE PS_CT_IQN_ACC_STG stg
SET (Work_order_Id,End_Dt,Standard_Rate,CTS_WO_OT_Rate,Vendor_id) = (select Work_order_Id,End_Dt,Standard_Rate,CTS_WO_OT_RATE,Vendor_ID from ps_cts_iqn_empl_wo WO1
where WO1.Work_order_Id= (select max(Work_order_Id) from ps_cts_iqn_empl_wo WO where WO.EMPLID = STG.EMPLID
AND WO.project_id = STG.project_id and stg.report_due_date between WO.start_dt and WO.end_dt ))
Message was edited by: Vemula Muni
Best Answer
-
Hi,
Vemula Muni wrote:Source table Data : ps_cts_iqn_empl_woEMPLIDWork_order_IdProject_IdStart_DtEnd_DtStandard_RateCTS_WO_OT_RATEVendor_ID5707161245653011-Aug-1931-Aug-191015456215707161245253011-Aug-1931-Aug-191415456215707171245121010-AUG-1913-AUG-191518432215707171245051015-JUL-1928-JUL-191518432215707181245151015-Aug-1928-Aug-19151843221Target Table :EMPLIDProject_Idreport_due_dateWork_order_IdWO_End_DtWO_Standard_RateWO_OT_RateVendor_id57071653014-Aug-1957071751014-Aug-19Required Output :EMPLIDProject_Idreport_due_dateWork_order_IdEnd_DtStandard_RateCTS_WO_OT_RATE Vendor_id57071653014-Aug-191245631-Aug-1910154562157071751014-Aug-191245113-Aug-19151843221
- CREATETABLEps_cts_iqn_empl_wo(EMPLIDVARCHAR2(11)NOTNULL,
- WORK_ORDER_IDVARCHAR2(15)NOTNULL,
- PROJECT_IDVARCHAR2(15)NOTNULL,
- START_DTDATE,
- END_DTDATE,
- STANDARD_RATEDECIMAL(15,2)NULL,
- CTS_WO_OT_RATEDECIMAL(15,2)NULL,
- VENDOR_IDVARCHAR2(10)NULL);
- Insertintops_cts_iqn_empl_wo(EMPLID,WORK_ORDER_ID,PROJECT_ID,START_DT,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID)values('570716','12456','530',to_date('11-AUG-2019','DD-MON-YYYY'),to_date('31-AUG-2019','DD-MON-YYYY'),10,15,'45621');
- Insertintops_cts_iqn_empl_wo(EMPLID,WORK_ORDER_ID,PROJECT_ID,START_DT,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID)values('570716','12452','530',to_date('11-AUG-2019','DD-MON-YYYY'),to_date('31-AUG-2019','DD-MON-YYYY'),14,15,'45621');
- Insertintops_cts_iqn_empl_wo(EMPLID,WORK_ORDER_ID,PROJECT_ID,START_DT,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID)values('570717','12451','510',to_date('10-AUG-2019','DD-MON-YYYY'),to_date('13-AUG-2019','DD-MON-YYYY'),15,18,'43221');
- Insertintops_cts_iqn_empl_wo(EMPLID,WORK_ORDER_ID,PROJECT_ID,START_DT,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID)values('570717','12450','510',to_date('15-JUL-2019','DD-MON-YYYY'),to_date('28-JUL-2019','DD-MON-YYYY'),15,18,'43221');
- Insertintops_cts_iqn_empl_wo(EMPLID,WORK_ORDER_ID,PROJECT_ID,START_DT,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID)values('570718','12451','510',to_date('15-AUG-2019','DD-MON-YYYY'),to_date('28-AUG-2019','DD-MON-YYYY'),15,18,'43221');
- CREATETABLEPS_CT_IQN_ACC_STG(EMPLIDVARCHAR2(11)NOTNULL,
- PROJECT_IDVARCHAR2(15)NOTNULL,
- REPORT_DUE_DATEDATE,
- WORK_ORDER_IDVARCHAR2(15)NULL,
- END_DTDATE,
- STANDARD_RATEDECIMAL(15,2)NULL,
- CTS_WO_OT_RATEDECIMAL(15,2)NULL,
- VENDOR_IDVARCHAR2(10)NULL)
- InsertintoPS_CT_IQN_ACC_STG(EMPLID,PROJECT_ID,REPORT_DUE_DATE,WORK_ORDER_ID,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID)values('570716','530',to_date('14-AUG-2019','DD-MON-YYYY'),null,null,null,null,null);
- InsertintoPS_CT_IQN_ACC_STG(EMPLID,PROJECT_ID,REPORT_DUE_DATE,WORK_ORDER_ID,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID)values('570717','510',to_date('14-AUG-2019','DD-MON-YYYY'),null,null,null,null,null);
CREATE TABLE ps_cts_iqn_empl_wo (EMPLID VARCHAR2(11) NOT NULL, WORK_ORDER_ID VARCHAR2(15) NOT NULL, PROJECT_ID VARCHAR2(15) NOT NULL, START_DT DATE, END_DT DATE, STANDARD_RATE DECIMAL(15, 2) NULL, CTS_WO_OT_RATE DECIMAL(15, 2) NULL, VENDOR_ID VARCHAR2(10) NULL) ; Insert into ps_cts_iqn_empl_wo (EMPLID,WORK_ORDER_ID,PROJECT_ID,START_DT,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID) values ('570716','12456','530',to_date('11-AUG-2019','DD-MON-YYYY'),to_date('31-AUG-2019','DD-MON-YYYY'),10,15,'45621'); Insert into ps_cts_iqn_empl_wo (EMPLID,WORK_ORDER_ID,PROJECT_ID,START_DT,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID) values ('570716','12452','530',to_date('11-AUG-2019','DD-MON-YYYY'),to_date('31-AUG-2019','DD-MON-YYYY'),14,15,'45621'); Insert into ps_cts_iqn_empl_wo (EMPLID,WORK_ORDER_ID,PROJECT_ID,START_DT,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID) values ('570717','12451','510',to_date('10-AUG-2019','DD-MON-YYYY'),to_date('13-AUG-2019','DD-MON-YYYY'),15,18,'43221'); Insert into ps_cts_iqn_empl_wo (EMPLID,WORK_ORDER_ID,PROJECT_ID,START_DT,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID) values ('570717','12450','510',to_date('15-JUL-2019','DD-MON-YYYY'),to_date('28-JUL-2019','DD-MON-YYYY'),15,18,'43221'); Insert into ps_cts_iqn_empl_wo (EMPLID,WORK_ORDER_ID,PROJECT_ID,START_DT,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID) values ('570718','12451','510',to_date('15-AUG-2019','DD-MON-YYYY'),to_date('28-AUG-2019','DD-MON-YYYY'),15,18,'43221'); CREATE TABLE PS_CT_IQN_ACC_STG (EMPLID VARCHAR2(11) NOT NULL, PROJECT_ID VARCHAR2(15) NOT NULL, REPORT_DUE_DATE DATE, WORK_ORDER_ID VARCHAR2(15) NULL, END_DT DATE, STANDARD_RATE DECIMAL(15, 2) NULL, CTS_WO_OT_RATE DECIMAL(15, 2) NULL, VENDOR_ID VARCHAR2(10) NULL) Insert into PS_CT_IQN_ACC_STG (EMPLID,PROJECT_ID,REPORT_DUE_DATE,WORK_ORDER_ID,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID) values ('570716','530',to_date('14-AUG-2019','DD-MON-YYYY'),null,null,null,null,null); Insert into PS_CT_IQN_ACC_STG (EMPLID,PROJECT_ID,REPORT_DUE_DATE,WORK_ORDER_ID,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID) values ('570717','510',to_date('14-AUG-2019','DD-MON-YYYY'),null,null,null,null,null);
QueryUPDATE PS_CT_IQN_ACC_STG stgSET (Work_order_Id,WO_End_Dt,WO_Standard_Rate,WO_OT_Rate,Vendor_id) = (select Work_order_Id,End_Dt,Standard_Rate,CTS_WO_OT_RATE,Vendor_ID from ps_cts_iqn_empl_wo WO1where WO1.Work_order_Id= (select max(Work_order_Id) from ps_cts_iqn_empl_wo WO where WO.EMPLID = STG.EMPLIDAND WO.project_id = STG.project_id and stg.report_due_date between WO.start_dt and WO.end_dt ))
Thanks for posting the CREATE TABLE and INSERT statements. Don't forget to post your Oracle version.
When I run the UPDATE statement you posted with the sample data you posted, I get this error:
SET (Work_order_Id,WO_End_Dt,WO_Standard_Rate,WO_OT_Rate,Vendor_id) = (select Work_order_Id,End_Dt,Standard_Rate,CTS_WO_OT_RATE,Vendor_ID from ps_cts_iqn_empl_wo WO1 *ERROR at line 2:ORA-00904: "WO_OT_RATE": invalid identifier
There is a column called CTS_WO_OT_RATE, but not WO_OT_RATE.
Answers
-
Hi,
Vemula Muni wrote:Source table Data : ps_cts_iqn_empl_woEMPLIDWork_order_IdProject_IdStart_DtEnd_DtStandard_RateCTS_WO_OT_RATEVendor_ID5707161245653011-Aug-1931-Aug-191015456215707161245253011-Aug-1931-Aug-191415456215707171245121010-AUG-1913-AUG-191518432215707171245051015-JUL-1928-JUL-191518432215707181245151015-Aug-1928-Aug-19151843221Target Table :EMPLIDProject_Idreport_due_dateWork_order_IdWO_End_DtWO_Standard_RateWO_OT_RateVendor_id57071653014-Aug-1957071751014-Aug-19Required Output :EMPLIDProject_Idreport_due_dateWork_order_IdEnd_DtStandard_RateCTS_WO_OT_RATE Vendor_id57071653014-Aug-191245631-Aug-1910154562157071751014-Aug-191245113-Aug-19151843221
- CREATETABLEps_cts_iqn_empl_wo(EMPLIDVARCHAR2(11)NOTNULL,
- WORK_ORDER_IDVARCHAR2(15)NOTNULL,
- PROJECT_IDVARCHAR2(15)NOTNULL,
- START_DTDATE,
- END_DTDATE,
- STANDARD_RATEDECIMAL(15,2)NULL,
- CTS_WO_OT_RATEDECIMAL(15,2)NULL,
- VENDOR_IDVARCHAR2(10)NULL);
- Insertintops_cts_iqn_empl_wo(EMPLID,WORK_ORDER_ID,PROJECT_ID,START_DT,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID)values('570716','12456','530',to_date('11-AUG-2019','DD-MON-YYYY'),to_date('31-AUG-2019','DD-MON-YYYY'),10,15,'45621');
- Insertintops_cts_iqn_empl_wo(EMPLID,WORK_ORDER_ID,PROJECT_ID,START_DT,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID)values('570716','12452','530',to_date('11-AUG-2019','DD-MON-YYYY'),to_date('31-AUG-2019','DD-MON-YYYY'),14,15,'45621');
- Insertintops_cts_iqn_empl_wo(EMPLID,WORK_ORDER_ID,PROJECT_ID,START_DT,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID)values('570717','12451','510',to_date('10-AUG-2019','DD-MON-YYYY'),to_date('13-AUG-2019','DD-MON-YYYY'),15,18,'43221');
- Insertintops_cts_iqn_empl_wo(EMPLID,WORK_ORDER_ID,PROJECT_ID,START_DT,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID)values('570717','12450','510',to_date('15-JUL-2019','DD-MON-YYYY'),to_date('28-JUL-2019','DD-MON-YYYY'),15,18,'43221');
- Insertintops_cts_iqn_empl_wo(EMPLID,WORK_ORDER_ID,PROJECT_ID,START_DT,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID)values('570718','12451','510',to_date('15-AUG-2019','DD-MON-YYYY'),to_date('28-AUG-2019','DD-MON-YYYY'),15,18,'43221');
- CREATETABLEPS_CT_IQN_ACC_STG(EMPLIDVARCHAR2(11)NOTNULL,
- PROJECT_IDVARCHAR2(15)NOTNULL,
- REPORT_DUE_DATEDATE,
- WORK_ORDER_IDVARCHAR2(15)NULL,
- END_DTDATE,
- STANDARD_RATEDECIMAL(15,2)NULL,
- CTS_WO_OT_RATEDECIMAL(15,2)NULL,
- VENDOR_IDVARCHAR2(10)NULL)
- InsertintoPS_CT_IQN_ACC_STG(EMPLID,PROJECT_ID,REPORT_DUE_DATE,WORK_ORDER_ID,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID)values('570716','530',to_date('14-AUG-2019','DD-MON-YYYY'),null,null,null,null,null);
- InsertintoPS_CT_IQN_ACC_STG(EMPLID,PROJECT_ID,REPORT_DUE_DATE,WORK_ORDER_ID,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID)values('570717','510',to_date('14-AUG-2019','DD-MON-YYYY'),null,null,null,null,null);
CREATE TABLE ps_cts_iqn_empl_wo (EMPLID VARCHAR2(11) NOT NULL, WORK_ORDER_ID VARCHAR2(15) NOT NULL, PROJECT_ID VARCHAR2(15) NOT NULL, START_DT DATE, END_DT DATE, STANDARD_RATE DECIMAL(15, 2) NULL, CTS_WO_OT_RATE DECIMAL(15, 2) NULL, VENDOR_ID VARCHAR2(10) NULL) ; Insert into ps_cts_iqn_empl_wo (EMPLID,WORK_ORDER_ID,PROJECT_ID,START_DT,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID) values ('570716','12456','530',to_date('11-AUG-2019','DD-MON-YYYY'),to_date('31-AUG-2019','DD-MON-YYYY'),10,15,'45621'); Insert into ps_cts_iqn_empl_wo (EMPLID,WORK_ORDER_ID,PROJECT_ID,START_DT,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID) values ('570716','12452','530',to_date('11-AUG-2019','DD-MON-YYYY'),to_date('31-AUG-2019','DD-MON-YYYY'),14,15,'45621'); Insert into ps_cts_iqn_empl_wo (EMPLID,WORK_ORDER_ID,PROJECT_ID,START_DT,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID) values ('570717','12451','510',to_date('10-AUG-2019','DD-MON-YYYY'),to_date('13-AUG-2019','DD-MON-YYYY'),15,18,'43221'); Insert into ps_cts_iqn_empl_wo (EMPLID,WORK_ORDER_ID,PROJECT_ID,START_DT,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID) values ('570717','12450','510',to_date('15-JUL-2019','DD-MON-YYYY'),to_date('28-JUL-2019','DD-MON-YYYY'),15,18,'43221'); Insert into ps_cts_iqn_empl_wo (EMPLID,WORK_ORDER_ID,PROJECT_ID,START_DT,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID) values ('570718','12451','510',to_date('15-AUG-2019','DD-MON-YYYY'),to_date('28-AUG-2019','DD-MON-YYYY'),15,18,'43221'); CREATE TABLE PS_CT_IQN_ACC_STG (EMPLID VARCHAR2(11) NOT NULL, PROJECT_ID VARCHAR2(15) NOT NULL, REPORT_DUE_DATE DATE, WORK_ORDER_ID VARCHAR2(15) NULL, END_DT DATE, STANDARD_RATE DECIMAL(15, 2) NULL, CTS_WO_OT_RATE DECIMAL(15, 2) NULL, VENDOR_ID VARCHAR2(10) NULL) Insert into PS_CT_IQN_ACC_STG (EMPLID,PROJECT_ID,REPORT_DUE_DATE,WORK_ORDER_ID,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID) values ('570716','530',to_date('14-AUG-2019','DD-MON-YYYY'),null,null,null,null,null); Insert into PS_CT_IQN_ACC_STG (EMPLID,PROJECT_ID,REPORT_DUE_DATE,WORK_ORDER_ID,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID) values ('570717','510',to_date('14-AUG-2019','DD-MON-YYYY'),null,null,null,null,null);
QueryUPDATE PS_CT_IQN_ACC_STG stgSET (Work_order_Id,WO_End_Dt,WO_Standard_Rate,WO_OT_Rate,Vendor_id) = (select Work_order_Id,End_Dt,Standard_Rate,CTS_WO_OT_RATE,Vendor_ID from ps_cts_iqn_empl_wo WO1where WO1.Work_order_Id= (select max(Work_order_Id) from ps_cts_iqn_empl_wo WO where WO.EMPLID = STG.EMPLIDAND WO.project_id = STG.project_id and stg.report_due_date between WO.start_dt and WO.end_dt ))
Thanks for posting the CREATE TABLE and INSERT statements. Don't forget to post your Oracle version.
When I run the UPDATE statement you posted with the sample data you posted, I get this error:
SET (Work_order_Id,WO_End_Dt,WO_Standard_Rate,WO_OT_Rate,Vendor_id) = (select Work_order_Id,End_Dt,Standard_Rate,CTS_WO_OT_RATE,Vendor_ID from ps_cts_iqn_empl_wo WO1 *ERROR at line 2:ORA-00904: "WO_OT_RATE": invalid identifier
There is a column called CTS_WO_OT_RATE, but not WO_OT_RATE.
-
Hi @Frank Kulash, please find the modified query.
Query
UPDATE PS_CT_IQN_ACC_STG stg
SET (Work_order_Id,End_Dt,Standard_Rate,CTS_WO_OT_Rate,Vendor_id) = (select Work_order_Id,End_Dt,Standard_Rate,CTS_WO_OT_RATE,Vendor_ID from ps_cts_iqn_empl_wo WO1
where WO1.Work_order_Id= (select max(Work_order_Id) from ps_cts_iqn_empl_wo WO where WO.EMPLID = STG.EMPLID
AND WO.project_id = STG.project_id and stg.report_due_date between WO.start_dt and WO.end_dt ))
I hav -
I've just run the script you posted, adding a missing ";" to the second create table, and got no errors:
Can you show us where do you get the ORA-01407 error??
-
Hi @L. Fernigrini, when i am trying to execute below query I am getting that error.
Query
UPDATE PS_CT_IQN_ACC_STG stg
SET (Work_order_Id,End_Dt,Standard_Rate,CTS_WO_OT_Rate,Vendor_id) = (select Work_order_Id,End_Dt,Standard_Rate,CTS_WO_OT_RATE,Vendor_ID from ps_cts_iqn_empl_wo WO1
where WO1.Work_order_Id= (select max(Work_order_Id) from ps_cts_iqn_empl_wo WO where WO.EMPLID = STG.EMPLID
AND WO.project_id = STG.project_id and stg.report_due_date between WO.start_dt and WO.end_dt ))
I hav -
that's strange, with the sample data you posted, I'm not getting that error:
Can you show the entire script and it's output? Please post the entire error message.
Can you tell us full Oracle version (e.g., 11.2.0.4).
-
Hi,
I don't get any error, either. I suspect you're not running the statements you posted.
What is the difference between this problem and the one you posted earlier today:
? The solutions from that problem do what you requested in this problem, too.
-
Hi @L. Fernigrini, Could you please insert the below row to replicate the issue.
Insert into PS_CT_IQN_ACC_STG (EMPLID,PROJECT_ID,REPORT_DUE_DATE,WORK_ORDER_ID,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID) values ('570716','530',to_date('13-AUG-2019','DD-MON-YYYY'),null,null,null,null,null);
-
Hi,
Vemula Muni wrote:Hi L. Fernigrini, Could you please insert the below row to replicate the issue.Insert into PS_CT_IQN_ACC_STG (EMPLID,PROJECT_ID,REPORT_DUE_DATE,WORK_ORDER_ID,END_DT,STANDARD_RATE,CTS_WO_OT_RATE,VENDOR_ID) values ('570716','530',to_date('13-AUG-2019','DD-MON-YYYY'),null,null,null,null,null);
Is the new row in addition to the row that already has emplid='5070716', or instead of it?
Either way, I don't get any error when I run the UPDATE statement in reply #4.
ORA-01407 occurs when you try to set a NOT NULL column to NULL. The UPDATE statement you posted in reply #4 does not set any NOT NULL columns. If you're getting ORA-01407, then either your table or your UPDATE statement is different from what you said.
-
Still cannot reproduce the error.
Can you post the entire script that gives you error, and the output? And also include the database version. It "may" be some strange bug if you get that error message with the script you provided us.