database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 6618 게시물 읽기
No. 6618
T-SQL -> ANSI-SQL-92 변환 및 개념 문의..
작성자
서동훈(jasin)
작성일
2013-01-16 18:44
조회수
9,180

안녕하세요..

검색을 계속 해도 답이 안나와서 글을 적어봅니다.

 

현재 저의 상태는 디비을 한 일주일 써본 실력? 상태라고 생각합니다. (오래 쓰긴했는데, 아는 것이 별루 없는 상태라서요..)

 

현재 제가 하고자 하는 일은 T-SQL로 된 SQLANSI-SQL 구문으로 변환하는것입니다.

우선 T-SQLANSI-SQL에서 기능을 확장해서 만들걸로 알고 있습니다.

T-SQLANSI-SQL을 확장해서 만들었다고 하면, 어떤것들을 확장해서 만들었는지 알고 싶습니다. 그래야 T-SQL에서만 동작하는 것을 ANSI-SQL로 변환할수 있을테니까요.

(TOP 같은 구문은 ANSI에서 없고 T-SQL에서만 있는걸로 아는데, 제말을 저런것만 알수 있을까 하는것입니다.)

 

글을 잘 못 써서 읽기 힘드신점 죄송합니다.

 

간략하게 말하면 T-SQL -> ANSI-SQL 로 변환하려면 어떻게 해야 되는가?

 

인데, 위에 관한 조언이나, 참고자료 아시는거 있으시면 링크라도 알려주시면 너무 감사하겠습니다..

 

그리고 혹시 T-SQLANSI-SQL-92 syntax 만 나와 있는 사이트나 문서 있으시면 알려주시면 대단히 감사하겠습니다.

 

이 글에 대한 댓글이 총 3건 있습니다.

우선 ANSI SQL 92 문서는 http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt 에서 찾으실 수 있습니다.

 

 

ISO/IEC 9075:1992 는 개념 모델에 가깝기 때문에 100% 지원하는 DBMS도 존재하지 않으며,

추가로 보완하여 1999, 2003, 2008, 2011 버전까지 나와 있는 상태입니다.

 

설사 가능하더라도 최적의 성능을 낼 수 없기에 DBMS 회사별로 T-SQL이니 PL/SQL 등등을 만들어 냅니다.

 

 

간략하게 말하면 T-SQL -> ANSI-SQL는 도데체 무슨 의미가 있을까?

입니다.

우욱님이 2013-01-17 10:44에 작성한 댓글입니다. Edit

우선 답글 달아주셔서 감사합니다.

 

우선 T-SQL -> ANSI-SQL 로 변환하는 작업을 하는 이유는

현재 쓰고 있는 디비을 다른 디비로 바꾸기 위한 작업니다.

 

그러니까 현재 쓰고 있는 T-SQL에서 다른 디비의 용 SQL로 변환을 해야한다는것이지요.

검색해서 나오는게 아웃터 조인은 결과가 다르니 다른 구문으로 바꿔줘야한다고 나오는데, 

저는 이런 아웃터 조인이나, 머 디비커넥션 명령어들이 다르자나요? 그런것을 T-SQL은 이건데 

ANSI-SQL은 명령어(구문)이 이렇다는걸 문서로 만들어야되서요...ㅠ_ㅜ

 

짧은 지식이라.. 막막해서요...도움 부탁드리겠습니다. ㅠ

서동훈(jasin)님이 2013-01-17 12:09에 작성한 댓글입니다.

 TOP을 예를 들어보시죠...

일단 ANSI 1992로는 표현이 불가능합니다.

ANSI 2008로는 

SELECT * FROM T FETCH FIRST 10 ROWS ONLY;

로 표현이 가능하며 이러한 표현은 MS-SQL, ORACLE, MySQL 아직 지원하지 않습니다. DB/2는 지원합니다.

 

다른 예로 GROUP_CONCAT()을 보시면 (MySQL이나 CUBRID에 있습니다.)

MS-SQL에는 없어서 X 빠지게 구현을 합니다.

ANSI92로는 불가능합니다.

목표하는 DB가 MySQL이었으면 함수 하나로 끝납니다.

 

문제 1: ANSI 1992로 표현 자체가 불가능하면 어떻???

문제 2: 목표로하는 DB에서는 완전 쉽고 빠르게 될 수 있는 방법이 있는데 ANSI92가 가능하고 목표DB에서 실행된다고 거기서 끝낸다면 완전 빠르게 할 수 있는 걸 넘흐 오래 걸려서 하게 되겠지만 그냥 넘어가면 내 양심은 어떻???

문제 3: MS-SQL -> ANSI92 -> 다른DB 로 일을 2번씩 하는 삽질을 해서 얻게 되는 거대한 멘붕은 어떻???

 

 

일 시키신 선배님께 "일을 시키신 선배님~~~ 네가 쌤풀로 top 절 하나만 ansi 92로 만들어줘보면 안되겠니???" 라고 말씀드려보세요...ㅋㅋ

우욱님이 2013-01-17 18:03에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
6621이런 쿼리가 가능한가요? [3]
초보
2013-01-21
8162
6620마지막날의 데이타만 보고 싶을때 [1]
초보
2013-01-18
7371
6619연속된 날짜 출력하기 [1]
한동
2013-01-17
8802
6618T-SQL -> ANSI-SQL-92 변환 및 개념 문의.. [3]
서동훈
2013-01-16
9180
6617SQL Server 2005 로그인계정중 [1]
홍준식
2013-01-14
8432
6615MSSQL 복원 문의드립니다. [1]
MSSQL
2013-01-11
9363
6614중복값제거 도움좀 부탁드립니다 [3]
김천기
2013-01-09
7949
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다