- Este tópico contém 3 respostas, 2 vozes e foi atualizado pela última vez 19 anos, 4 meses atrás por rosacbm.
-
AutorPosts
-
9 de setembro de 2005 às 12:37 am #74552rosacbmParticipante
Ol?.
Tenho uma package cuja especifica??o tem declara??o de v?rias constantes utilizadas pelo sistema em outras rotinas. Exemplo de declara??o: CONSTANT_VALUE_COD_ESTAGIARIO CONSTANT VARCHAR2(3) := ‘E’;
Precisei incluir uma nova constante nesse package e ao recompilar a specification n?o consigo mais acessar o valor das constantes em outras rotinas. Todo procedimento que utiliza a CONSTANT_VALUE_COD_ESTAGIARIO, por exemplo, est? tendo como retorno nulo e n?o ‘E’, que ? o valor que est? na declara??o da constante.
Algu?m tem id?ia do que pode estar acontecendo?
J? exclui e recriei, recompilei, criei sin?nimo, dei grant! Nada resolve!!!9 de setembro de 2005 às 4:09 pm #74553Marcio68AlmeidaParticipanteEssa vari?vel devia estar definida como GLOBAL, e quando voc? alterou colocou-a como PRIVATE…
N?o tem a Package original ???9 de setembro de 2005 às 5:51 pm #74554rosacbmParticipanteMarcio,
N?o s?o vari?veis, s?o constantes. N?o coloquei private em sua declara??o. Veja como est? o specification da pack:
— Pacote com funcoes genericas e constantes
— utilizadas por outras rotinas do sistema
CREATE OR REPLACE PACKAGE SYSSLV.PACK_SLV0001 AS
— Declaracao de constantes
— Devem ter o mesmo nome e valor estabelecidos em SLVPropriedades.java */
— Devem sempre estar sincronizados entre siCONSTANT_VALUE_COD_ESTAGIARIO CONSTANT VARCHAR2(3) := ‘E’;
CONSTANT_VALUE_COD_EVENTUAL CONSTANT VARCHAR2(3) := ‘V’;
CONSTANT_VALUE_COD_FUNCIONARIO CONSTANT VARCHAR2(3) := ‘F’;
CONSTANT_VALUE_COD_REC_EXTERNO CONSTANT VARCHAR2(3) := ‘T’;CONSTANT_VALUE_SG_MOEDA CONSTANT VARCHAR2(2) := ‘R$’;
CONSTANT_VALUE_SG_MOEDA_DOLAR CONSTANT VARCHAR2(2) := ‘US$’;— Declaracao de funcoes
FUNCTION is_intervalo_conflito (dt_inicio1 IN DATE,
dt_fim1 IN DATE,
dt_inicio2 IN DATE,
dt_fim2 IN DATE) RETURN VARCHAR2;FUNCTION char_to_number (p_char IN VARCHAR2) RETURN NUMBER;
FUNCTION is_tipo_usuario (p_ad_usuario IN usuario_beneficiario_slv.fk_usubnf_ad_usuario%TYPE,
p_cl_tipo_usuario IN tipo_usu_solicitacao.ad_tipo%TYPE) RETURN VARCHAR2;END PACK_SLV0001;
/
SHOW ERRORS;9 de setembro de 2005 às 6:47 pm #74555rosacbmParticipanteMarcio,
J? descobri o problema!!!
Estava na declara??o de uma constante:
CONSTANT_VALUE_SG_MOEDA_DOLAR CONSTANT VARCHAR2(2) := ‘US$’; , mas o valor atribu?do tem 3 posi??es.
Quando o Oracle tentava carregar a package na mem?ria pela primeira vez, dava o erro 6502. Das outras vezes, ele n?o conseguia acessar o valor das constantes, porque n?o conseguiu carreg?-las em mem?ria!!!
Corrigi a declara??o da constante e funcionou.
Valeu! -
AutorPosts
- Você deve fazer login para responder a este tópico.