包输入参数SQL Developer

时间:2016-03-19 12:34:06

标签: plsql oracle-sqldeveloper plsqldeveloper

我正在尝试在Oracle SQL Developer中创建一个包,并希望有一个公共输入参数,另一个用户可以输入日期。我尝试了以下代码 -

Create PACKAGE Assignment_1_Pack is
 vstartDate date := to_date('&startDate', 'DD/MM/YYYY');
 vendDate date := to_date('endDAte', 'DD/MM/YYYY');

END;

当我尝试运行它时,我收到以下消息

Empty package Assignment_1_pack definition (no public members).

我期待弹出的窗口提示输入,但我之前没有使用过包,所以我不确定它是什么我做错了

1 个答案:

答案 0 :(得分:0)

  1. 运行set define on;
  2. 使用命令create OR REPLACE package Assignment_1_Pack ...
  3. SET DEFINE ON/OFF打开或关闭替换变量。可能关闭了变量的替换,因此SQLDeveloper不会要求值

    有关详细信息,请参阅此处:https://docs.oracle.com/cd/B19306_01/server.102/b14357/ch12040.htm#sthref2736

      

    SET DEF [INE] {& | c | ON | OFF}设置用于前缀的字符   替换变量为c。

         

    ON或OFF控制SQL * Plus是否将扫描命令   替换变量并用它们的值替换它们。 ON变化   c的值回到默认的'&',而不是最近使用的   字符。将DEFINE设置为OFF将覆盖设置   SCAN变量。

    create OR REPLACE package ...可防止在已创建包的情况下出错。如果程序包已存在,则简单CREATE PACKAGE xxx命令将失败。如果您是第一次创建包,则所有后续尝试都将失败。如果包已经存在,Create OR REPLACE ...会丢弃该包,然后再次创建它,因此它会更新失败。