은행 API를 통해 JSON 연동된 계좌 거래내역을 Parsing 하여 시스템에 반영한 사례를 정리하였습니다.  
OPENJSON 함수를 사용하여 API연동 DataSet에 맞는 명시적 구조 설정이 필요합니다.

※ 예금계좌내역 API 연동정보는 아래와 같다고 가정합니다.

파라미터명 데이터타입 설명
RTN_CODE NVARCHAR(20) 응답코드
RTN_MSG NVARCHAR(100) 응답메시지
ACCNO NVARCHAR(20) 계좌번호
TRNS_YMD NVARCHAR(10) 거래년월일
TRNS_TTM NVARCHAR(10) 거래시간
DRAW_AMT NVARCHAR(20) 출금금액
MRV_AMT NVARCHAR(20)  입금금액
BAL_AMT NVARCHAR(20) 잔액
BAL_AMT NVARCHAR(50) 적요

[예시쿼리]

DECLARE @json NVARCHAR(MAX)
SET @json =
N'[
{
	"RESULT": {
	"RTN_CODE":"RTN1001",
	"RTN_MSG":"정상",
	"ACCNO":"00000000000",
	"TRNS_YMD":"20220101",
	"TRNS_TTM":"193030",
	"DRAW_AMT":"1,000,000",
	"MRV_AMT":"0",
	"BAL_AMT":"1,000,000",
	"SUMMARY":"입금"
	}
},
{
	"RESULT": {
	"RTN_CODE":"RTN1002",
	"RTN_MSG":"정상",
	"ACCNO":"00000000000",
	"TRNS_YMD":"20220115",
	"TRNS_TTM":"193030",
	"DRAW_AMT":"100,000",
	"MRV_AMT":"0",
	"BAL_AMT":"900,000",
	"SUMMARY":"출금"
	}
}
]' 

SELECT * 
  FROM OPENJSON ( @json )  
  WITH (  	
	RTN_CODE	NVARCHAR(20)	'$.RESULT.RTN_CODE', 
	RTN_MSG		NVARCHAR(100)	'$.RESULT.RTN_MSG', 
	ACCNO		NVARCHAR(20)	'$.RESULT.ACCNO', 
	TRNS_YMD	NVARCHAR(10)	'$.RESULT.TRNS_YMD', 
	TRNS_TTM	NVARCHAR(10)	'$.RESULT.TRNS_TTM', 
	DRAW_AMT	NVARCHAR(20)	'$.RESULT.DRAW_AMT', 
	MRV_AMT		NVARCHAR(20)	'$.RESULT.MRV_AMT', 
	BAL_AMT		NVARCHAR(20)	'$.RESULT.BAL_AMT', 
	SUMMARY		NVARCHAR(50)    '$.RESULT.SUMMARY'     
	)

쿼리 실행 시 오류가 발생하는 경우 연동된 JSON 데이터의 유효성 체크가 우선시되어야 합니다.

아래의 사이트에서 간편하게 기능을 제공하니 참고 부탁드립니다.

https://jsonlint.com/

 

읽어주셔서 감사합니다.

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기