반응형

안녕하세요.

 

정말 오랜만에 블로그를 작성하는것 같습니다

 

IT 종사자로써 가끔 혼동 되거나 기억을 까먹게 되는 부분이 오라클과 MSSQL의 쿼리 형태가 조금씩 다르다는 점이

어렵게 느껴질때가 있습니다

 

그 부분을 해결하기 위해 블로그에 요약하여 정리해 봅니다

 

*Chat GPT 피셜 

  데이터베이스 관리 시스템(DBMS)인 오라클(Oracle)과 MSSQL(SQL Server)은 SQL 표준을 따르지만, 특정 구문이나 기능에

  있어 약간의 차이가 있습니다. 그 중 SELECT INTO와 INSERT INTO 구문은 두 DBMS 간에 차이가 있는 대표적인 예입니다.

  이 글에서는 오라클과 MSSQL에서 SELECT INTO와 INSERT INTO 구문이 어떻게 다른지, 각각의 사용 예제와 함께

   설명하겠습니다.

 

1. SELECT INTO 구문

1.1. MSSQL의 SELECT INTO

MSSQL에서 SELECT INTO 구문은 새로운 테이블을 생성하고, 다른 테이블이나 쿼리 결과의 데이터를 그 테이블에 삽입하는 데 사용됩니다. 즉, 기존 테이블이 아닌 새로운 테이블을 만들면서 데이터를 복사하는 것입니다.

 

위 예제에서는 EmployeeTable에서 나이(age)가 30보다 큰 직원의 이름(name)과 나이(age)를 새로운 테이블인 NewEmployeeTable에 저장합니다.

1.2. 오라클의 SELECT INTO

오라클에서는 SELECT INTO 구문이 MSSQL과는 완전히 다른 목적으로 사용됩니다. 오라클에서 SELECT INTO는 PL/SQL 블록 안에서 변수에 값을 할당할 때 사용됩니다. 오라클의 SELECT INTO는 새로운 테이블을 생성하는 것이 아니라, 쿼리 결과를 변수에 저장하기 위한 구문입니다.

 

위 예제는 EmployeeTable에서 employee_id가 101인 직원의 이름(name)과 나이(age)를 PL/SQL 변수 v_name과 v_age에 저장하고 출력하는 예입니다.

2. INSERT INTO 구문

2.1. MSSQL의 INSERT INTO

MSSQL에서 INSERT INTO 구문은 기존 테이블에 새로운 데이터를 삽입하는 데 사용됩니다. 이때 데이터는 값을 직접 지정하거나 다른 테이블에서 조회된 결과를 삽입할 수 있습니다.

 

2.2. 오라클의 INSERT INTO

오라클에서의 INSERT INTO 구문도 MSSQL과 비슷한 방식으로 동작합니다. 오라클 역시 기존 테이블에 데이터를 삽입하는데 사용되며, 값을 직접 지정하거나 다른 테이블에서 데이터를 조회하여 삽입할 수 있습니다.

차이점 요약

MSSQL오라클

SELECT INTO 새로운 테이블을 생성하고 데이터를 삽입 쿼리 결과를 변수에 저장 (PL/SQL에서 사용)
INSERT INTO 기존 테이블에 데이터를 삽입 (값 직접 지정 또는 SELECT 결과 삽입) 기존 테이블에 데이터를 삽입 (값 직접 지정 또는 SELECT 결과 삽입)

결론

  • MSSQL에서는 SELECT INTO를 사용하여 새로운 테이블을 생성하고 데이터를 삽입할 수 있으며, 오라클에서의 INSERT INTO와 거의 동일한 구문을 가집니다.
  • 반면, 오라클에서는 SELECT INTO가 변수에 값을 저장하는 기능으로 사용되며, 새로운 테이블을 생성하는 기능은 제공되지 않습니다. 대신 데이터를 삽입하는 작업은 INSERT INTO 구문을 사용하여 처리합니다.

따라서 MSSQL과 오라클에서 동일한 목적의 작업을 수행하려면 구문이 약간 다르기 때문에, 각 DBMS의 문법 차이를 이해하고 적절히 사용해야 합니다.

반응형
반응형

안녕하세요

코딩하는남자 코남입니다

 

정말 정말 오랜만에 글을 쓰는듯해요..

개인적으로 이사도 하고..이직도하고..요 근래 참 많은 일들이 일어나고 있습니다ㅎㅎ

 

이번 포스팅은 프로그램단에서 오라클 쿼리를 날리실때 종종 만날수 있는 ORA 에러 코드 입니다

 

ORA-01756 : quoted string not properly terminated

ORA-01756 : 단일 인용부를 지정해 주십시오

 

 

오류 메세지의 형태는 오류 발생 위치에 따라 조금씩 다르게 보일 수 있습니다

저의 경우에는 C# 프로그램 내에서 쿼리에서 발생한 오류라 위와 같은 형태로 에러 메세지가 발생하였습니다

단일 인용부...이게 뭔말인지...

 

일단 모르면 구글링이 정답이죠??

 

 

역시 구글은 모르는게 없는듯 합니다..

제가 작성한 프로그램 내에  있는 쿼리문 중에 작은 따옴표가 누락이나 중복이 있다라는 얘기인데...

 

시작점의 작은따옴표가 누락되었네요..

참 알고 나면 별거 아닌데...찾는데 시간이 많이 걸렸습니다

 

저와 같이 ORA-01756 오류를 만나신 분들..프로그램안에서 작은 따옴표를 찾아보세요

 

그럼 이만~

반응형
반응형

MSSQL에서 오라클 DB를 링크드 설정하여 OPENQUERY를 실행하였을 경우 다음과 같은 오류가 발생합니다

 

이때 해결 하기 위한 방법 입니다

 

오류는 아래와 같이 나타 날 수 있습니다

이런 오류가 발생하였을때 SQL Server 서버시의 시작 계정에 필요한 권한을 부여하여 해결 할 수 있습니다

위의 해결 방안을 설정한 뒤 오라클의 dllhost에 정상적으로 오라클이 올라 왔는지 확인 한다

 

확인 방법은 아래 명령 프롬프트를 사용함

 

위의 이미지 처럼 명령 프롬프트에 오라클 DLL이 정상적으로 나타난다면 SSMS에 접속하여 다시 OPENQUERY를

 

실행하면 해결된 모습을 볼 수 있습니다

 

감사합니다

 

반응형

+ Recent posts