我有一个类似以下的SQL文件:
SET ECHO OFF
set feed off
set verify off
set head off
set pagesize 0
set space 0
set trimspool on
set line 250
spool subir.rpt
select 'Subir' from dual;
spool off
SET ECHO OFF
set feed off
set verify off
set head off
set pagesize 0
set space 0
set trimspool on
set line 250
spool vishal.rpt
select 'vishal' from dual;
spool off
让我们调用这个文件spool.sql。我需要根据输入的spool.sql文件接收启用创建假脱机文件。例如,如果它收到" subir.rpt"应运行SQL文件的第一部分,并生成subir.rpt;如果是vishal.rpt,第二部分应该运行,vishal.rpt应该生成。
如何实现这一目标?
编辑:从shell脚本调用此SQL文件。 shellcript如下所示:
sqlplus -s dbread$HOST_CONNECT_STR/dbread<<endplus
@spool.sql
endplus
答案 0 :(得分:0)
什么是启动此spool.sql?一个shell脚本?数据库功能?
如果它是一个shell脚本,我会使用一个参数到这个脚本或将其拆分为两个单独的.sql文件并调用适当的。
您还可以在调用此脚本之前将文件值保存到临时表中,并在假脱机文件之前选择它。
有很多选项,但这一切都取决于你如何调用这个脚本以及你希望它是多么可扩展。
答案 1 :(得分:0)
最简单的方法是将提供的参数动态地用作后台文件:
$urlRouterProvider.otherwise('/');
$stateProvider
.state('login',
{
url: "/login",
templateUrl: "scripts/features/account/views/login.html"
})
(set echo off
set feed off
set verify off
set head off
set pagesize 0
set space 0
set trimspool on
set line 250
spool &1
spool
select 'Subir' from dual where '&1' = 'Subir.rpt';
select 'vishal' from dual where '&1' = 'vishal.rpt';
spool off
命令本身只是为了演示目的而打印当前的假脱机文件名。)