Как мне искать записи в таблице, используя процедуру в PL / SQL? - PullRequest
0 голосов
/ 13 июня 2019

Я пытаюсь ...

  1. Запросить ввод данных у пользователя и сохранить его в переменной
  2. Передать эту переменную в процедуру
  3. Процедуразатем следует перебрать каждую строку в одном столбце определенной таблицы
  4. Если переменная совпадает, все столбцы для этой строки будут распечатаны через.DBMS_OUTPUT.PUT_LINE ('');
  5. Процедура продолжает повторяться по всем строкам до завершения

Я пытался прочитать материал курса, но создаваемые процедуры предназначены для разныхиспользует (например, обновление столбца в строке, когда выполняется условие «где»), и я изо всех сил пытаюсь понять, как использовать процедуру для выполнения того, что я пытаюсь сделать.

Таблица «Транспортные средства»'имеет строки' v_regno '(PK),' v_make ',' v_model ',' v_year 'и т. д.

Вот код.

/*Procedure to search for car by make*/
CREATE OR REPLACE PROCEDURE SaleByMake(
    search_make IN VARCHAR2(15)
)
IS  
BEGIN
    FOR /*each row in 'Items' table*/
        IF i_make = search_make THEN
        /*Print out columns of this row*/

        END IF;
    END LOOP;

EXCEPTION
    WHEN OTHERS THEN /*What goes in here?*/

END;

-- Get Input from User
ACCEPT search_make CHAR(15) PROMPT 'Enter car make: ';

-- Call the SaleByMake() Procedure and check stock amount status of item
EXECUTE SaleByMake(&search_make);

1 Ответ

0 голосов
/ 13 июня 2019

это то, что вам нужно?


/*Procedure to search for car by make*/
CREATE OR REPLACE PROCEDURE SaleByMake(
    search_make IN VARCHAR2
)
IS  
BEGIN
    FOR rec in (select col1,col2,col3 from table where col = search_make )
    Loop
      DBMS_OUTPUT.PUT_LINE(rec.col1||' ' || rec.col2||' ' ||rec.col3);
    END LOOP;

EXCEPTION
    WHEN OTHERS THEN /*What goes in here?*/

END;

вам следует заменить выбранную таблицу. Назовите имена столбцов именами, которые вам нужны

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