从 SQLPLUS 更新包

H. *_*vez 4 oracle plsql sqlplus

我正在尝试更新 Oracle 中的一个包,来自 SQL Server 这一直令人困惑。

我编写了一个批处理文件,它首先运行.spec文件,然后运行.body文件,但即使手动运行它也不起作用。

我使用这个语法:

sqlplus username/password@databasename @c:\temp\myfile.spec
sqlplus username/password@databasename @c:\temp\myfile.body
Run Code Online (Sandbox Code Playgroud)

当我回到 Sql Developer 时,我可以查看包中的存储过程,发现它们尚未更新。

为什么我的软件包没有更新?

Sat*_*hat 5

规范和正文文件需要/使 SQL*Plus 创建/替换对象。

没有/

CREATE OR REPLACE PACKAGE TEST12_13 AS

PROCEDURE TEST12_13;

END;
Run Code Online (Sandbox Code Playgroud)
STAGE@DB>@C:\TEST.PKS
  6  
Run Code Online (Sandbox Code Playgroud)

/

CREATE OR REPLACE PACKAGE TEST12_13 AS

PROCEDURE TEST12_13;

END;

/
Run Code Online (Sandbox Code Playgroud)
STAGE@DB>@C:\TEST.PKS

Package created.
Run Code Online (Sandbox Code Playgroud)

回复您关于将文件名作为参数传递的评论,而不是将文件名作为参数传递,让 SQL*Plus 要求您提供文件名

    wrapper.sql

ACCEPT filename_var Prompt 'Enter filename'

@c:\temp\&filename_var
/
@c:\temp\&filename_var
/
Run Code Online (Sandbox Code Playgroud)