我有两个.sql文件,都是Oracle存储过程,它们都接受输入参数。我想首先使用命令行中的sqlplus连接到远程oracle数据库,并且希望首先使用这两个文件创建它们各自的存储过程,以便我在Oracle SQL Developer中的连接过程中看到它们。创建Oracle存储过程并从.sql文件执行
在此之后,我有两个看起来像这样的.sql文件,旨在获取输入参数并执行存储过程。这是要执行存储过程“报告”的文件之一。
DECLARE
NAME VARCHAR2(200);
VERSION VARCHAR2(200);
STARTDATE DATE;
ENDDATE DATE;
BEGIN
NAME := '&1';
VERSION := '&2';
STARTDATE := '&3';
ENDDATE := '&4';
exec REPORT(NAME, VERSION, STARTDATE, ENDDATE);
EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20101,SQLERRM);
END;
/
在命令提示符下我第一次尝试通过在数据库中创建存储过程: C:\用户\桌面> sqlplus的用户名/密码@ report_setup.sql
当我尝试这个输出得到只是空行,这些行被编号并从数字开始,这个数字比我的.sql文件的最后一行大1。我的report_setup.sql文件长度为81行,sqlplus命令的输出是从83开始的空白编号行。
请让我知道如何通过sqlplus正确创建和执行这些存储过程。
由于提前,
好点;但如果我理解了问题中的描述,那么它还没有达到运行该块的程度。另外还可以指出,在设置'startdate'和'enddate'时,它会进行隐式日期转换(并且似乎没有太多要点声明/设置这些),这可能有一天会失败。 –