当前位置: 代码迷 >> Oracle开发 >> ora-01406:提取的列值被阶段,该如何处理
  详细解决方案

ora-01406:提取的列值被阶段,该如何处理

热度:90   发布时间:2016-04-24 06:33:58.0
ora-01406:提取的列值被阶段
错误 在29行, 不知道是什么问题引起的。   如果把游标的条件 减少两个字 又能正常运行 。 求大神解答疑惑
CREATE OR REPLACE PROCEDURE SP_BAS_SYS_POST as

  v_dept_id   varchar2(200); --部门id   pbs_hr_dept表
  v_duties_id varchar2(200); --职务id  bas_basic_duties 表
  CURSOR post_cursor IS
    select positionID,
           库存组织id,
           公司全称,
           职位代码,
           职位名称,
           职位类型code,
           职位类型,
           职位聘用状态,
           隶属部门id,
           隶属部门,
           隶属职务id,
           隶属职务,
           开始时间,
           终止时间,
           编制人数,
           职位序列大类,
           职位序列小类,
           岗位代码,
           岗位名称,
           岗位全称
      FROM all_company_post@to_erp
     where 职位名称 in ('重庆市天天物业管理有限公司行政人事部人事专员');
begin
  FOR data_C IN post_cursor LOOP

------解决思路----------------------
看你from的表应该是使用了dblink,对方的数据库是什么数据库,如果是oracle本身的表应该是不会出现这个问题的
------解决思路----------------------
ORA-01406: fetched column value was truncated
Cause: The fetched column values were truncated.
Action: Use the right data types to avoid truncation.


FOR data_C IN post_cursor LOOP后面,出现赋值语句了吧
检查变量定义的长度是否太小