반응형
SQL Server 저장 프로시저/함수에서 입력-출력 매개 변수를 선언하는 방법
오라클에서는
다음과 같이 입력-출력 매개변수(입력 또는 출력만이 아님)를 선언할 수 있습니다.
Create Or Replace Procedure USERTEST.SimpleInOutProcedure(
p_InputInt Int,
p_OutputInt out Int,
p_InputOutputInt in out Int
) AS
BEGIN
p_OutputInt := p_InputInt + 1;
p_InputOutputInt := p_InputOutputInt + p_InputOutputInt;
END;
그러나 SQL Server에서 이를 선언하려고 하면 스크립트가 컴파일되지 않습니다.
create procedure SimpleInOutProcedure
@p_InputInt int, @p_OutputInt int input output
As
Begin
Select * from TestTableCommonA;
End
SQL Server Management Studio에서 "input"이라는 단어가 필요하지 않으므로 파란색이 아닙니다.
스크립트에 문제가 있습니까? SQL Server 저장 프로시저/함수에서 입력-출력 매개 변수를 선언하는 방법은 무엇입니까?
이전에 Oracle DB용으로 생성되었으며 in/out 매개 변수에 대한 판독기가 있는 SQL Server DB용 "동등한" 판독기를 만들어야 하기 때문에 이 작업을 수행하려고 합니다.
매개 변수를 OUTPUT로 선언하면 입력 및 OUTPUT 역할을 모두 수행합니다.
CREATE PROCEDURE SimpleInOutProcedure
(
@p_InputInt INT,
@p_OutputInt INT OUTPUT
)
AS
BEGIN
SELECT
@p_OutputInt = @p_OutputInt
END
GO
DECLARE @p_OutputInt int = 4
EXEC SimpleInOutProcedure @p_InputInt = 1, @p_OutputInt = @p_OutputInt OUTPUT
SELECT @p_OutputInt
SQL Input & Output 파라미터의 샘플 코드입니다.
CREATE PROCEDURE [dbo].[sample_Insert]
@name varchar(500),
@entryby int,
@RetVal INT = 0 OUT
AS
SET NOCOUNT ON
INSERT INTO dbo.Master
( name ,
entry_date ,
entry_by
)
VALUES ( @name , -- service_name - varchar(1000)
dbo.GetActDate() , -- entry_date - datetime
@entryby -- entry_by - int
)
IF @@ERROR = 0
BEGIN
SET @RetVal = 1 -- 1 IS FOR SUCCESSFULLY EXECUTED
End
ELSE
BEGIN
SET @RetVal = 0 -- 0 WHEN AN ERROR HAS OCCURED
End
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
언급URL : https://stackoverflow.com/questions/49129536/how-to-declare-input-output-parameters-in-sql-server-stored-procedure-function
반응형
'programing' 카테고리의 다른 글
ggplot2 플롯 영역 여백? (0) | 2023.07.10 |
---|---|
SQL 서버에 IP 주소를 저장하는 데 가장 적합한 데이터 유형은 무엇입니까? (0) | 2023.07.10 |
SQL Server Management Studio에서 로컬 데이터베이스에 연결하는 방법은 무엇입니까? (0) | 2023.07.10 |
MongoDB와 함께 PouchDB 사용 (0) | 2023.07.10 |
GitHub 풀 요청을 수정하는 방법은 무엇입니까? (0) | 2023.07.10 |