insert into att_sch_emp_tmp(
COMPANYCODE, DIVISIONCODE, CATEGORYICSTABLECODE,
CATEGORYCODE, CATEGORYTYPE,CODE,
FACTORYCODE, DEPARTMENTDEPARTMENTCODE, SECTIONSECTIONICSTABLECODE,
SECTIONSECTIONCODE, MATYPEMACHINETYPEICSTABLECODE, MACHINETYPEMACHINETYPECODE,
MACHINENOMACHINENOICSTABLECODE, MACHINENOMACHINENOCODE, GRADEICSTABLECODE,
GRADECODE, CADREICSTABLECODE, CADRECODE,
DESGDESIGNATIONICSTABLECODE, DESGDESIGNATIONCODE, EMPROLECODE,
SUBCTGSUBCATEGORYICSTABLECODE, SUBCATEGORYSUBCATEGORYCODE, FROMDATE,
TODATE, CONFIRMATIONDATE, RESIGNDATE,
JOININGDATE, CREATIONTIMESTAMP, SERIAL,
COSTCENTERBADLICODE, HOLIDAYCODE, EFFECTIVEDATE,
SHIFTROTATIONCODE, WEEKLYOFF, FREQUENCY,
FREQUENCYDAYS
)
select COMPANYCODE, DIVISIONCODE, CATEGORYICSTABLECODE,
CATEGORYCODE, CATEGORYTYPE,CODE,
FACTORYCODE, DEPARTMENTDEPARTMENTCODE, SECTIONSECTIONICSTABLECODE,
SECTIONSECTIONCODE, MATYPEMACHINETYPEICSTABLECODE, MACHINETYPEMACHINETYPECODE,
MACHINENOMACHINENOICSTABLECODE, MACHINENOMACHINENOCODE, GRADEICSTABLECODE,
GRADECODE, CADREICSTABLECODE, CADRECODE,
DESGDESIGNATIONICSTABLECODE, DESGDESIGNATIONCODE, EMPROLECODE,
SUBCTGSUBCATEGORYICSTABLECODE, SUBCATEGORYSUBCATEGORYCODE, FROMDATE,
TODATE, CONFIRMATIONDATE, RESIGNDATE,
JOININGDATE, p_creationtimestamp, ROW_NUMBER() OVER from dual(),
' ', ' ', sysdate,
' ', 0, 0,
0
from employee
答案 0 :(得分:2)
没有分区的正确语法:
SELECT ......
ROW_NUMBER() OVER(ORDER BY 1)
FROM ...
如果您希望按部门或W / E划分,则:
SELECT ......
ROW_NUMBER() OVER(PARTITION BY YourColumn ORDER BY TheOrderColumn)
FROM ...
答案 1 :(得分:0)
双重声明不正确。 Dual是一个表,您需要指定如何计算row_number。你可能需要:
select COMPANYCODE, DIVISIONCODE, CATEGORYICSTABLECODE,
CATEGORYCODE, CATEGORYTYPE,CODE,
FACTORYCODE, DEPARTMENTDEPARTMENTCODE, SECTIONSECTIONICSTABLECODE,
SECTIONSECTIONCODE, MATYPEMACHINETYPEICSTABLECODE, MACHINETYPEMACHINETYPECODE,
MACHINENOMACHINENOICSTABLECODE, MACHINENOMACHINENOCODE, GRADEICSTABLECODE,
GRADECODE, CADREICSTABLECODE, CADRECODE,
DESGDESIGNATIONICSTABLECODE, DESGDESIGNATIONCODE, EMPROLECODE,
SUBCTGSUBCATEGORYICSTABLECODE, SUBCATEGORYSUBCATEGORYCODE, FROMDATE,
TODATE, CONFIRMATIONDATE, RESIGNDATE,
JOININGDATE, p_creationtimestamp, ROW_NUMBER() OVER (order by 1),
' ', ' ', sysdate,
' ', 0, 0,
0
from employee;
如果您只想要没有任何指定分区或订单的行号,则可以将ROW_NUMBER() OVER (order by 1)
替换为rownum
。或者,如果您想要某个指定的订单,请按照表示订单的列名替换1
。
此外,您需要注意,当您第二次执行插入时,SERIAL
将从1
重新开始。如果您需要唯一的号码,请
create sequence serial_seq start with 1 increment by 1;
并使用:
select COMPANYCODE, DIVISIONCODE, CATEGORYICSTABLECODE,
CATEGORYCODE, CATEGORYTYPE,CODE,
FACTORYCODE, DEPARTMENTDEPARTMENTCODE, SECTIONSECTIONICSTABLECODE,
SECTIONSECTIONCODE, MATYPEMACHINETYPEICSTABLECODE, MACHINETYPEMACHINETYPECODE,
MACHINENOMACHINENOICSTABLECODE, MACHINENOMACHINENOCODE, GRADEICSTABLECODE,
GRADECODE, CADREICSTABLECODE, CADRECODE,
DESGDESIGNATIONICSTABLECODE, DESGDESIGNATIONCODE, EMPROLECODE,
SUBCTGSUBCATEGORYICSTABLECODE, SUBCATEGORYSUBCATEGORYCODE, FROMDATE,
TODATE, CONFIRMATIONDATE, RESIGNDATE,
JOININGDATE, p_creationtimestamp, serial_seq.nextval,
' ', ' ', sysdate,
' ', 0, 0,
0
from employee;