【问题标题】:How can i do to edit function inside package(Oracle)我该如何编辑包内的功能(Oracle)
【发布时间】:2015-11-18 04:28:29
【问题描述】:

我有一个 oracle 软件包。里面有一些程序和函数。我需要编辑一个过程和一个函数,但我没有函数或包内包的编辑选项。我能怎么做?下面是我的包的完整代码:

CREATE OR REPLACE PACKAGE TS_ODO.ODO_AUT_RCS_DIRECIONAMENTO
is
    -- Purpose : Realizar pesquisa de direcionamento
    --
    function p_versao                                                           return varchar2;
    --
    type rec_direcionamento   is record  ( COD_PRESTADOR        VARCHAR2(40)
                                          ,COD_PRESTADOR_TS     NUMBER(15)
                                          ,NOM_ORIENTADOR       VARCHAR2(150)
                                          ,NOME_PRESTADOR       VARCHAR2(60)
                                          ,IND_VINCULACAO       VARCHAR2(2)
                                          ,COD_MUNICIPIO        NUMBER(6)
                                          ,SEQ_ENDERECO         NUMBER(3)
                                          ,END_PRESTADOR        VARCHAR2(100)
                                          ,NUM_ENDERECO         VARCHAR2(30)
                                          ,TXT_COMPLEMENTO      VARCHAR2(100)
                                          ,TXT_HORARIOS         VARCHAR2(4000)
                                          ,NOME_BAIRRO          VARCHAR2(72)
                                          ,NOME_CIDADE          VARCHAR2(72)
                                          ,NUM_DDD_TELEFONE_1   VARCHAR2(4)
                                          ,NUM_DDD_TELEFONE_2   VARCHAR2(4)
                                          ,NUM_DDD_TELEFONE_3   VARCHAR2(4)
                                          ,NUM_DDD_TELEFONE_4   VARCHAR2(4)
                                          ,NUM_DDD_TELEFONE_5   VARCHAR2(4)
                                          ,NUM_TELEFONE_1       VARCHAR2(15)
                                          ,NUM_TELEFONE_2       VARCHAR2(15)
                                          ,NUM_TELEFONE_3       VARCHAR2(15)
                                          ,NUM_TELEFONE_4       VARCHAR2(15)
                                          ,NUM_TELEFONE_5       VARCHAR2(15)
                                          ,SGL_UF               VARCHAR2(2)
                                          ,COD_REGIAO_ODO       NUMBER(5)
                                          ,NOM_REGIAO_ODO       VARCHAR2(100)
                                          ,COD_SUBREGIAO_ODO    NUMBER(5)
                                          ,NOM_SUBREGIAO_ODO    VARCHAR2(100)
                                          ,PONTUACAO_ORIENTADOR NUMBER
                                          ,QTD_ESTACIONAMENTO   NUMBER
                                          ,QTD_ACESSIBILIDADE   NUMBER
                                          ,NOME_ESPECIALIDADE   VARCHAR2(4000)
                                          --CL537383#02 - INICIO
                                          ,CODIGO_ESPECIALIDADE VARCHAR2(4000)
                                          --CL537383#02 - FIM
                                          ,IND_ESPECIALISTA     VARCHAR2(4000)
                                          ,ORIGEM               VARCHAR2(9)
                                          );
    --
    type tbl_direcionamento    is table of rec_direcionamento;
    --
    type rec_item              is record ( cod_item                             varchar2(10)
                                         , desc_item                            varchar2(150)
                                         , ind_tipo                             varchar2(1)
                                         , ind_cobertura                        varchar2(1)
                                         , ind_carencia                         varchar2(1)
                                         , ind_carencia_pre                     varchar2(1)
                                         , cod_retorno                          number
                                         , msg_retorno                          varchar2(4000)
                                         ) ;
    type tbl_item              is table of rec_item;
    --
    type rec_carencia          is record (item_medico          varchar2(8)
                                         ,nome_item            varchar2(260)
                                         ,cobertura            varchar2(3)
                                         ,qtd_dias_carencia    number(3)
                                         ,data_base_carencia   date
                                         ,data_fim_carencia    date);
    --
    type tbl_carencia          is table of rec_carencia;
    --
    procedure get_xml_item              ( p_xml_out                     out clob
                                        , p_num_associado               in varchar2
                                        , p_cod_plano                   in varchar2
                                        , p_cod_item                    in varchar2
                                        );
    --
    procedure get_data                  ( p_data                        out varchar2
                                        , p_cod_formato                 in  varchar2 default 'dd/mm/yyyy'
                                        );
    --
    procedure get_controle_sistema      ( p_val_parametro               out varchar
                                        , p_cod_parametro               in  varchar
                                        , p_val_default                 in  varchar2        default ''
                                        );
    --
    procedure get_obs_prestador         ( p_txt_obs                     out clob
                                        , p_cod_prestador_ts            in  pls_integer
                                        );
    --
    procedure get_especialidade_elegivel( p_cod_retorno                 out pls_integer
                                        , p_xml_filtro                  in  clob
                                        );
    --
    procedure get_procedimento_elegivel ( p_cod_retorno                 out pls_integer
                                        , p_xml_filtro                  in  clob
                                        );
    --
    procedure get_xml_tabela            ( p_xml_out                     out clob
                                        , p_nome_tabela                 in varchar
                                        , p_where                       in varchar2 default null
                                        , p_order                       in varchar  default  null
                                        , p_nome_cabecalho              in varchar  default  null --Se não informado usar o nome da tabela
                                        );
    --
    function get_cursor                 ( p_nome_tabela                 in varchar              , p_campo_value            in varchar                  , p_campo_desc            in varchar                  , p_order                 in varchar                  , p_where   in varchar   default null   , p_campo_aux  in varchar   default null ) return sys_refcursor;
    function get_unidade_usuario        ( p_cod_usuario                 in varchar2             , p_cod_filial             in pls_integer )            return sys_refcursor;
    function get_operadora_usuario      ( p_cod_usuario                 in varchar2 )           return sys_refcursor;
    function get_filial_usuario         ( p_cod_usuario                 in varchar2 )           return sys_refcursor;
    function get_rede_prestador         ( p_cod_prestador_ts            in pls_integer )        return sys_refcursor;
    --
    function get_tbl_direcionamento     ( p_xml_filtro                  in clob
                                        , p_oldnew                      in varchar2 default 'NEW'
                                        )                                                       return tbl_direcionamento
    pipelined
    parallel_enable;
    --
    function get_rs_direcionamento      ( p_xml_filtro                  in clob )               return sys_refcursor;
    function get_rs_especialidades_hab  ( p_xml_filtro                  in clob )               return sys_refcursor;
    function get_rs_prestador_substituto( p_xml_filtro                  in clob )               return sys_refcursor;
    function get_rs_sub_regiao          ( p_cod_regiao_odo              in pls_integer          , p_nom_subregiao_odo      in varchar2 )               return sys_refcursor;
    --
    function get_dados_associado        ( p_xml_associado in clob , p_ctr_logs in varchar2 default 'N' ) return SYS_REFCURSOR;
    --
    function get_carencia               ( p_num_associado in varchar2 ) return tbl_carencia pipelined;
    --
end;

我需要编辑这个函数:function get_rs_direcionamento。包内带有右键的上下文菜单,没有选项:编辑或查看等。只有描述、测试、选择上下文菜单上的选项,但这些选项都没有解决。

【问题讨论】:

  • 包是一个单一的对象 - 你不能只更新一个包成员,你做出改变并编译整个包

标签: oracle plsql plsqldeveloper


【解决方案1】:

查看文档ALTER PACKAGE

由于包中的所有对象都作为一个单元存储,ALTER PACKAGE 语句将所有包对象重新编译在一起。你不能 使用ALTER PROCEDURE 语句或ALTER FUNCTION 语句 单独重新编译一个过程或函数,它是 包。

【讨论】:

  • 我看到plsql developer有一个Package Body文件夹,我不知道。现在我打开文件夹,右键按钮,然后选择编辑。这样我就明白了。
  • 在 PL/SQL Developer 中 - 右键单击​​,然后在规范中 open both spec and body 在正文中声明包的接口 - 逻辑
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-16
  • 2011-07-12
  • 1970-01-01
相关资源
最近更新 更多