我正在尝试使用公共和私有过程创建一个包,如下所示。但是我无法编译它:
df$Value<-as.numeric(df$Value)
答案 0 :(得分:2)
最简单的方法是将私有程序放在包中。 打包的过程或函数只能在包体中看到公共的或在它们之前声明的过程。
create or replace package body tst_pkg
as
procedure priv_proc ( p_id integer )
is
begin
dbms_output.put_line ( 'In PRIV_PROC P_ID: ' || p_id );
end;
procedure local_pkg ( p_id integer )
is
begin
dbms_output.put_line ( 'P_ID: ' || p_id );
dbms_output.put_line ( 'Now calling PRIV_PROC' );
tst_pkg.priv_proc ( 999 );
end;
end tst_pkg;
/
很偶然你可能有代码,其中程序BLUE调用程序RED,程序RED调用程序BLUE,你必须使forward declarations
变得复杂create or package body pkg_col is
--
procedure blue (p_in in number);
procedure red (p_in in number;
--
procedure blue (p_in in number) is
begin
red (1);
end blue;
procedure red (p_in in number) is
begin
if p_in > 1 then
blue (2);
end if;
end red;
end pkg_col;