Я пытаюсь запустить. sql с SQL* Plus, используя скрипт Powershell. По какой-то причине сценарий не генерирует вывод, когда я использую второй параметр в командной строке. Это работает, когда я использую только один. Кто-нибудь может сказать мне, что я делаю не так?
Строка Powershell, которую я использую для запуска sqlplus, выглядит следующим образом:
Run-LocalProcess SQLPLUS "${USER/PASS} @${SQLPATH}\something.sql ${1STPARAMETER} ${2NDPARAMETER}"
Где LocalProcess - это функция, которую мы используем для запуска процессов в CLI. Первый параметр - это путь к файлу буферизованного вывода без символа \ на конце. Второй параметр - это число, которое мы пытаемся добавить к имени файла буферизованного вывода.
. sql, который мы используем, выглядит следующим образом:
set heading off
set pause off
set verify off
set termout off
set trimspool on
set feedback off
set linesize 500
set pagesize 0
set escape ^
column sys_date heading "SystemDate" new_value sys_date format a20;
select to_char(sysdate,'YYYYMMDDHH24MISS') sys_date
from dual;
column db_name heading "DatabaseName" new_value db_name format a12;
select d.name db_name
from v$database d;
spool &1\&2something_&db_name._&sys_date..txt
SOMETHING
spool off
Причина, по которой я устанавливаю escape для ^ заключается в том, что стандартным escape-символом SQLPLUS является backsla sh.