Fórum Erro ao se criar uma view - Cannot transliterate... #50926
08/05/2005
0
Pessoal, por favor, preciso de ajuda.
Estou criando uma view conforme código abaixo. Ela é criada normalmente, porém, qdo vou abri-la, surge o famigerado erro de [b:dd918eccce]´Arithmetic overflow or division by zero has occurred.
arithmetic exception, numeric overflow, or string truncation.
Cannot transliterate character between character sets´[/b:dd918eccce].
O erro está ocorrendo devido aos campos MATERIAIS.DESC_MAT e CUSTOS.DESC_CUSTO.
A criação destes campos em suas respectivas tabelas, foi feita conforme este código:
DESC_CUSTO VARCHAR (30) CHARACTER SET NONE NOT NULL COLLATE NONE
DESC_MAT VARCHAR (60) CHARACTER SET NONE NOT NULL COLLATE NONE)
POR FAVOR, COMO CONTORNAR ESTE ERRO??? Muito obrigado!
CREATE VIEW RELANALITICOCUSTOS (
COD_CONSULT,
NOME_CONSULT,
COD_PROCED,
TEMPO_PROCED,
PERCENT_LUCRO_PROCED,
DESC_PROCED,
CUSTO_LAB,
COD_CUSTO,
COD_TIP_CUSTO,
DESC_TIP_CUSTO,
DESC_TIP_PROCED,
CONSUMO_DOSES,
MAT_CUSTO,
VLR_CUSTO)
AS
SELECT
CONSULTORIOS.COD_CONSULT,
CONSULTORIOS.NOME_CONSULT,
PROCEDIMENTOS.COD_PROCED,
PROCEDIMENTOS.TEMPO_PROCED,
PROCEDIMENTOS.PERCENT_LUCRO_PROCED,
PROCEDIMENTOS.DESC_PROCED,
PROCEDIMENTOS.CUSTO_LAB,
CUSTOS.COD_CUSTO,
CUSTOS.COD_TIP_CUSTO,
TIPOS_CUSTOS.DESC_TIP_CUSTO,
TIPOS_PROCED.DESC_TIP_PROCED,
PROCED_MAT.CONSUMO_DOSES,
CAST(MATERIAIS.DESC_MAT AS VARCHAR(60)) AS MAT_CUSTO,
CUSTOS.VLR_CUSTO
FROM
PROCEDIMENTOS
LEFT JOIN PROCED_MAT ON (PROCED_MAT.COD_PROCED = PROCEDIMENTOS.COD_PROCED)
LEFT JOIN MATERIAIS ON (MATERIAIS.COD_MAT = PROCED_MAT.COD_MAT)
LEFT JOIN TIPOS_PROCED ON (TIPOS_PROCED.COD_TIP_PROCED = PROCEDIMENTOS.COD_TIP_PROCED)
LEFT JOIN CONSULTORIOS ON (CONSULTORIOS.COD_CONSULT = PROCEDIMENTOS.COD_CONSULT)
LEFT JOIN PROCED_CUSTOS ON (PROCED_CUSTOS.COD_PROCED = PROCEDIMENTOS.COD_PROCED)
LEFT JOIN CUSTOS ON (CUSTOS.COD_CUSTO = PROCED_CUSTOS.COD_CUSTO)
LEFT JOIN TIPOS_CUSTOS ON (TIPOS_CUSTOS.COD_TIP_CUSTO = CUSTOS.COD_TIP_CUSTO)
UNION
SELECT
CONSULTORIOS.COD_CONSULT,
CONSULTORIOS.NOME_CONSULT,
PROCEDIMENTOS.COD_PROCED,
PROCEDIMENTOS.TEMPO_PROCED,
PROCEDIMENTOS.PERCENT_LUCRO_PROCED,
PROCEDIMENTOS.DESC_PROCED,
PROCEDIMENTOS.CUSTO_LAB,
CUSTOS.COD_CUSTO,
CUSTOS.COD_TIP_CUSTO,
TIPOS_CUSTOS.DESC_TIP_CUSTO,
TIPOS_PROCED.DESC_TIP_PROCED,
PROCED_MAT.CONSUMO_DOSES,
CAST(CUSTOS.DESC_CUSTO AS VARCHAR(60)) AS MAT_CUSTO,
CUSTOS.VLR_CUSTO
FROM
PROCEDIMENTOS
LEFT JOIN PROCED_MAT ON (PROCED_MAT.COD_PROCED = PROCEDIMENTOS.COD_PROCED)
LEFT JOIN MATERIAIS ON (MATERIAIS.COD_MAT = PROCED_MAT.COD_MAT)
LEFT JOIN TIPOS_PROCED ON (TIPOS_PROCED.COD_TIP_PROCED = PROCEDIMENTOS.COD_TIP_PROCED)
LEFT JOIN CONSULTORIOS ON (CONSULTORIOS.COD_CONSULT = PROCEDIMENTOS.COD_CONSULT)
LEFT JOIN PROCED_CUSTOS ON (PROCED_CUSTOS.COD_PROCED = PROCEDIMENTOS.COD_PROCED)
LEFT JOIN CUSTOS ON (CUSTOS.COD_CUSTO = PROCED_CUSTOS.COD_CUSTO)
LEFT JOIN TIPOS_CUSTOS ON (TIPOS_CUSTOS.COD_TIP_CUSTO = CUSTOS.COD_TIP_CUSTO)
;
Estou criando uma view conforme código abaixo. Ela é criada normalmente, porém, qdo vou abri-la, surge o famigerado erro de [b:dd918eccce]´Arithmetic overflow or division by zero has occurred.
arithmetic exception, numeric overflow, or string truncation.
Cannot transliterate character between character sets´[/b:dd918eccce].
O erro está ocorrendo devido aos campos MATERIAIS.DESC_MAT e CUSTOS.DESC_CUSTO.
A criação destes campos em suas respectivas tabelas, foi feita conforme este código:
DESC_CUSTO VARCHAR (30) CHARACTER SET NONE NOT NULL COLLATE NONE
DESC_MAT VARCHAR (60) CHARACTER SET NONE NOT NULL COLLATE NONE)
POR FAVOR, COMO CONTORNAR ESTE ERRO??? Muito obrigado!
CREATE VIEW RELANALITICOCUSTOS (
COD_CONSULT,
NOME_CONSULT,
COD_PROCED,
TEMPO_PROCED,
PERCENT_LUCRO_PROCED,
DESC_PROCED,
CUSTO_LAB,
COD_CUSTO,
COD_TIP_CUSTO,
DESC_TIP_CUSTO,
DESC_TIP_PROCED,
CONSUMO_DOSES,
MAT_CUSTO,
VLR_CUSTO)
AS
SELECT
CONSULTORIOS.COD_CONSULT,
CONSULTORIOS.NOME_CONSULT,
PROCEDIMENTOS.COD_PROCED,
PROCEDIMENTOS.TEMPO_PROCED,
PROCEDIMENTOS.PERCENT_LUCRO_PROCED,
PROCEDIMENTOS.DESC_PROCED,
PROCEDIMENTOS.CUSTO_LAB,
CUSTOS.COD_CUSTO,
CUSTOS.COD_TIP_CUSTO,
TIPOS_CUSTOS.DESC_TIP_CUSTO,
TIPOS_PROCED.DESC_TIP_PROCED,
PROCED_MAT.CONSUMO_DOSES,
CAST(MATERIAIS.DESC_MAT AS VARCHAR(60)) AS MAT_CUSTO,
CUSTOS.VLR_CUSTO
FROM
PROCEDIMENTOS
LEFT JOIN PROCED_MAT ON (PROCED_MAT.COD_PROCED = PROCEDIMENTOS.COD_PROCED)
LEFT JOIN MATERIAIS ON (MATERIAIS.COD_MAT = PROCED_MAT.COD_MAT)
LEFT JOIN TIPOS_PROCED ON (TIPOS_PROCED.COD_TIP_PROCED = PROCEDIMENTOS.COD_TIP_PROCED)
LEFT JOIN CONSULTORIOS ON (CONSULTORIOS.COD_CONSULT = PROCEDIMENTOS.COD_CONSULT)
LEFT JOIN PROCED_CUSTOS ON (PROCED_CUSTOS.COD_PROCED = PROCEDIMENTOS.COD_PROCED)
LEFT JOIN CUSTOS ON (CUSTOS.COD_CUSTO = PROCED_CUSTOS.COD_CUSTO)
LEFT JOIN TIPOS_CUSTOS ON (TIPOS_CUSTOS.COD_TIP_CUSTO = CUSTOS.COD_TIP_CUSTO)
UNION
SELECT
CONSULTORIOS.COD_CONSULT,
CONSULTORIOS.NOME_CONSULT,
PROCEDIMENTOS.COD_PROCED,
PROCEDIMENTOS.TEMPO_PROCED,
PROCEDIMENTOS.PERCENT_LUCRO_PROCED,
PROCEDIMENTOS.DESC_PROCED,
PROCEDIMENTOS.CUSTO_LAB,
CUSTOS.COD_CUSTO,
CUSTOS.COD_TIP_CUSTO,
TIPOS_CUSTOS.DESC_TIP_CUSTO,
TIPOS_PROCED.DESC_TIP_PROCED,
PROCED_MAT.CONSUMO_DOSES,
CAST(CUSTOS.DESC_CUSTO AS VARCHAR(60)) AS MAT_CUSTO,
CUSTOS.VLR_CUSTO
FROM
PROCEDIMENTOS
LEFT JOIN PROCED_MAT ON (PROCED_MAT.COD_PROCED = PROCEDIMENTOS.COD_PROCED)
LEFT JOIN MATERIAIS ON (MATERIAIS.COD_MAT = PROCED_MAT.COD_MAT)
LEFT JOIN TIPOS_PROCED ON (TIPOS_PROCED.COD_TIP_PROCED = PROCEDIMENTOS.COD_TIP_PROCED)
LEFT JOIN CONSULTORIOS ON (CONSULTORIOS.COD_CONSULT = PROCEDIMENTOS.COD_CONSULT)
LEFT JOIN PROCED_CUSTOS ON (PROCED_CUSTOS.COD_PROCED = PROCEDIMENTOS.COD_PROCED)
LEFT JOIN CUSTOS ON (CUSTOS.COD_CUSTO = PROCED_CUSTOS.COD_CUSTO)
LEFT JOIN TIPOS_CUSTOS ON (TIPOS_CUSTOS.COD_TIP_CUSTO = CUSTOS.COD_TIP_CUSTO)
;
Gleison_gomes
Curtir tópico
+ 0
Responder
Posts
15/05/2005
Aroldo Zanela
Colega,
Por estar utilizando UNION, todas as colunas devem possuir o mesmo tipo de dado e comprimento. Para resolver as discrepâncias entre os ´selects´ você pode utilizar o CAST.
Por estar utilizando UNION, todas as colunas devem possuir o mesmo tipo de dado e comprimento. Para resolver as discrepâncias entre os ´selects´ você pode utilizar o CAST.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)