如何运行oracle包哪个是变量?

时间:2017-12-14 04:19:56

标签: oracle

我有包裹,包裹工作正常

$('.journals-slider').slick({
        centerMode: true,
        centerPadding: '60px',
        slidesToShow: 3,
        slidesToScroll: 3,
        autoplay: true,
        autoplaySpeed: 2000,
        responsive: [
            {
                breakpoint: 768,
                settings: {
                    arrows: false,
                    centerMode: true,
                    centerPadding: '40px',
                    slidesToShow: 3
                }
            },
            {
                breakpoint: 480,
                settings: {
                    arrows: false,
                    centerMode: true,
                    centerPadding: '40px',
                    slidesToShow: 1
                }
            }
        ]
    });

但是当我看到

create or replace PACKAGE PKG_SEQ IS
st_server_site  VARCHAR2(1) := NULL;....

在一些旧代码中,我收到错误消息, 谁能帮我理解呢?

  

ST_SERVER_SITE'不是过程或未定义   06553. 00000 - “PLS-%s:%s

2 个答案:

答案 0 :(得分:0)

似乎st_server_site不是procedure而是variable,你不能写这样的select语句。

create or replace PACKAGE PKG_SEQ IS
  st_server_site  VARCHAR2(1) := NULL;....
 procedure pr_server_site( i_var1 number, i_var2 varchar2) is
 begin 
  ...
 end pr_server_site;

 function fn_server_site( i_var1 number, i_var2 date ) return number is
 begin 
  ...
 end fn_server_site;
end;

如果包是这样的,你可以像下面那样打电话:

SQL> exec PKG_SEQ.pr_server_site( &var1, '&var2' );

OR

SQL> var result1 number;
SQL> select PKG_SEQ.fn_server_site( col1, col2 ) into result1 from mytable; -- where col1 is of type number and col2 is of type date, columns of your table

答案 1 :(得分:0)

看起来所有建议都是在包中添加一些功能。 我认为我不应该有这样做的特权。有人通过select sql给我,我可以在sql develop中运行它,所以我在这里问问题。