#oracle #stored-procedures #plsql
#Oracle #хранимые процедуры #plsql
Вопрос:
create or replace procedure NrCopii2 (NrNume varchar2)
as
NrNume COPIL.nume%type;
begin
select count(nume) from Copil
dbms_output.put_line(NrNume);
end;
/
Ответ №1:
Необходимо исправить некоторые опечатки :
- добавьте
into NrNume
(непосредственно передfrom
) и добавьте;
в конец этого оператора, предполагая, что тип данныхnume
столбца является простымnumber
илиinteger
, в противном случае вы можете заменитьcopil.nume%type
наint
слишком - либо удалите
NrNume
параметр процедуры, либо локальную переменнуюNrNume
при заменеNrCopii2 (NrNume varchar2)
наNrCopii2 (NrNume out varchar2)
, у них одинаковые имена, и предпочтительнее использовать одно из них
PS. не забывайте выдавать set serveroutput on
при каждом вызове процедуры, чтобы отобразить значение, возвращаемое для NrNume
В результате может использоваться следующий блок кода
SQL> SET SERVEROUTPUT ON
SQL> CREATE OR REPLACE PROCEDURE NrCopii2 AS
NrNume INT;
BEGIN
SELECT COUNT(nume) INTO NrNume FROM Copil;
DBMS_OUTPUT.PUT_LINE(NrNume);
END;
/
Комментарии:
1. вы можете, пожалуйста, показать, как должен выглядеть код, потому что я довольно плох, и я не могу понять второй пункт, пожалуйста, если нужно, я могу показать базу данных
Ответ №2:
Вы также можете создать анонимную процедуру.
DECLARE
NrNume COPIL.nume%type;
BEGIN
SELECT count(nume) INTO NrNume
FROM Copil;
dbms_output.put_line(NrNume);
END;
/
Комментарии:
1. Можете ли вы сделать это в процедуре pls?