我正在尝试在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).
我期待弹出的窗口提示输入,但我之前没有使用过包,所以我不确定它是什么我做错了
答案 0 :(得分:0)
set define on;
create OR REPLACE package Assignment_1_Pack ...
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 ...
会丢弃该包,然后再次创建它,因此它会更新失败。