select * into new_table
oracle(8i)은?
create table new_table as select * from old_table
오라클로 되어 있는 SQL문을 MS SQL Server 버전으로 변경해야 할 필요가 있거나 그 반대의 경우, 때에 따라 상당히 복잡한 작업이 들어가게 된다. 변경해야 할 오라클 SQL문이 ANSI 표준에 준하다면 그런대로 괜찮다.
우선 아래 내용대로 찾아 바꾼다. (텍스트에디터 이용)
오라클 | MS SQL |
|| | + |
FROM DUAL | FROM절 삭제 |
LENGTH | LEN |
MOD | % |
SYSDATE | GETDATE() |
NVL(a, b) | ISNULL(a, b) |
TO_CHAR(날짜, 'YYYY-MM-DD') | CONVERT(VARCHAR(10), 날짜, 120) |
TO_DATE(문자열) | CONVERT(DATETIME, 문자열) |
여기까지는 간단하다. 문제는 이 다음, 커서(Cursor)나 MINUS, CONNECT BY 구문이 포함될 경우다.
나머지는 출처에서 확인
1. Cursor
CREATE TABLESPACE TS_BTS
DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EFUSIONI\TS_BTS.DBF' SIZE 100M;
CREATE USER BTS IDENTIFIED BY BTS DEFAULT TABLESPACE ts_bts;
GRANT UNLIMITED TABLESPACE to bts;
GRANT CONNECT, RESOURCE, CREATE VIEW, DBA TO bts;
글쓴이 : 김홍선
|
오라클 데이터 베이스를 쓰면서 데이터 타입을 DATE 형식으로 썼을때
SYSDATE가 아닌 전달받은 날짜로 입력시 형식이 맞지 않으면 직면하는 에러이다..
잊어먹지 않기 위해 메모를 남겨둠...
insert into t_date(regist_date) values (to_date(?, 'yyyy-mm-dd hh:mi:ss));
insert into t_date(regist_date) values (to_date(?, 'yyyy-mm-dd hh24:mi:ss));
SQL*Plus 사용시 import 할때
요넘이 항상 문제이다..
실제로 &n 이라는 문자가 매겨변수를 입력받는 문자이다 보니 매겨변수를 계속 넣으라고 한다면
설정을 이렇게 변경해 보길 바란다..
SQL > set scan off
물런 반대는
SQL > set scan on
이 되겠지? ㅋㅋ
다음 포스팅은 SQL*Plus 의 setting 들을 함 써볼까 한다.