Fórum Erro em SP : quot;... or string truncationquot; #56336
26/06/2006
0
tenho a seguinte SP :
CREATE PROCEDURE SELECT_CA0500( I_COD_COLABORADOR CHAR(15)) RETURNS ( C_COD_COLABORADOR CHAR(15), C_NOME_COLABORADOR VARCHAR(150), C_COD_FUNCAO CHAR(15), C_ENDERECO_COLABORADOR VARCHAR(100), C_COD_LOCAL CHAR(15), C_CEP_COLABORADOR CHAR(9), C_FONE_COLABORADOR CHAR(14), C_CEL_COLABORADOR CHAR(10), C_CPF_COLABORADOR CHAR(11), C_RG_COLABORADOR CHAR(15), C_PIS_COLABORADOR CHAR(13), C_CTPS_COLABORADOR CHAR(10), C_SERIE_CTPS_COLABORADOR CHAR(10), C_VLR_ALIMENTACAO_DIA FLOAT, C_VLR_TRANSPORTE_DIA FLOAT, C_VLR_REMUNERACAO_COLABORADOR FLOAT, C_CNH_COLABORADOR CHAR(11), C_CNH_CATEGORIA_COLABORADOR CHAR(2), C_CNH_VALIDADE_COLABORADOR DATE, C_DATA_ADMISSAO_COLABORADOR DATE, C_DATA_DEMISSAO_COLABORADOR DATE, C_CESTA_BASICA_COLABORADOR CHAR(1), C_TITULO_ELEITOR_COLABORADOR CHAR(15), C_TIPO_REMUNERACAO_COLABORADOR CHAR(1), C_COD_FORNECEDOR_COLABORADOR CHAR(15), C_PAGA_IMPLANTACAO_COLABORADOR CHAR(1), C_PAGA_PCT_FECHADO_COLABORADOR CHAR(1), C_PERC_PCT_FECHADO_COLABORADOR FLOAT, C_VLR_REMUNERACAO_SDF FLOAT, C_REGISTRO_AUTONOMO CHAR(10), C_COD_LOCAL_REGISTRO_AUTONOMO CHAR(15), C_REGISTRO_PROFISSIONAL CHAR(10), C_ENTID_REGISTRO_PROFISSIONAL CHAR(100), C_COD_OPCAO_RESERVADA CHAR(15), C_CARGA_HORARIA TIME, C_COD_ESTADO_CIVIL CHAR(15), C_JORNADA_INI TIME, C_JORNADA_FIM TIME, C_TEMPO_ALMOCO TIME, C_TEMPO_JANTAR TIME, C_TRABALHA_SABADO CHAR(1), C_JORNADA_INI_SABADO TIME, C_JORNADA_FIM_SABADO TIME, C_TEMPO_ALMOCO_SABADO TIME, C_TEMPO_JANTAR_SABADO TIME, C_TRABALHA_DOMINGO CHAR(1), C_JORNADA_INI_DOMINGO TIME, C_JORNADA_FIM_DOMINGO TIME, C_TEMPO_ALMOCO_DOMINGO TIME, C_TEMPO_JANTAR_DOMINGO TIME, C_DATA_NASC_COLABORADOR DATE, C_ADICIONAL_NOTURNO CHAR(1), C_FAIXA_ADICIONAL_NOTURNO CHAR(3), C_PERICULOSIDADE CHAR(1), C_FAIXA_PERICULOSIDADE CHAR(3), C_EMAIL_COLABORADOR VARCHAR(100), C_CONTA_COLABORADOR VARCHAR(20), C_COD_BANCO CHAR(4), C_AGENCIA VARCHAR(10), C_TIPO_CONTA_COLABORADOR CHAR(1), C_COD_GRAU_INSTRUCAO CHAR(15), C_COD_NACIONALIDADE CHAR(15), C_FORMA_REMUNERACAO_COLABORADOR CHAR(1), C_ESTABILIDADE_COLABORADOR CHAR(1), C_AFASTAMENTO_COLABORADOR CHAR(1), C_DESC_OPCAO_RESERVADA VARCHAR(100), C_NOME_FRN VARCHAR(100), C_COD_AFASTAMENTO CHAR(15), C_DESC_FUNCAO VARCHAR(100), C_DATA_PAG_VT VARCHAR(4), C_PERC_ADIANTAMENTO FLOAT) AS begin for select CA0500.C_COD_COLABORADOR, CA0500.C_NOME_COLABORADOR, CA0500.C_COD_FUNCAO, CA0500.C_ENDERECO_COLABORADOR, CA0500.C_COD_LOCAL, CA0500.C_CEP_COLABORADOR, CA0500.C_FONE_COLABORADOR, CA0500.C_JORNADA_INI, CA0500.C_JORNADA_FIM, CA0500.C_CARGA_HORARIA, CA0500.C_TRABALHA_SABADO, CA0500.C_JORNADA_INI_SABADO, CA0500.C_JORNADA_FIM_SABADO, CA0500.C_TEMPO_ALMOCO_SABADO, C_TEMPO_JANTAR_SABADO, CA0500.C_TRABALHA_DOMINGO, CA0500.C_JORNADA_INI_DOMINGO, CA0500.C_JORNADA_FIM_DOMINGO, CA0500.C_TEMPO_ALMOCO_DOMINGO, CA0500.C_TEMPO_JANTAR_DOMINGO, CA0500.C_CEL_COLABORADOR, CA0500.C_CPF_COLABORADOR, CA0500.C_COD_ESTADO_CIVIL, CA0500.C_DATA_NASC_COLABORADOR, CA0500.C_ADICIONAL_NOTURNO, CA0500.C_FAIXA_ADICIONAL_NOTURNO, CA0500.C_PERICULOSIDADE, CA0500.C_FAIXA_PERICULOSIDADE, CA0500.C_DATA_PAG_VT, CA0500.C_PERC_ADIANTAMENTO, CA0500.C_RG_COLABORADOR, CA0500.C_PIS_COLABORADOR, CA0500.C_CTPS_COLABORADOR, CA0500.C_SERIE_CTPS_COLABORADOR, CA0500.C_VLR_ALIMENTACAO_DIA, CA0500.C_VLR_TRANSPORTE_DIA, CA0500.C_TEMPO_ALMOCO, CA0500.C_TEMPO_JANTAR, CA0500.C_VLR_REMUNERACAO_COLABORADOR, CA0500.C_CNH_COLABORADOR, CA0500.C_CNH_CATEGORIA_COLABORADOR, CA0500.C_CNH_VALIDADE_COLABORADOR, CA0500.C_DATA_ADMISSAO_COLABORADOR, CA0500.C_DATA_DEMISSAO_COLABORADOR, CA0500.C_CESTA_BASICA_COLABORADOR, CA0500.C_TITULO_ELEITOR_COLABORADOR, CA0500.C_TIPO_REMUNERACAO_COLABORADOR, CA0500.C_COD_FORNECEDOR_COLABORADOR, CA0500.C_PAGA_IMPLANTACAO_COLABORADOR, CA0500.C_PAGA_PCT_FECHADO_COLABORADOR, CA0500.C_PERC_PCT_FECHADO_COLABORADOR, CA0500.C_VLR_REMUNERACAO_SDF, CA0500.C_REGISTRO_AUTONOMO, CA0500.C_COD_LOCAL_REGISTRO_AUTONOMO, CA0500.C_REGISTRO_PROFISSIONAL, CA0500.C_ENTID_REGISTRO_PROFISSIONAL, CA0500.C_COD_OPCAO_RESERVADA, CA0500.C_EMAIL_COLABORADOR, CA0500.C_CONTA_COLABORADOR, CA0500.C_COD_BANCO, CA0500.C_AGENCIA, CA0500.C_TIPO_CONTA_COLABORADOR, CA0500.C_COD_GRAU_INSTRUCAO, CA0500.C_COD_NACIONALIDADE, CA0500.C_FORMA_REMUNERACAO_COLABORADOR, CA0500.C_ESTABILIDADE_COLABORADOR, CA0500.C_AFASTAMENTO_COLABORADOR, CA0500.C_COD_AFASTAMENTO, OP0100.C_DESC_OPCAO_RESERVADA, CA0700.C_DESC_FUNCAO, FR0100.C_NOME_FRN from CA0500, CA0700, FR0100, OP0100 where CA0500.C_COD_FUNCAO = CA0700.C_COD_FUNCAO and CA0500.C_COD_FORNECEDOR_COLABORADOR = FR0100.C_COD_FRN and CA0500.C_COD_OPCAO_RESERVADA = OP0100.C_COD_OPCAO_RESERVADA and CA0500.C_COD_COLABORADOR = :I_COD_COLABORADOR into :C_COD_COLABORADOR, :C_NOME_COLABORADOR, :C_COD_FUNCAO, :C_ENDERECO_COLABORADOR, :C_COD_LOCAL, :C_CEP_COLABORADOR, :C_FONE_COLABORADOR, :C_CEL_COLABORADOR, :C_CPF_COLABORADOR, :C_RG_COLABORADOR, :C_PIS_COLABORADOR, :C_CTPS_COLABORADOR, :C_SERIE_CTPS_COLABORADOR, :C_VLR_ALIMENTACAO_DIA, :C_VLR_TRANSPORTE_DIA, :C_VLR_REMUNERACAO_COLABORADOR, :C_CNH_COLABORADOR, :C_CNH_CATEGORIA_COLABORADOR, :C_CNH_VALIDADE_COLABORADOR, :C_DATA_ADMISSAO_COLABORADOR, :C_DATA_DEMISSAO_COLABORADOR, :C_CESTA_BASICA_COLABORADOR, :C_TITULO_ELEITOR_COLABORADOR, :C_TIPO_REMUNERACAO_COLABORADOR, :C_COD_FORNECEDOR_COLABORADOR, :C_PAGA_IMPLANTACAO_COLABORADOR, :C_PAGA_PCT_FECHADO_COLABORADOR, :C_PERC_PCT_FECHADO_COLABORADOR, :C_VLR_REMUNERACAO_SDF, :C_REGISTRO_AUTONOMO, :C_COD_LOCAL_REGISTRO_AUTONOMO, :C_REGISTRO_PROFISSIONAL, :C_ENTID_REGISTRO_PROFISSIONAL, :C_COD_OPCAO_RESERVADA, :C_CARGA_HORARIA, :C_COD_ESTADO_CIVIL, :C_JORNADA_INI, :C_JORNADA_FIM, :C_TEMPO_ALMOCO, :C_TEMPO_JANTAR, :C_TRABALHA_SABADO, :C_JORNADA_INI_SABADO, :C_JORNADA_FIM_SABADO, :C_TEMPO_ALMOCO_SABADO, :C_TEMPO_JANTAR_SABADO, :C_TRABALHA_DOMINGO, :C_JORNADA_INI_DOMINGO, :C_JORNADA_FIM_DOMINGO, :C_TEMPO_ALMOCO_DOMINGO, :C_TEMPO_JANTAR_DOMINGO, :C_DATA_NASC_COLABORADOR, :C_ADICIONAL_NOTURNO, :C_FAIXA_ADICIONAL_NOTURNO, :C_PERICULOSIDADE, :C_FAIXA_PERICULOSIDADE, :C_EMAIL_COLABORADOR, :C_CONTA_COLABORADOR, :C_COD_BANCO, :C_AGENCIA, :C_TIPO_CONTA_COLABORADOR, :C_COD_GRAU_INSTRUCAO, :C_COD_NACIONALIDADE, :C_FORMA_REMUNERACAO_COLABORADOR, :C_ESTABILIDADE_COLABORADOR, :C_AFASTAMENTO_COLABORADOR, :C_COD_AFASTAMENTO, :C_DATA_PAG_VT, :C_PERC_ADIANTAMENTO, :C_DESC_OPCAO_RESERVADA, :C_DESC_FUNCAO, :C_NOME_FRN do suspend; end
está retornando o seguinte erro :
´Arithmetic overflow or division by zero has ocurred. Arithmetic exception, numeric overflow, or string truncation´.
Eu sei que este erro pode acontecer por vários motivos, entre eles um campo estar recebendo dados maiores que o suportado, ou indicado..
mas acontece que os tamanhos na SP, são exatos como os do banco de dados... e este select quando executado fora da SP retorna os dados corretamente.
O quê pode estar acontecendo ???????????
Agradeço a todos antecipadamente.
Cabelo
Curtir tópico
+ 0Posts
27/06/2006
Edilcimar
Gostei + 0
27/06/2006
Cabelo
Eu utilizo Charset = WIN1252
e Collate = PXW_INTL850
este select sem SP funciona perfeitamente... já ´roda´ assim...
só dá erro quando eu faço o select na SP...
Tem idéia do que está acontecendo???
grato pela atenção
Gostei + 0
04/07/2006
Cabelo
a SP do select permanece com o erro... e agora... todas... mas todas as SP de INSERT estão dando o mesmo erro... o problema é que são INSERTs siples... :
a SP F_Zeros retorna uma string com zeros á esquerda...
o que está errado???
Gostei + 0
04/07/2006
Emerson Nascimento
CREATE PROCEDURE INSERT_OS0300( I_COD_OS CHAR(15), I_COD_INSUMO CHAR(15), I_QTD FLOAT) RETURNS ( C_SEQ CHAR(4)) AS DECLARE VARIABLE V_SEQ CHAR(4); begin select coalesce(MAX(C_SEQ), 0) from OS0300 where C_COD_OS = ´´|| : I_COD_OS ||´´ into :C_SEQ; select C_RESULTADO from F_Zeros(:C_SEQ, 1, 4) into :V_SEQ; insert into OS0300(C_COD_OS, C_SEQ, C_COD_INSUMO, C_QTD) values (:I_COD_OS, :V_SEQ, :I_COD_INSUMO, :I_QTD); end
Gostei + 0
04/07/2006
Cabelo
o q pode ser????
Gostei + 0
04/07/2006
Emerson Nascimento
CREATE PROCEDURE INSERT_OS0300( I_COD_OS CHAR(15), I_COD_INSUMO CHAR(15), I_QTD FLOAT) RETURNS ( C_SEQ CHAR(4)) AS DECLARE VARIABLE V_SEQ CHAR(4); begin select coalesce(MAX(C_SEQ), ´´) from OS0300 where C_COD_OS = : I_COD_OS into :C_SEQ; select C_RESULTADO from F_Zeros(:C_SEQ, 1, 4) into :V_SEQ; insert into OS0300(C_COD_OS, C_SEQ, C_COD_INSUMO, C_QTD) values (:I_COD_OS, :V_SEQ, :I_COD_INSUMO, :I_QTD); end
além de alterar a stored procedure de modo a ficar como o exemplo acima, verifique se os campos comportam o conteúdo que você está tentando gravar. a mensagem, além da informação do edilcimar, também significa que você está tentando gravar um valor num campo/variável que não o comporta.
Gostei + 0
05/07/2006
Cabelo
o problema foi solucionado
na Table o C_SEQ é um Char(3) e estava tentando gravar Char(4)..
affff.... :( erro primário... desculpa aê..
mas o primeiro select ainda está dando erro..
e já percorri a SP e a table juntas... mas o erro persiste.. sabe o pq?
Gostei + 0
05/07/2006
Emerson Nascimento
Gostei + 0
05/07/2006
Cabelo
CREATE PROCEDURE SELECT_CA0500( I_COD_COLABORADOR CHAR(15)) RETURNS ( C_COD_COLABORADOR CHAR(15), C_NOME_COLABORADOR VARCHAR(150), C_COD_FUNCAO CHAR(15), C_ENDERECO_COLABORADOR VARCHAR(100), C_COD_LOCAL CHAR(15), C_CEP_COLABORADOR CHAR(9), C_FONE_COLABORADOR CHAR(14), C_CEL_COLABORADOR CHAR(10), C_CPF_COLABORADOR CHAR(11), C_RG_COLABORADOR CHAR(15), C_PIS_COLABORADOR CHAR(13), C_CTPS_COLABORADOR CHAR(10), C_SERIE_CTPS_COLABORADOR CHAR(10), C_VLR_ALIMENTACAO_DIA FLOAT, C_VLR_TRANSPORTE_DIA FLOAT, C_VLR_REMUNERACAO_COLABORADOR FLOAT, C_CNH_COLABORADOR CHAR(11), C_CNH_CATEGORIA_COLABORADOR CHAR(2), C_CNH_VALIDADE_COLABORADOR DATE, C_DATA_ADMISSAO_COLABORADOR DATE, C_DATA_DEMISSAO_COLABORADOR DATE, C_CESTA_BASICA_COLABORADOR CHAR(1), C_TITULO_ELEITOR_COLABORADOR CHAR(15), C_TIPO_REMUNERACAO_COLABORADOR CHAR(1), C_COD_FORNECEDOR_COLABORADOR CHAR(15), C_PAGA_IMPLANTACAO_COLABORADOR CHAR(1), C_PAGA_PCT_FECHADO_COLABORADOR CHAR(1), C_PERC_PCT_FECHADO_COLABORADOR FLOAT, C_VLR_REMUNERACAO_SDF FLOAT, C_REGISTRO_AUTONOMO CHAR(10), C_COD_LOCAL_REGISTRO_AUTONOMO CHAR(15), C_REGISTRO_PROFISSIONAL CHAR(10), C_ENTID_REGISTRO_PROFISSIONAL CHAR(100), C_COD_OPCAO_RESERVADA CHAR(15), C_CARGA_HORARIA TIME, C_COD_ESTADO_CIVIL CHAR(15), C_JORNADA_INI TIME, C_JORNADA_FIM TIME, C_TEMPO_ALMOCO TIME, C_TEMPO_JANTAR TIME, C_TRABALHA_SABADO CHAR(1), C_JORNADA_INI_SABADO TIME, C_JORNADA_FIM_SABADO TIME, C_TEMPO_ALMOCO_SABADO TIME, C_TEMPO_JANTAR_SABADO TIME, C_TRABALHA_DOMINGO CHAR(1), C_JORNADA_INI_DOMINGO TIME, C_JORNADA_FIM_DOMINGO TIME, C_TEMPO_ALMOCO_DOMINGO TIME, C_TEMPO_JANTAR_DOMINGO TIME, C_DATA_NASC_COLABORADOR DATE, C_ADICIONAL_NOTURNO CHAR(1), C_FAIXA_ADICIONAL_NOTURNO CHAR(3), C_PERICULOSIDADE CHAR(1), C_FAIXA_PERICULOSIDADE CHAR(3), C_EMAIL_COLABORADOR VARCHAR(100), C_CONTA_COLABORADOR VARCHAR(20), C_COD_BANCO CHAR(4), C_AGENCIA VARCHAR(10), C_TIPO_CONTA_COLABORADOR CHAR(1), C_COD_GRAU_INSTRUCAO CHAR(15), C_COD_NACIONALIDADE CHAR(15), C_FORMA_REMUNERACAO_COLABORADOR CHAR(1), C_ESTABILIDADE_COLABORADOR CHAR(1), C_AFASTAMENTO_COLABORADOR CHAR(1), C_DESC_OPCAO_RESERVADA VARCHAR(100), C_NOME_FRN VARCHAR(100), C_COD_AFASTAMENTO CHAR(15), C_DESC_FUNCAO VARCHAR(100), C_DATA_PAG_VT VARCHAR(4), C_PERC_ADIANTAMENTO FLOAT) AS begin for select CA0500.C_COD_COLABORADOR, CA0500.C_NOME_COLABORADOR, CA0500.C_COD_FUNCAO, CA0500.C_ENDERECO_COLABORADOR, CA0500.C_COD_LOCAL, CA0500.C_CEP_COLABORADOR, CA0500.C_FONE_COLABORADOR, CA0500.C_JORNADA_INI, CA0500.C_JORNADA_FIM, CA0500.C_CARGA_HORARIA, CA0500.C_TRABALHA_SABADO, CA0500.C_JORNADA_INI_SABADO, CA0500.C_JORNADA_FIM_SABADO, CA0500.C_TEMPO_ALMOCO_SABADO, C_TEMPO_JANTAR_SABADO, CA0500.C_TRABALHA_DOMINGO, CA0500.C_JORNADA_INI_DOMINGO, CA0500.C_JORNADA_FIM_DOMINGO, CA0500.C_TEMPO_ALMOCO_DOMINGO, CA0500.C_TEMPO_JANTAR_DOMINGO, CA0500.C_CEL_COLABORADOR, CA0500.C_CPF_COLABORADOR, CA0500.C_COD_ESTADO_CIVIL, CA0500.C_DATA_NASC_COLABORADOR, CA0500.C_ADICIONAL_NOTURNO, CA0500.C_FAIXA_ADICIONAL_NOTURNO, CA0500.C_PERICULOSIDADE, CA0500.C_FAIXA_PERICULOSIDADE, CA0500.C_DATA_PAG_VT, CA0500.C_PERC_ADIANTAMENTO, CA0500.C_RG_COLABORADOR, CA0500.C_PIS_COLABORADOR, CA0500.C_CTPS_COLABORADOR, CA0500.C_SERIE_CTPS_COLABORADOR, CA0500.C_VLR_ALIMENTACAO_DIA, CA0500.C_VLR_TRANSPORTE_DIA, CA0500.C_TEMPO_ALMOCO, CA0500.C_TEMPO_JANTAR, CA0500.C_VLR_REMUNERACAO_COLABORADOR, CA0500.C_CNH_COLABORADOR, CA0500.C_CNH_CATEGORIA_COLABORADOR, CA0500.C_CNH_VALIDADE_COLABORADOR, CA0500.C_DATA_ADMISSAO_COLABORADOR, CA0500.C_DATA_DEMISSAO_COLABORADOR, CA0500.C_CESTA_BASICA_COLABORADOR, CA0500.C_TITULO_ELEITOR_COLABORADOR, CA0500.C_TIPO_REMUNERACAO_COLABORADOR, CA0500.C_COD_FORNECEDOR_COLABORADOR, CA0500.C_PAGA_IMPLANTACAO_COLABORADOR, CA0500.C_PAGA_PCT_FECHADO_COLABORADOR, CA0500.C_PERC_PCT_FECHADO_COLABORADOR, CA0500.C_VLR_REMUNERACAO_SDF, CA0500.C_REGISTRO_AUTONOMO, CA0500.C_COD_LOCAL_REGISTRO_AUTONOMO, CA0500.C_REGISTRO_PROFISSIONAL, CA0500.C_ENTID_REGISTRO_PROFISSIONAL, CA0500.C_COD_OPCAO_RESERVADA, CA0500.C_EMAIL_COLABORADOR, CA0500.C_CONTA_COLABORADOR, CA0500.C_COD_BANCO, CA0500.C_AGENCIA, CA0500.C_TIPO_CONTA_COLABORADOR, CA0500.C_COD_GRAU_INSTRUCAO, CA0500.C_COD_NACIONALIDADE, CA0500.C_FORMA_REMUNERACAO_COLABORADOR, CA0500.C_ESTABILIDADE_COLABORADOR, CA0500.C_AFASTAMENTO_COLABORADOR, CA0500.C_COD_AFASTAMENTO, OP0100.C_DESC_OPCAO_RESERVADA, CA0700.C_DESC_FUNCAO, FR0100.C_NOME_FRN from CA0500, CA0700, FR0100, OP0100 where CA0500.C_COD_FUNCAO = CA0700.C_COD_FUNCAO and CA0500.C_COD_FORNECEDOR_COLABORADOR = FR0100.C_COD_FRN and CA0500.C_COD_OPCAO_RESERVADA = OP0100.C_COD_OPCAO_RESERVADA and CA0500.C_COD_COLABORADOR = :I_COD_COLABORADOR into :C_COD_COLABORADOR, :C_NOME_COLABORADOR, :C_COD_FUNCAO, :C_ENDERECO_COLABORADOR, :C_COD_LOCAL, :C_CEP_COLABORADOR, :C_FONE_COLABORADOR, :C_CEL_COLABORADOR, :C_CPF_COLABORADOR, :C_RG_COLABORADOR, :C_PIS_COLABORADOR, :C_CTPS_COLABORADOR, :C_SERIE_CTPS_COLABORADOR, :C_VLR_ALIMENTACAO_DIA, :C_VLR_TRANSPORTE_DIA, :C_VLR_REMUNERACAO_COLABORADOR, :C_CNH_COLABORADOR, :C_CNH_CATEGORIA_COLABORADOR, :C_CNH_VALIDADE_COLABORADOR, :C_DATA_ADMISSAO_COLABORADOR, :C_DATA_DEMISSAO_COLABORADOR, :C_CESTA_BASICA_COLABORADOR, :C_TITULO_ELEITOR_COLABORADOR, :C_TIPO_REMUNERACAO_COLABORADOR, :C_COD_FORNECEDOR_COLABORADOR, :C_PAGA_IMPLANTACAO_COLABORADOR, :C_PAGA_PCT_FECHADO_COLABORADOR, :C_PERC_PCT_FECHADO_COLABORADOR, :C_VLR_REMUNERACAO_SDF, :C_REGISTRO_AUTONOMO, :C_COD_LOCAL_REGISTRO_AUTONOMO, :C_REGISTRO_PROFISSIONAL, :C_ENTID_REGISTRO_PROFISSIONAL, :C_COD_OPCAO_RESERVADA, :C_CARGA_HORARIA, :C_COD_ESTADO_CIVIL, :C_JORNADA_INI, :C_JORNADA_FIM, :C_TEMPO_ALMOCO, :C_TEMPO_JANTAR, :C_TRABALHA_SABADO, :C_JORNADA_INI_SABADO, :C_JORNADA_FIM_SABADO, :C_TEMPO_ALMOCO_SABADO, :C_TEMPO_JANTAR_SABADO, :C_TRABALHA_DOMINGO, :C_JORNADA_INI_DOMINGO, :C_JORNADA_FIM_DOMINGO, :C_TEMPO_ALMOCO_DOMINGO, :C_TEMPO_JANTAR_DOMINGO, :C_DATA_NASC_COLABORADOR, :C_ADICIONAL_NOTURNO, :C_FAIXA_ADICIONAL_NOTURNO, :C_PERICULOSIDADE, :C_FAIXA_PERICULOSIDADE, :C_EMAIL_COLABORADOR, :C_CONTA_COLABORADOR, :C_COD_BANCO, :C_AGENCIA, :C_TIPO_CONTA_COLABORADOR, :C_COD_GRAU_INSTRUCAO, :C_COD_NACIONALIDADE, :C_FORMA_REMUNERACAO_COLABORADOR, :C_ESTABILIDADE_COLABORADOR, :C_AFASTAMENTO_COLABORADOR, :C_COD_AFASTAMENTO, :C_DATA_PAG_VT, :C_PERC_ADIANTAMENTO, :C_DESC_OPCAO_RESERVADA, :C_DESC_FUNCAO, :C_NOME_FRN do suspend; end
O do início do tópico...
Gostei + 0
05/07/2006
Emerson Nascimento
Gostei + 0
05/07/2006
Cabelo
CA0500
CA0700
FR0100
OP0100
Agradeço muito sua atenção...
Gostei + 0
05/07/2006
Emerson Nascimento
create view vwSELECT_CA0500 ( C_COD_COLABORADOR, C_NOME_COLABORADOR, C_COD_FUNCAO, C_ENDERECO_COLABORADOR, C_COD_LOCAL, C_CEP_COLABORADOR, C_FONE_COLABORADOR, C_JORNADA_INI, C_JORNADA_FIM, C_CARGA_HORARIA, C_TRABALHA_SABADO, C_JORNADA_INI_SABADO, C_JORNADA_FIM_SABADO, C_TEMPO_ALMOCO_SABADO, C_TEMPO_JANTAR_SABADO, C_TRABALHA_DOMINGO, C_JORNADA_INI_DOMINGO, C_JORNADA_FIM_DOMINGO, C_TEMPO_ALMOCO_DOMINGO, C_TEMPO_JANTAR_DOMINGO, C_CEL_COLABORADOR, C_CPF_COLABORADOR, C_COD_ESTADO_CIVIL, C_DATA_NASC_COLABORADOR, C_ADICIONAL_NOTURNO, C_FAIXA_ADICIONAL_NOTURNO, C_PERICULOSIDADE, C_FAIXA_PERICULOSIDADE, C_DATA_PAG_VT, C_PERC_ADIANTAMENTO, C_RG_COLABORADOR, C_PIS_COLABORADOR, C_CTPS_COLABORADOR, C_SERIE_CTPS_COLABORADOR, C_VLR_ALIMENTACAO_DIA, C_VLR_TRANSPORTE_DIA, C_TEMPO_ALMOCO, C_TEMPO_JANTAR, C_VLR_REMUNERACAO_COLABORADOR, C_CNH_COLABORADOR, C_CNH_CATEGORIA_COLABORADOR, C_CNH_VALIDADE_COLABORADOR, C_DATA_ADMISSAO_COLABORADOR, C_DATA_DEMISSAO_COLABORADOR, C_CESTA_BASICA_COLABORADOR, C_TITULO_ELEITOR_COLABORADOR, C_TIPO_REMUNERACAO_COLABORADOR, C_COD_FORNECEDOR_COLABORADOR, C_PAGA_IMPLANTACAO_COLABORADOR, C_PAGA_PCT_FECHADO_COLABORADOR, C_PERC_PCT_FECHADO_COLABORADOR, C_VLR_REMUNERACAO_SDF, C_REGISTRO_AUTONOMO, C_COD_LOCAL_REGISTRO_AUTONOMO, C_REGISTRO_PROFISSIONAL, C_ENTID_REGISTRO_PROFISSIONAL, C_COD_OPCAO_RESERVADA, C_EMAIL_COLABORADOR, C_CONTA_COLABORADOR, C_COD_BANCO, C_AGENCIA, C_TIPO_CONTA_COLABORADOR, C_COD_GRAU_INSTRUCAO, C_COD_NACIONALIDADE, C_FORMA_REMUNERACAO_COLABORADOR, C_ESTABILIDADE_COLABORADOR, C_AFASTAMENTO_COLABORADOR, C_COD_AFASTAMENTO, C_DESC_OPCAO_RESERVADA, C_DESC_FUNCAO, C_NOME_FRN ) as select CA0500.C_COD_COLABORADOR, CA0500.C_NOME_COLABORADOR, CA0500.C_COD_FUNCAO, CA0500.C_ENDERECO_COLABORADOR, CA0500.C_COD_LOCAL, CA0500.C_CEP_COLABORADOR, CA0500.C_FONE_COLABORADOR, CA0500.C_JORNADA_INI, CA0500.C_JORNADA_FIM, CA0500.C_CARGA_HORARIA, CA0500.C_TRABALHA_SABADO, CA0500.C_JORNADA_INI_SABADO, CA0500.C_JORNADA_FIM_SABADO, CA0500.C_TEMPO_ALMOCO_SABADO, C_TEMPO_JANTAR_SABADO, CA0500.C_TRABALHA_DOMINGO, CA0500.C_JORNADA_INI_DOMINGO, CA0500.C_JORNADA_FIM_DOMINGO, CA0500.C_TEMPO_ALMOCO_DOMINGO, CA0500.C_TEMPO_JANTAR_DOMINGO, CA0500.C_CEL_COLABORADOR, CA0500.C_CPF_COLABORADOR, CA0500.C_COD_ESTADO_CIVIL, CA0500.C_DATA_NASC_COLABORADOR, CA0500.C_ADICIONAL_NOTURNO, CA0500.C_FAIXA_ADICIONAL_NOTURNO, CA0500.C_PERICULOSIDADE, CA0500.C_FAIXA_PERICULOSIDADE, CA0500.C_DATA_PAG_VT, CA0500.C_PERC_ADIANTAMENTO, CA0500.C_RG_COLABORADOR, CA0500.C_PIS_COLABORADOR, CA0500.C_CTPS_COLABORADOR, CA0500.C_SERIE_CTPS_COLABORADOR, CA0500.C_VLR_ALIMENTACAO_DIA, CA0500.C_VLR_TRANSPORTE_DIA, CA0500.C_TEMPO_ALMOCO, CA0500.C_TEMPO_JANTAR, CA0500.C_VLR_REMUNERACAO_COLABORADOR, CA0500.C_CNH_COLABORADOR, CA0500.C_CNH_CATEGORIA_COLABORADOR, CA0500.C_CNH_VALIDADE_COLABORADOR, CA0500.C_DATA_ADMISSAO_COLABORADOR, CA0500.C_DATA_DEMISSAO_COLABORADOR, CA0500.C_CESTA_BASICA_COLABORADOR, CA0500.C_TITULO_ELEITOR_COLABORADOR, CA0500.C_TIPO_REMUNERACAO_COLABORADOR, CA0500.C_COD_FORNECEDOR_COLABORADOR, CA0500.C_PAGA_IMPLANTACAO_COLABORADOR, CA0500.C_PAGA_PCT_FECHADO_COLABORADOR, CA0500.C_PERC_PCT_FECHADO_COLABORADOR, CA0500.C_VLR_REMUNERACAO_SDF, CA0500.C_REGISTRO_AUTONOMO, CA0500.C_COD_LOCAL_REGISTRO_AUTONOMO, CA0500.C_REGISTRO_PROFISSIONAL, CA0500.C_ENTID_REGISTRO_PROFISSIONAL, CA0500.C_COD_OPCAO_RESERVADA, CA0500.C_EMAIL_COLABORADOR, CA0500.C_CONTA_COLABORADOR, CA0500.C_COD_BANCO, CA0500.C_AGENCIA, CA0500.C_TIPO_CONTA_COLABORADOR, CA0500.C_COD_GRAU_INSTRUCAO, CA0500.C_COD_NACIONALIDADE, CA0500.C_FORMA_REMUNERACAO_COLABORADOR, CA0500.C_ESTABILIDADE_COLABORADOR, CA0500.C_AFASTAMENTO_COLABORADOR, CA0500.C_COD_AFASTAMENTO, OP0100.C_DESC_OPCAO_RESERVADA, CA0700.C_DESC_FUNCAO, FR0100.C_NOME_FRN from CA0500 inner join CA0700 on (CA0700.C_COD_FUNCAO = CA0500.C_COD_FUNCAO) inner join FR0100 on (FR0100.C_COD_FRN = CA0500.C_COD_FORNECEDOR_COLABORADOR) inner join OP0100 on (OP0100.C_COD_OPCAO_RESERVADA = CA0500.C_COD_OPCAO_RESERVADA)
aí você usa assim:
select * from vwselect_ca0500 where C_COD_COLABORADOR = 1
note que, como a view é uma tabela virtual, você pode selecionar quais campos quiser daquela lista colocada como retorno.
poderia ser, por exemplo:
select C_NOME_COLABORADOR, C_COD_FUNCAO, C_DESC_FUNCAO, C_FONE_COLABORADOR, C_CEL_COLABORADOR, C_JORNADA_INI, C_JORNADA_FIM, C_TRABALHA_SABADO, C_TRABALHA_DOMINGO, C_EMAIL_COLABORADOR, C_COD_NACIONALIDADE, from vwselect_ca0500 where C_COD_COLABORADOR = 1
Gostei + 0
05/07/2006
Cabelo
Lembre-se que estou alterando todo o meu sistema para SP, por causa da velocidade via Internet..
portanto se a view for tão lenta quanto direto do delphi... não posso usár..
mas por favor me responda uma coisa...
pq as outras SP de select funcionaram bem e essa não..???
pq usar view ao invés de SP?????
obrigado pela atenção..
Gostei + 0
05/07/2006
Emerson Nascimento
já uma view nada mais é do que o resultado de uma instrução select (que pode ser editável). sempre que você tiver um select repetitivo, usado em vários lugares, é melhor que se monte a view ao invés de executar a instrução a cada vez que ela é necessária.
e, como no seu caso não há qualquer tipo de processamento, eu recomendo o uso da view.
obs.: não avaliei o porque da stored procedure não funcionar, porque na minha máquina ela funcionou perfeitamente. não fui mais a fundo porque acho que o seu problema se resolve com a view.
Gostei + 0
05/07/2006
Cabelo
esse select tem muitos campos... portanto fica muito lenta quando tento abrir o cadastro de colaboradores... mesmo local... na Internet nem abre..
o q posso fazer para melhorar a performance????
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)