2024년 8월 26일 월요일

오라클에서 NVARCHAR타입에 &(Ampeersand) 데이터만 전송하면 왜 에러날까?

AI와 인터넷을 통해 해당 현상과 해결방법에 대해 정리하였음
  • Insert와 Update 시 예를들어 ‘John & Done’ 데이터가 변수로 인식될수 있음
  • &외에도 :(Colon), %(Percent), #(Hash), !(Exclamation), /(Slash)가 변수로 인식될수 있다고 함
  • NVARCHAR는 기본문자세트인 VARCHAR2와 다르게 인코딩된 문자열을 저장하여 처리될때 특수문자 해석이 다를수가 있다고 함
  • &은 SQL쿼리에서 매개변수로 사용될수 있는 예약된문자 → 이스케이프 처리필요
  • &데이터 같은 특수문자가 변수로 인식되면 처리못해 에러가 발생될수 있음
  • 해당 필드에 hasQuot=YES처리하여 문제값을 ‘와 “로 감싸서 데이터로 인식시킴
  • set define off를 사용 → 특수문자 인서트 시 문자열로 인식시킴
  • MySQL에서는 @, PostgreSQL는 $1, SQLServer는 @와 #, SQLLite에서는 :와 $가 변수로 인식될수 있다고 함

댓글 없음:

댓글 쓰기

최근글

9월 태안~천안 아이와 3박4일 가족 여행지