столбец new_value и тип отображения и значение переменной - PullRequest
0 голосов
/ 27 ноября 2018
column dcol new_value mydate noprint
select to_char(sysdate - case
                    when to_char(sysdate, 
'hh24:mi:ss') between '17:00:00' and '23:59:59' then 0
                    when to_char(sysdate, 
'hh24:mi:ss') between '00:00:00' and '17:00:00' then 1
                end,'YYYYMMDD') dcol
from dual;

set feedback off

spool "C:\test\test_&mydate..csv";

select /*csv*/ * from REPORTS.TEST;

spool off;

Привет,

У меня есть вышеуказанный SQL-запрос, который был написан кем-то другим.Я пытаюсь понять и следовать этому.У меня есть следующие вопросы - интересно, может ли кто-нибудь помочь мне с ними?

1) В запросе есть 2 экземпляра dcol: a) столбец dcol, затем b) выберите dcol из dual.'Dcol' - это имя столбца из двойной таблицы?Кажется, что если я заменю 'dcol' на 'random_col' - запрос все равно будет работать

2) "C: \ test \ test_ & mydate..csv";почему есть двойной "."в отличие от одного "."прямо перед 'csv'?

3) Как отладить SQL-запрос в Oracle SQL Developer?Например, в следующем:

select to_char(sysdate - case
                    when to_char(sysdate, 
'hh24:mi:ss') between '17:00:00' and '23:59:59' then 0
                    when to_char(sysdate, 
'hh24:mi:ss') between '00:00:00' and '17:00:00' then 1
                end,'YYYYMMDD') dcol
from dual;

Я хочу выяснить: а) каково значение sysdate ?, б) в каком случае выбор попадает в?

4) Еслив конце SQL-запроса добавляю: определение mydate;Я бы получил следующий вывод:

DEFINE MYDATE = "20181126" (VARCHAR2)

Есть ли другие способы показать, что такое переменная mydate и ее тип?

1 Ответ

0 голосов
/ 27 ноября 2018

1) dcol - это имя столбца для вывода двойного запроса

select to_char(sysdate - case
                    when to_char(sysdate, 
'hh24:mi:ss') between '17:00:00' and '23:59:59' then 0
                    when to_char(sysdate, 
'hh24:mi:ss') between '00:00:00' and '17:00:00' then 1
                end,'YYYYMMDD') dcol
from dual;


output.....
+----------+
|   dcol   |
+----------+
| 20181126 |
+----------+

В первой строке вашего кода указывается столбец dcol new_value mydate noprint.

Это означает сохранение значенияиз dcol и поместите это в переменную mydate «sql plus / sqldeveloper».

NB. Это команда sqlplus, которая понимается командой sqlplus program / sqldeveloper (не является стандартным PL / SQL).

set feedback off 
means suppress the query status such as
42 rows returned..

2) "C: \ test \ test_ & mydate..csv";почему есть двойной "."в отличие от одного "."прямо перед "CSV"?

Тебе понадобится .., чтобы убежать от "."в программе sqlplus / sqldeveloper.

Команда Spool - это вещь sqlplus.здесь вы заметили, что вы создаете файл "csv" с именем файла, которое возвращается из вывода 1), который присутствует в переменной & mydate

select /*csv*/ * from REPORTS.TEST;

Это синтаксис в sqldeveloper, который будет генерироватьCSV-файл в качестве вывода.Проверьте эту ссылку, чтобы увидеть, как легко сгенерировать csv

https://www.thatjeffsmith.com/archive/2012/05/formatting-query-results-to-csv-in-oracle-sql-developer/

Отключение означает создание файла в C: \ test \ test_20181126.csv

3)Просто запустите запрос как есть.

4) Просто попробуйте выбрать & mydate from dual;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...