Тестирование SQL-запроса в ORACLE SQL Developer - новичок

Я новичок в Oracle SQL Developer и SQL в целом. У меня есть следующие вопросы:

1) Я подключен к базе данных моей компании. У меня есть доступ к просмотрам. Как протестировать SQL-запрос в Oracle SQL Developer, поскольку я пытаюсь обеспечить что результат соответствует тому, что я ожидал, или что он даже работает. Например, когда я пишу код VBA в Excel, я а) отлаживаю, б) переменную debug.print в немедленное окно для их проверки. Я хочу узнать, как это сделать в Oracle SQL Developer.

2) Как открыть окно результатов в Oracle SQL Developer?

3) Я попытался выполнить следующий запрос SQL, но получил следующее сообщение об ошибке.

spool "C:\myfolder\TEST_sql.csv";
SELECT /*csv*/ CLIENT_NAME, ORDER_ID, PRODUCT, 
QUANTITY, to_char(CREATION_DATE,'mm/dd/yyyy 
hh24:mi:ss') as CREATION_DT
FROM reports.REPORT_ORDER
ORDER BY ORDER_ID
FETCH FIRST 5 ROWS;
spool off;

Сообщение об ошибке:

Error starting at line : 2 in command -
SELECT /*csv*/ CLIENT_NAME, ORDER_ID, PRODUCT, 
QUANTITY, to_char(CREATION_DATE,'mm/dd/yyyy 
hh24:mi:ss') as CREATION_DT
FROM reports.REPORT_ORDER
ORDER BY ORDER_ID
FETCH FIRST 5 ROWS;
Error at Command Line : 4 Column : 10
Error report -
SQL Error: ORA-00933: SQL command not properly ended
00933. 00000 -  "SQL command not properly ended"
*Cause:    
*Action:

вы в базе данных 12c? синтаксис fetch first не будет работать в 7, 8, 9, 10 или 11 базах данных

thatjeffsmith 20.11.2018 13:30

ваша последняя строка также неверна, см. мой ответ ниже

thatjeffsmith 20.11.2018 13:37
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
2
1 135
1

Ответы 1

У вас есть два способа выполнить запрос в SQL Developer.

Как сценарий:

spool c:\users\jdsmith\so.csv
select /*csv*/ first_name,
       last_name,
       to_char(hire_date,'mm/dd/yyyy hh24:mi:ss')  hire_date
  from employees
  order by employee_id
  fetch first 5 rows only;
spool off

Выполните с помощью F5 (или используйте 2-ю кнопку на панели инструментов рабочего листа)

Это будет проходить по содержимому вашей таблицы SQL (если только вы не выделили текст и только это) и пропустить его через наш механизм сценариев (SQL * Plus). Вот как будут выполняться команды SPOOL - они выполняются на клиенте, а не в базе данных.

Другой вариант - просто выполнить запрос.

Ваш ОДИН запрос будет выполнен, и первая страница результатов будет возвращена в сетку данных. По мере прокрутки результатов будет выбираться больше строк, пока все они не вернутся.

Вы получаете сообщение об ошибке в коде, потому что либо:

  1. вы не используете по крайней мере Oracle Database 12c, где был добавлен синтаксис FETCH FIRST
  2. И вы забыли ключевое слово "ТОЛЬКО" на своем FETCH

Другие вопросы по теме