我有一个简单(但很大)的插入命令,它给了我这个错误:
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
我错过了什么?
谢谢。
答案 0 :(得分:0)
检查是否:
实现此目标的最简单方法是使用Excel表格,在每个单元格中粘贴第一行列(包含其类型),在较低行上粘贴要插入的值。找出问题并解决它们。
答案 1 :(得分: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)