我正在尝试更新Oracle中的一个包,来自sql Server,这一直令人困惑.
我编写了一个批处理文件,首先运行.spec文件,然后运行.body文件,但即使手动运行它也不起作用.
我用这个语法:
sqlplus username/password@databasename @c:\temp\myfile.spec sqlplus username/password@databasename @c:\temp\myfile.body
当我回到sql Developer时,我可以查看包中的存储过程,看看它们还没有更新.
为什么我的包裹没有更新?
解决方法
规范和正文文件需要/ make sql * Plus创建/替换对象.
没有/:
CREATE OR REPLACE PACKAGE TEST12_13 AS PROCEDURE TEST12_13; END;
STAGE@DB>@C:\TEST.PKS 6
随着/:
CREATE OR REPLACE PACKAGE TEST12_13 AS PROCEDURE TEST12_13; END; /
STAGE@DB>@C:\TEST.PKS Package created.
在回复您关于将filename作为参数传递的注释时,请让sql * Plus向您询问文件名,而不是将文件名作为参数传递
wrapper.sql ACCEPT filename_var Prompt 'Enter filename' @c:\temp\&filename_var / @c:\temp\&filename_var /