create oracle PL / SQL Хранимая процедура, возвращающая информацию? - PullRequest
0 голосов
/ 07 мая 2020

модель таблицы

Привет,
Это модель таблицы, которую я пытался создать. Я хочу создать процедуру, которая возвращает информацию обо всех именах в Sportif, которые занимаются спортом, который мы вводим в параметр

Например, если мы ищем, кто занимается

NATATION
<== return <br>Марк,
Бен,
Джейсон;


Я пробовал это, но выбираю работу только в том случае, если я помещаю ее в процедуру, в которой много сообщений об ошибках

CREATE OR REPLACE PROCEDURE CHER  (NOM_SPORT OUT VARCHAR2,NOM1 OUT VARCHAR2)
as
begin 
select NOM_SPORT, NOM1
from SPORT ,SPORTIF
where ID_SPORTIF =ID_SPORT
and NOM_SPORT ='Natation' 
end;

1 Ответ

0 голосов
/ 07 мая 2020

Измените имя ваших параметров, чтобы они не совпадали с столбцами в ваших таблицах, и используйте предложение ...INTO... в своем операторе SELECT:

CREATE OR REPLACE PROCEDURE CHER(pout_NOM_SPORT OUT VARCHAR2,
                                 pout_NOM1      OUT VARCHAR2)
AS
BEGIN
  SELECT NOM_SPORT,
         NOM1
    INTO pout_NOM_SPORT,
         pout_NOM1
    FROM SPORT, 
         SPORTIF
    WHERE ID_SPORTIF = ID_SPORT AND
          NOM_SPORT ='Natation'
END CHER;

РЕДАКТИРОВАТЬ

И теперь, когда мы видим, как вы вызываете свою процедуру, и какие ошибки вы получаете, мы можем видеть, что проблема в том, что вы не передаете никаких параметров своей процедуре . Вам нужно будет использовать что-то вроде:

DECLARE
  strNom_sport  VARCHAR2(100);
  strNom1       VARCHAR2(100);
BEGIN
  CHER(strNom_sport, strNom1);
END;
...