-2

我有一个简单(但很大)的插入命令,它给了我这个错误:

ORA-00932: inconsistent dadatypes: expected NUMBER got DATE

这是插入:

INSERT INTO TB_SOLIC_COTACAO
(   NUM_SOLIC , 
    NUM_HIST_SOLIC , 
    COD_FILIAL , 
    COD_CORRETOR , 
    COD_ACCOUNT , 
    NUM_CGC_PROPON , 
    COD_RAMO , 
    COD_PRODUTO , 
    TIP_RAMO , 
    TIP_ENVIO , 
    COD_STATUS , 
    NUM_APOLICE_EMITIDA , 
    DT_EMISSAO , 
    DSC_LOCAL_ASSINAT , 
    DT_LOCAL_ASSINAT , 
    DT_ATUALIZ , 
    ID_USUARIO_ATUALIZ , 
    COD_MOTIVO_RECUSA , 
    DSC_COMPLEMENTO_MOTIVO_RECUSA, 
    NUM_PROPOSTA , 
    TIP_MOE_SOLIC , 
    VAL_LIMITE_APOLICE , 
    VAL_PMO_ESTIMADO , 
    COD_SUBSCRITOR , 
    DSC_EMAIL , 
    COD_SUB_LOCAL , 
    IND_RMO_CLAUSULA , 
    IND_VERIF_CRIVO , 
    TIP_SEGURO , 
    IND_BLOQUEIO_CORRETOR , 
    COD_ASSESSORIA , 
    DSC_EMAIL_ASSESSORIA , 
    DT_EMAIL_AVISO_COBRANCA , 
    IND_EXCLUSIVIDADE , 
    DT_EXCLUSIVIDADE , 
    COD_TIPO_USUARIO , 
    TIP_ENDOS , 
    TIP_MODAL_EMIS , 
    DSC_OBS_PARECER , 
    DSC_OBS_COTACAO
   )
     ( SELECT num_solic ,
              2 ,
              cod_filial ,
              cod_corretor ,
              cod_account ,
              num_cgc_propon ,
              cod_ramo ,
              cod_produto ,
              tip_ramo ,
              tip_envio ,
              3 ,
              num_apolice_emitida ,
              dt_emissao ,
              dsc_local_assinat ,
              dt_local_assinat ,
              SYSDATE ,
              17590 ,
              ' ' ,
              cod_motivo_recusa ,
              dsc_complemento_motivo_recusa ,
              num_proposta ,
              tip_moe_solic ,
              val_limite_apolice ,
              val_pmo_estimado ,
              cod_subscritor ,
              dsc_email ,
              cod_sub_local ,
              ind_rmo_clausula ,
              ind_verif_crivo ,
              tip_seguro ,
              ind_bloqueio_corretor ,
              cod_assessoria ,
              dsc_email_assessoria ,
              dt_email_aviso_cobranca ,
              ind_exclusividade ,
              dt_exclusividade ,
              cod_tipo_usuario,
              tip_endos,
              tip_modal_emis
              dsc_obs_parecer,
              dsc_obs_cotacao 
       FROM tb_solic_cotacao 
         WHERE num_solic = 93
                 AND num_hist_solic = 1 );

我知道这个错误意味着什么,我已经逐行检查了插入,但数据类型对我来说似乎没问题!真的不知道怎么回事。

这是表的定义:

