sql >> Databáze >  >> RDS >> Oracle

Problémy, když uživatel zadává data do příkazu sql

Substituční proměnné jsou volitelně ukončeny tečkou oddělit je od všech následujících znaků. Pokud chcete v řetězci také použít jeden, musíte toto ukončení explicitně přidat:

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

V případě problému se dvěma řádky navíc přidejte set verify off ; v tuto chvíli je nastaven na on (ve výchozím nastavení), takže vám ukáže starou a novou hodnotu všech substitučních proměnných, které používáte.

Jediný způsob, jak dostat datum do názvu souboru, je vložit jej nejprve do substituční proměnné:

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

new_value klauzule umožňuje vytvořit substituční proměnnou &y_run_dt v tomto případě s hodnotou z dotazovaného sloupce x_run_dt . Obtékání výběru, který generuje tuto hodnotu, mezi set termout klauzule jej při spuštění jako skript skryje před normálním výstupem.




  1. Zprovoznění MySQL na OSX 10.7 Lion

  2. Jak přepsat přiřazení automaticky se zvyšujícího primárního klíče při vkládání hodnoty do tabulky MySQL?

  3. Jak získat ID posledního aktualizovaného řádku v MySQL?

  4. GROUP BY neodstraňuje duplikáty