Когда я выполнить процедуру энный появится, за исключением следующего сообщения и не показывая никаких выходных данных, которые не должны быть так: анонимный блок завершенPL/SQL анонимный блок завершен без результата отображается
Я пытался set serveroutput on size 50000
но ничего не меняется.
Вот моя процедура PL/SQL не уверена, что я делаю это правильно.
CREATE OR REPLACE PROCEDURE verify AS
empnum NUMBER;
empname VARCHAR2(50);
fail EXCEPTION;
BEGIN
SELECT employee.e#, employee.name INTO empnum, empname
FROM employee
JOIN driver ON driver.e# = employee.e#
JOIN mechanic ON mechanic.e# = driver.e#
WHERE rownum = 1;
EXCEPTION
WHEN no_data_found THEN
dbms_output.put_line('ok');
RAISE fail;
END verify;
/
Я пытаюсь добиться следующего результата при помощи SQL Statement:
SELECT employee.e#, employee.name
FROM employee
JOIN driver ON driver.e# = employee.e#
JOIN mechanic ON mechanic.e# = driver.e#
WHERE rownum = 1;
Так что если есть какие-либо аналогичные записи он будет показывать имя сотрудника и Num. Если подобных записей не обнаружено, появится сообщение ok
.
Какой результат вы ожидаете? Предполагая, что во всех трех таблицах есть данные и правильные отношения соединения, ваш запрос будет заполнять две локальные переменные произвольными 'e #' и 'name'. Затем вы ничего не делаете с этими двумя локальными переменными. Я также не уверен, какую выгоду вы получите от объявления здесь исключения «fail». –
@JustinCave привет, спасибо за быстрый ответ .. я обновил свой вопрос о том, чего бы я хотел достичь, но я не уверен, что это сработает. – user2975932
Является ли цель отображать несколько строк в результате? Или вы просто хотите отобразить одну произвольную строку? Последнее не имеет для меня большого смысла, но это то, что подразумевает ваше предложение 'rownum = 1'. Вы просто изучаете PL/SQL из книги (в этом случае запись данных в 'dbms_output' может быть разумной)? Или вы пытаетесь использовать PL/SQL в реальном мире (в этом случае в зависимости от 'dbms_output' является ошибкой)? –