Oracle에서 저장 프로 시저를 만들고 있는데 그 중 하나는 영구적으로 만들어지고 다른 하나는 임시 목적으로 제공되고 사라집니다. 어떻게 작동하는지 안내하고 사용 방법을 알려주십시오 만들어진.임시 및 영구 저장 프로 시저
---- 이것은이 DB에서 생성
create PROCEDURE printVal (name varchar2) IS
BEGIN
dbms_output.put_line ('name:' || name);
END;
Oracle에서 저장 프로 시저를 만들고 있는데 그 중 하나는 영구적으로 만들어지고 다른 하나는 임시 목적으로 제공되고 사라집니다. 어떻게 작동하는지 안내하고 사용 방법을 알려주십시오 만들어진.임시 및 영구 저장 프로 시저
---- 이것은이 DB에서 생성
create PROCEDURE printVal (name varchar2) IS
BEGIN
dbms_output.put_line ('name:' || name);
END;
이해하려면 SQL을 두 부분으로 나누십시오.
저장 프로 시저 :
익명 블록 :이 익명 PL/SQL 블록입니다
---------- Stored Procedure Start--------
DECLARE name varchar2(10);
PROCEDURE printVal (name varchar2) IS
BEGIN
dbms_output.put_line ('name:' || name);
END;
--------- Stored Procedure End-----------
----------anonymous block Start----------
BEGIN
name := 'Joe';
printVal(name);
END;
/
----------anonymous block end ------------
음, 분명히이 영구적으로 사용할 수있다 ---- 단지 일시적으로 생성, DB에서 생성
DECLARE name varchar2(10);
PROCEDURE printVal (name varchar2) IS
BEGIN
dbms_output.put_line ('name:' || name);
END;
BEGIN
name := 'Joe';
printVal(name);
END;
/
를 사라되지 않는다 다른 구문입니다 - 첫 번째는 익명 블록이고 두 번째는 저장 프로 시저를 만듭니다. 예상되는 동작은 정확히 사용자가 관찰 한 것이며 Oracle PL/SQL 설명서의 적용을받습니다.
https://docs.oracle.com/cloud/latest/db112/LNPLS/overview.htm#LNPLS141
내가 처음 익명 블록 (A PL/SQL [서브]를 포함하고 있기 때문에 당신이 혼란스러워 생각 https://docs.oracle.com/cloud/latest /db112/LNPLS/subprograms.htm#LNPLS008), 이름 (printVal)을 정의합니다. 그러나 익명 블록 안에 있기 때문에 DB에 저장되지 않습니다. – tbone
답장과 답장을 보내 주셔서 감사합니다. – sunleo