NUM_SOLIC                     NOT NULL NUMBER(18)          
NUM_HIST_SOLIC                NOT NULL NUMBER(10)          
COD_FILIAL                             VARCHAR2(4 CHAR)    
COD_CORRETOR                           VARCHAR2(15 CHAR)   
COD_ACCOUNT                            VARCHAR2(15 CHAR)   
NUM_CGC_PROPON                NOT NULL NUMBER(18)          
COD_RAMO                      NOT NULL NUMBER(5)           
COD_PRODUTO                   NOT NULL NUMBER(5)           
TIP_RAMO                      NOT NULL CHAR(3 CHAR)        
TIP_ENVIO                     NOT NULL CHAR(1 CHAR)        
COD_STATUS                    NOT NULL NUMBER(5)           
NUM_APOLICE_EMITIDA                    VARCHAR2(30 CHAR)   
DT_EMISSAO                             DATE                
DSC_LOCAL_ASSINAT                      VARCHAR2(30 CHAR)   
DT_LOCAL_ASSINAT                       DATE                
DT_ATUALIZ                    NOT NULL DATE                
ID_USUARIO_ATUALIZ                     VARCHAR2(50 CHAR)   
COD_MOTIVO_RECUSA                      NUMBER(5)           
DSC_COMPLEMENTO_MOTIVO_RECUSA          VARCHAR2(100 CHAR)  
NUM_PROPOSTA                           VARCHAR2(20 CHAR)   
TIP_MOE_SOLIC                          CHAR(1 CHAR)        
VAL_LIMITE_APOLICE                     FLOAT(126)          
VAL_PMO_ESTIMADO                       FLOAT(126)          
COD_SUBSCRITOR                         VARCHAR2(15 CHAR)   
DSC_EMAIL                              VARCHAR2(2000 CHAR) 
COD_SUB_LOCAL                          VARCHAR2(4 CHAR)    
IND_RMO_CLAUSULA                       NUMBER(1)           
IND_VERIF_CRIVO                        NUMBER(1)           
TIP_SEGURO                             CHAR(3 CHAR)        
IND_BLOQUEIO_CORRETOR                  CHAR(1 CHAR)        
COD_ASSESSORIA                         NUMBER(10)          
DSC_EMAIL_ASSESSORIA                   VARCHAR2(2000 CHAR) 
DT_EMAIL_AVISO_COBRANCA                DATE                
IND_EXCLUSIVIDADE                      CHAR(1 CHAR)        
DT_EXCLUSIVIDADE                       DATE                
COD_TIPO_USUARIO                       NUMBER(5)           
TIP_ENDOS                              VARCHAR2(10 CHAR)   
TIP_MODAL_EMIS                         VARCHAR2(10 CHAR)   
DSC_OBS_PARECER                        CLOB                
DSC_OBS_COTACAO                        CLOB                

我错过了什么?

谢谢你。

4

2 回答 2

0

检查是否:

  • 列名和值列表中匹配的列数
  • 在每一行和每一列你都有一对

实现这一点的最简单方法是使用 Excel 表格,在其中将每个单元格中的列(及其类型)粘贴到第一行,在较低的行中粘贴要插入的值。找出问题并解决它们。

于 2013-10-11T18:17:36.493 回答
0

我认为最简单的方法是:

  DROP TABLE TB_SOLIC_COTACAO;

  Create TABLE TB_SOLIC_COTACAO as
  (SELECT num_solic ,
          2 as NUM_HIST_SOLIC,
          cod_filial ,
          cod_corretor ,
          cod_account ,
          num_cgc_propon ,
          cod_ramo ,
          cod_produto ,
          tip_ramo ,
          tip_envio ,
          3 as COD_STATUS,
          num_apolice_emitida ,
          dt_emissao ,
          dsc_local_assinat ,
          dt_local_assinat ,
          SYSDATE ,
          17590 as DT_ATUALIZ,
          ' ' as ID_USUARIO_ATUALIZ,
          cod_motivo_recusa ,
          dsc_complemento_motivo_recusa ,
          num_proposta ,
          tip_moe_solic ,
          val_limite_apolice ,
          val_pmo_estimado ,
          cod_subscritor ,
          dsc_email ,
          cod_sub_local ,
          ind_rmo_clausula ,
          ind_verif_crivo ,
          tip_seguro ,
          ind_bloqueio_corretor ,
          cod_assessoria ,
          dsc_email_assessoria ,
          dt_email_aviso_cobranca ,
          ind_exclusividade ,
          dt_exclusividade ,
          cod_tipo_usuario,
          tip_endos,
          tip_modal_emis
          dsc_obs_parecer,
          dsc_obs_cotacao 
   FROM tb_solic_cotacao 
     WHERE num_solic = 93
             AND num_hist_solic = 1)
于 2013-10-13T06:57:39.840 回答