Вы используете анонимный блок кода pl / sql.В процедурах pl / sql вам необходимо указать целевую переменную для результата.
Поэтому сначала вам нужно определить переменную для хранения результата в разделе объявления, а затем вставить в него данные результата.
DECLARE
p_asOfDate DATE := '22-Feb-2011';
p_result myTable%ROWTYPE;
BEGIN
select * into p_result from myTable where dateInTable < p_asOfDate;
END
При этом вы, вероятно, получите более одной возвращенной строки, поэтому я бы использовал курсор для раздельного получения строк.
DECLARE
CURSOR c_cursor (asOfDate IN DATE) is
select * from myTable where dateInTable < asOfDate;
p_asOfDate DATE := '22-Feb-2011';
p_result myTable%ROWTYPE;
BEGIN
OPEN c_cursor(p_asOfDate);
loop
FETCH c_cursor into p_result;
exit when c_cursor%NOTFOUND;
/* do something with the result row here */
end loop;
CLOSE c_cursor;
END
Для вывода результатов вы можете использовать что-то подобное дляпример:
dbms_output.put_line('some text' || p_result.someColumn);
В качестве альтернативы вы можете выполнить запрос в командной строке sql (например, sqlplus) и сразу получить результат в виде таблицы.
Надеюсь, я правильно понял ваш вопрос...
обновление
Вот другой способ ввода ваших тестовых данных:
Используйте инструменты environemnt для выполнения SQL-запросов, чтобы напрямую представить свой SQL-операторбез блока pl / sql.
Используйте «&» перед частью переменной, чтобы вызвать приглашение для переменной.
select * from myTable where dateInTable < &p_asOfDate;
Результат должен отображаться в отформатированном видеПо вашему инструмент таким образом.Я не знаю об Аква, но некоторые инструменты имеют функции для определения этих параметров вне кода SQL.