sql >> Database >  >> RDS >> Oracle

Problemen wanneer de gebruiker gegevens invoert in de sql-opdracht

Vervangingsvariabelen worden optioneel beëindigd met een punt om ze te scheiden van alle tekens die volgen. Als je er ook een in de string wilt gebruiken, moet je die beëindiging expliciet toevoegen:

spool E:\abc\Test\File1_&MYPeriod..csv

Voeg voor het probleem met twee extra regels set verify off ; op dit moment is het ingesteld op on (standaard) zodat het u de oude en nieuwe waarde toont van alle vervangingsvariabelen die u gebruikt.

De enige manier die ik weet om de datum in de bestandsnaam te krijgen, is door deze eerst in een vervangingsvariabele te plaatsen:

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

De new_value clausule laat je een vervangingsvariabele maken, &y_run_dt in dit geval, met een waarde uit een opgevraagde kolom, x_run_dt . De selectie die die waarde genereert verpakken tussen set termout clausules verbergt het voor de normale uitvoer, wanneer het wordt uitgevoerd als een script.




  1. Hoe een externe sleutel (MySQL) toe te voegen

  2. waarom pdo->lastInsertId() retourneert 0 wanneer ik STORED PROCEDURE in mysql aanroep?

  3. Uitgebreide evenementen voor SSAS

  4. SQL Server-versie van Oracle's ADD_MONTHS()