Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Problemas quando o usuário insere dados no comando sql


As variáveis ​​de substituição são opcionalmente encerradas por um ponto para separá-los de quaisquer caracteres que se seguem. Se você quiser usar um na string também, você deve adicionar essa terminação explicitamente:
spool E:\abc\Test\File1_&MYPeriod..csv

Para o problema de duas linhas extras, adicione set verify off ; no momento está definido como on (por padrão) para que ele mostre o valor antigo e o novo de qualquer variável de substituição que você usar.

A única maneira que conheço de obter a data no nome do arquivo é colocá-la em uma variável de substituição primeiro:
set termout off
column x_run_dt new_value y_run_dt
select to_char(sysdate, 'YYYYMMDDHH24MISS') as x_run_dt from dual;
set termout on
spool E:\abc\Test\File1_&MYPeriod._&y_run_dt..csv

O new_value cláusula permite criar uma variável de substituição, &y_run_dt neste caso, com um valor de uma coluna consultada, x_run_dt . Envolvendo o select que gera esse valor entre set termout cláusulas oculta-o da saída normal, quando executado como um script.