ORA-01747: user.table.column, table.column 或列说明无效

insert into ECC_OC.SAP_TEMINAL
  (TEMINAL_ID,
   SALES_ORDER_TITLE_ID,
   PORT_START,
   PORT_END,
   EXPENSES,
   EXPENSES_TYPE,
   EXPENSES_US,
   EXPENSES_RATE,
   INSURANCE,
   CIF_PRICE,
   CIF_PRICE_SUM,
   CNF_PRICE,
   CNF_PRICE_SUM,
   ARRIVE_DATE,
   ETD_DATE,
   INVOICE_NO,
   BILL_NO,
   LC_LATE_DATE,
   CUSTOMS_DATE,
   LC_NO,
   SHIP_NAME,
   COMMISSION_PROPORTION,
   COMMISSION,
   SO_NO,
   BILL_DATE,
   CREATION_DATE,
   CREATED_BY_EMPLOYEE,
   CREATED_BY_DEPT,
   ENABLE_FLAG,
   LAST_UPDATE_DATE,
   LAST_UPDATED_BY_EMPLOYEE,
   LAST_UPDATED_BY_DEPT,
   ROLL_PLAN_NUMBER,
   PAYMENT_CODE,
   PAYMENT_AMOUNT,
   TEMINAL_STATUS,
   SPACE_BOOKED_CODE,
   SPACE_BOOKED_NAME,
   SHIPPING_ORDER_ITEM,
   BATCH_CODE,
   PACK_DESCRIPTION,
   ROWID)
values
  ('1077600',
   null,
   null,
   null,
   13911.1700,
   null,
   10693.5200,
   null,
   0.0000,
   0.0000,
   null,
   null,
   null,
   null,
   null,
   '1077600(H)',
   null,
   null,
   to_date('15-04-2015', 'dd-mm-yyyy'),
   null,
   '80',
   null,
   0.0000,
   null,
   to_date('15-04-2015', 'dd-mm-yyyy'),
   null,
   null,
   null,
   null,
   null,
   null,
   null,
   null,
   null,
   null,
   null,
   null,
   null,
   '5886',
   'B-KCE8',
   null,
   'AAAsxiAAJAAAz9jAAA');

这条语句在插入的时候会报标题所示的错误,原因是在添加进去的列中,有的列存在ORACL的关键字

利用下面的语句可以查询当前表中有哪些关键字字段

-- 查处当前表中的所有的关键字字段
select *
from v$reserved_words
where keyword
in(
select COLUMN_NAME
from all_tab_columns
where table_name = 'ECC_OC.SAP_TEMINAL' and owner='ECC_OC'
);

查询发现在上面语句插入的时候,将rowid也插入了,所以会报错

你可能感兴趣的:(table.column,数据库插入数据报错,或列说明无效,ORA-01747:)