programing

PL/Sql 프로시저 대 함수?

itmemos 2023. 7. 16. 12:47
반응형

PL/Sql 프로시저 대 함수?

저는 pl/sql 프로시저와 함수의 차이점을 알아보려 노력했고 http://it.toolbox.com/blogs/oracle-guide/learn-plsql-procedures-and-functions-13030 링크를 찾았습니다.먼저 개발자가 일반적으로 pl/sql 프로시저 및 함수를 사용하여 수행하는 작업에 대해 말씀드리겠습니다.

반환 값을 얻고자 했습니다.그는 기능과 절차 둘 다로 그것을 달성할 수 있습니다.함수를 사용하면 단일 값을 반환하려는 경우 반환 문을 사용할 수 있습니다. 여러 값을 반환하려는 경우 매개 변수 없이 이를 달성할 수 있습니다.마찬가지로 절차에서 매개 변수 없이 반환 값을 가져올 수 있습니다(반환 문 없음).

그러나 개발자가 반환문 또는 inout 매개 변수를 사용하여 의도를 달성할 수 있는 한 개발자에게 아무런 차이가 없습니다.

그래서 여기서도 둘 다 서로를 대체할 수 있습니다.

함수와 절차 모두에서 DML을 사용할 수 있습니다.여기서 그는 이것들 중 하나를 사용하여 데이터베이스의 상태를 변경할 수 있습니다.

그래서 저는 어떤 것을 사용해야 할지 구체적인 추론을 할 수 없습니다. 둘 다 일부에서 서로를 대체할 수 있기 때문입니다.

내가 어느 정도까지 찾은 유일한 합리적인 이유는 함수는 SQL에서 호출할 수 있지만 프로시저는 호출할 수 없다는 것입니다.

누가 언제, 왜 어떤 것을 사용해야 하는지 설명해 주시겠습니까?

당신은 이미 주요 차이점을 발견했습니다.함수를 SQL에서 사용하려면 함수를 생성합니다.프로시저를 PL/SQL에서만 사용하려면 프로시저를 만듭니다.

내가 하는 일.부작용이 없으면 기능을 사용하고, 그렇지 않으면 절차를 사용합니다.

또한 함수만 "순수"(함수 인덱스에 적합) 및 "파이프라인"일 수 있습니다.

두 가지 주요 차이점이 있습니다.

1:Use Procedure to take some action. But use function to return some value. 
2:You can call function from sql query but Procedure can't. 
3:Best practice to use Procedure then function if possible. 

감사해요.

프로시저와 함수의 구조는 다음과 같습니다.

함수 제목에는 반환 값의 데이터 유형을 지정하는 반환 절이 포함되어야 합니다.프로시저 머리글에는 RETURN 절을 사용할 수 없습니다.

함수의 실행 가능한 부분에 하나 이상의 RETURN 문이 있어야 합니다.절차에서 RETURN 문은 선택 사항입니다.자세한 내용은 RETURN 문을 참조하십시오.

자세한 내용은 http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/subprograms.htm#CHDDCFHD 을 참조하십시오.

http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/subprograms.htm#i4079

PL/SQL 하위 프로그램 개요 PL/SQL 하위 프로그램은 매개 변수 집합으로 호출할 수 있는 명명된 PL/SQL 블록입니다.하위 프로그램은 프로시저 또는 함수일 수 있습니다.일반적으로 절차를 사용하여 작업을 수행하고 값을 계산하고 반환하는 함수를 사용합니다.

언급URL : https://stackoverflow.com/questions/7272495/pl-sql-procedure-vs-function

반응형