Skip to end of metadata
Go to start of metadata

 

 

개요


본 문서는 Microsoft사의 SQL Server에서 ALTIBASE로 변환할 때 고려할 사항과 변환 방법에 대해 설명한다.

SQL Server 2016와 Altibase 7.1 이상 버전을 대상으로 한다.

 

 

Icon

이 문서와 관련된 오류 및 개선사항은 기술지원포털 또는 기술지원센터로 문의주시기 바랍니다.

Icon

이 문서는 정보 제공을 목적으로 제공되며, 사전에 예고 없이 변경될 수 있습니다. 이 문서는 오류가 있을 수 있으며, 상업적 또는 특정 목적에 부합하는 명시적, 묵시적인 책임이 일절 없습니다.

이 문서에 포함된 Altibase 제품의 특징이나 기능의 개발, 발표 등의 시기는 Altibase 재량입니다.

Altibase는 이 문서에 대하여 관련된 특허권, 상표권, 저작권 또는 기타 지적 재산권을 보유할 수 있습니다.

 

SQL Server Schema 변환시 고려사항


SQL Server의 스키마는 객체를 담는 컨테이너(논리적 네임스페이스)이다.

Altibase는 스키마와 사용자가 분리되어 있지 않음으로 특정 User 단위로 맵핑하여 변환하여야 한다.

항목

SQL Server

Altibase

특징

스키마와 사용자가 분리되어 있음(SQL Server 2005 이후)

하나의 사용자(User)가 여러 스키마에 접근 가능

권한을 스키마 단위로 부여 가능

스키마 = 사용자

스키마를 따로 만들수 없고 반드시 USER 단위로 객체를 생성해야 함

예시

CREATE SCHEMA Sales AUTHORIZATION John;
CREATE TABLE Sales.Customers (...);

CREATE USER Sales IDENTIFIED BY salespwd;
CREATE TABLE Sales.Customers (...);

 

SQL Server 스키마를 Altibase로 옮길 때는 아래 표와 같이 "스키마 = User"로 치환하고, dbo 같은 공통 스키마는 별도 User를 만들어 대체한다.

항목

SQL Server

Altibase

비고

스키마 구조user 와 독립user = Schema변환시 SQL Server 의 스키마를 Altibase 에서는 User로 맵핑해야 함
기본 스키마dbo미지원Altibase는 dbo 스키마가 없음으로 특정 유저 생성으로 대체
공통 객체 관리dbo 사용별도 user 생성후 권한 부여dbo.TableName 형태는 → 특정 유저 스키마로 매핑 및 권한 부여 필요
권한 부여 단위스키마 단위 가능객체 단위만 가능스키마 단위 권한은 객체 단위 권한으로 세분화 필요
이름 충돌 처리스키마 구분으로 해결User 명으로 해결변환시 SQL Server의 스키마명이 Altibase의 USER명과 충돌하지 않도록 주의

 

 

Object 변환


SQL SERVER의 OBJECT를 ALTIBASE로 변환할 때 고려할 사항에 대해 기술한다.

 

DATATYPE


SQL SERVER의 TABLE을 Altibase로 변환할 때 각각의 DATATYPE을 어떻게 변환하는지에 대해 설명한다.

분류

SQL Server

Altibase

SQL Server 최대크기

ALTIBASE 최대 크기

비고

문자타입

 

 

 

 

 

 

 

 

CHAR

CHAR

8000 byte
CHAR(MAX) : 2GB

32000 byte

CHAR(MAX)는 ALTIBASE의 CLOB으로 변환

VARCHAR

VARCHAR

8000 byte
VARCHAR(MAX) : 최대 2GB

32000 byte

VARCHAR(MAX)는  ALTIBASE의 CLOB으로 변환

NCHAR

NCHAR

8000 byte
NCHAR(MAX) : 2GB

Max length: 16000(UTF16),
Max length: 10666(UTF8)

NCHAR(max) 는 ALTIBASE의 CLOB으로 변환

NVARCHAR

NVARCHAR

8000 byte
NVARCHAR(MAX) : 2GB

Max length: 16000(UTF16),
Max length: 10666(UTF8)

NVARCHAR(MAX)는  ALTIBASE의 CLOB으로 변환

BINARY

BYTE사용

8000 byte

32000 byte

 

VARBINARY

BLOB사용

8000 byte

2GB

VARBINARY(MAX)는  BLOB으로 변환

IMAGE
-> VARBINARY(MAX)

BLOB사용

2GB

2GB

SQL Server 2005이후
VARBINARY(MAX)로 대체 권장
TEXT, NTEXT
-> VARCHAR(MAX)
NVARCHAR(MAX)
CLOB사용

TEXT : 65536 byte
NTEXT : 2GB

2GB

SQL Server 2005이후
VARCHAR(MAX) 또는 NVARCHAR(MAX)로 대체 권장

숫자타입

 

 

 

 

BIGINT

BIGINT

 

 

 

NUMERIC

NUMERIC

 

 

 

BIT

BIT

 

 

 

SMALLINT

SMALLINT

 

 

 
TINYINTSMALLINTTINEYINT : 1 byteSMALLINT : 2 byte 

REAL

REAL

 

 

 
INTINTEGER 사용   
MONEYdecimal(p, s) 사용   
SMALLMONEYdecimal(p, s) 사용   

날짜타입

 

 

 

 

 

DATE

DATE

 

 

날짜만 저장. 형식: YYYY-MM-DD

DATETIMEOFFSET

Altibase 미지원

 

 

날짜, 시각 및 타임존까지 저장. 형식: YYYY-MM-DD hh:mm:ss[.nnnnnnn] [+|-]hh:mm
Altibase는 타임존을 제외하면 DATE 사용으로 대체 가능

DATETIME2

DATE 사용

 

 

날짜와 시각 저장. 형식: YYYY-MM-DD hh:mm:ss[.nnnnnnn]
알티베이스는 마이크로초(6자리 소수)까지 저장

SAMMLLDATETIME

DATE 사용

 

 

날짜와 시각 저장. 형식: YYYY-MM-DD hh:mm:ss

DATETIME

DATE 사용

 

 

날짜와 시각 저장(과거 버전 호환용). 형식: YYYY-MM-DD hh:mm:ss[.nnn]

TIME

DATE 사용

 

 

시각만 저장. 형식: hh:mm:ss[.nnnnnnn]
SQL SERVER는 100ns(7자리 소수)까지 저장.
Altibase는 마이크로초(6자리 소수)까지 저장

 

FUNCTION & EXPRESSION


 

분류

SQL Server

Altibase

비고

Aggregate

 

 

 

 

 

 

 

 

 

 

 

AVG

AVG

 

CHECKSUM_AGG

미 지원

 

COUNT

COUNT

 

COUNT_BIG

COUNT로 대체

 

GROUPING

GROUPING

ROLLUP, CUBE, GROUPING SETS 사용 시 집계 레벨을 구분하는 함수

GROUPING_ID

GROUPING_ID

행과 관련되는 GROUPING 비트 벡터에 대응되는 수치를 반환

MAX

MAX

 

MIN

MIN

 

STDEV

STDDEV 사용

 

STDEVP

미 지원

 

SUM

SUM

 

VAR

VARIANCE

 

Ranking

 

 

 

DENSE_RANK

DENSE_RANK

 

NTILE

NTILE

 

RANK

RANK

 

ROW_NUMBER

ROW_NUMBER

 

Conversion

 

 

 

 

CAST, CONVERT

CAST 사용

Altibase의  CONVERT 함수는 다른 기능 제공

PARSE

CAST 사용

CONVERT 함수를 이용하여 캐릭터셋 변경 가능

TRY_CAST

CAST 사용

캐스팅 실패시 오류 반환

TRY_CONVERT

미 지원

 

TRY_PARSE

미 지원

 

Date

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CURRENT_TIMESTAMP

CURRENT_TIMESTAMP

 

DATENAME

DATENAME

 

DATEPART

DATEPART

 

DAY

DATEPART 사용

 

DATEADDDATEADDALTIBASE는 날짜문자열을 TO_DATE()함수로 형식 지정 필요

DATEDIFF

DATEDIFF

 

DATEFROMPARTS

TO_DATE 사용

 

DATETIME2FROMPARTS

TO_DATE 사용

 

DATETIMEFROMPARTS

TO_DATE 사용

 

DATETIMEOFFSETFROMPARTS

TO_DATE 사용

 

EOMONTH

LAST_DAY 사용

 

GETDATE

SYSDATE 사용

반환 타입: datetime

GETUTCDATE

unix_date로 대체 가능

 

ISDATE

미 지원

 

SMALLDATETIMEFROMPARTS

TO_DATE 사용

 

SWITCHOFFSET

CONV_TIMEZONE로 대체 가능

 

SYSDATETIME

SYSDATE 사용

반환 타입: datetime2SWITCHOFFSET

SYSDATETIMEOFFSET

미 지원

 

SYSUTCDATETIME

unix_date로 대체 가능

 

TIMEFROMPARTS

TO_DATE 사용

 

TODATETIMEOFFSET

미 지원

 

YEAR

DATEPART 또는 EXTRACT로 대체 가능

 

Logical

 

CHOOSE

미 지원

 

IIF

case2로 대체 가능

 

Mathematical

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ABS

ABS

 

ACOS

ACOS

 

ASIN

ASIN

 

ATAN

ATAN

 

ATN2

ATN2

 

CEIL(n)

CEIL(n)

 

COS

COS

 

COT

미 지원

 

DEGREES

미 지원

 

EXP

EXP

 

FLOOR

FLOOR

 

LOG

LOG

LOG (m, n)

LOG10

LOG(10,m) 사용

 

PI

미 지원

 

POWER

POWER

 

RADIANS

미 지원

 

RAND

RAND

SQL Server : 0~1사이의 pseudo-random float value 반환.
Altibase : pseudo random integer value 반환. 0~2,147,483,647

ROUND

ROUND

 

SIGN

SIGN

 

SIN

SIN

 

SQRT

SQRT

 

SQUARE

미 지원

 

TAN

TAN

 

String

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ASCII

ASCII

 

CHAR

CHAR

 

CHARINDEX

INSTR, POSITION 사용

 

CONCAT

CONCAT

 

DIFFERENCE

미 지원

 

LEFT

SUBSTR, SUBSTRING 사용

SUBSTR (expr, start [, length])
Start에 양수 지정

LEN

LENGTH 사용

 

LOWER

LOWER

 

LTRIM

LTRIM

Altibase는 LTRIM (expr1 [,expr2])

RTRIM

RTRIM

Altibase는 RTRIM (expr1 [,expr2])

PATINDEX

INSTR, POSITION 사용

 

QUOTENAME

미 지원

 

REPLACE

REPLACE 사용

 

REPLICATE

REPLICATE

 

REVERSE

REVERSE_STR 사용

 

RIGHT

SUBSTR, SUBSTRING 사용

SUBSTR (expr, start [, length])
Start에 음수 지정

PATINDEX

INSTR, POSITION 사용

 

SOUNDEX

미 지원

 

SPACE

LPAD, RPAD 사용

 

STR

TO_CHAR 사용

 

STUFF

STUFF

 

SUBSTRING

SUBSTRING

 

UNICODE

미 지원

 

UPPER

UPPER

 

 

OBJECT


 

분류

SQL Server

Altibase

비고

CONSTRAINT

지원

지원

 

TRIGGER

지원

지원

 

Multi Key-Index

지원

지원

 

VIEW

지원

지원

 

UPDATABLE VIEW

지원

지원

ALTIBASE에서
VIEW 생성시 WITH READ ONLY 옵션을 지정하지 않으면
updatable view가 생성된다.

SEQUENCE

지원

지원

 

STORED FUNCTION/PROCEDURE

지원

지원

 

SYNONYM

지원

지원

 

Temporary Table

지원

지원

ALTIBASE에서
Temporary Table은 Volatile TableSpace안에서 생성하여 이용

USER

지원

지원

 

REPLICATION

지원

지원

 

 

CREATE TABLESPACE


SQL Server에서는 데이터 저장소로 Database를 관리하나 Altibase에서는 테이블스페이스를 관리한다.
Altibase에서의 테이블스페이스는 저장 공간에 따라 메모리 테이블스페이스, 디스크 테이블스페이스로 나뉘며 생성 주체에 따라 시스템 테이블스페이스, 사용자 정의 테이블 스페이스, 저장 내용에 따라 딕셔너리 테이블스페이스, 언두 테이블스페이스, 임시 테이블스페이스, 데이터 테이블 스페이스 등으로 나뉘어 진다.
따라서 Altibase로 변환할 때는 데이터 저장 공간에 따라 CREATE MEMORY DATA TABLESPACE, CREATE DISK DATA TABLESPACE 구문을 이용하여 생성한다.

다음은 SQL Server의 DATABASE를 Altibase의 테이블스페이스로 변환할 때 CREATE TABLESPACE 구문에서 지정하는 여러 옵션들의 변환 가이드를 설명한 것이다.

SQL Server

Altibase

비고

FILENAME

FILENAME

 

SIZE

SIZE

기본 100MB

MAXSIZE

MAXSIZE

 

FILEGROWTH

AUTOEXTEND ON NEXT

 

FILESTREAM

미 지원

ALTIBASE에서 구문생성시 삭제

DEFAULT_FULLTEXT_LANGUAGE

미 지원

ALTIBASE에서 구문생성시 삭제

DEFAULT_LANGUAGE

미 지원

ALTIBASE에서 구문생성시 삭제

NESTED_TRIGGERS

미 지원

ALTIBASE에서 구문생성시 삭제

TRANSFORM_NOISE_WORDS

미 지원

ALTIBASE에서 구문생성시 삭제

TWO_DIGIT_YEAR_CUTOFF

미 지원

ALTIBASE에서 구문생성시 삭제

DB_CHAINING

미 지원

ALTIBASE에서 구문생성시 삭제

TRUSTWORTHY

미 지원

ALTIBASE에서 구문생성시 삭제

 

CREATE TABLE


SQL Server의 TABLE을 Altibase로 변환할 때 CREATE TABLE 시 사용한 여러 옵션을 알맞게 변경해야 한다.
Altibase는 OBJECT TABLE, XMLType TABLE을 제공하지 않는다.
Altibase는 메모리 TABLE을 제공한다. 따라서 변환할 TABLE의 특성을 잘 파악하여 메모리 TABLE을 생성한다면 메모리 TABLESPACE를 지정하여 생성해야 한다.
만약 메모리 TABLE을 생성한다면 SQL Server에서 사용했던 CREATE TABLE 구문에 사용한 옵션들을 사용할 수 없다.
메모리 TABLE 생성 구문은 Altibase의 SQL 관련 매뉴얼을 참조하면 된다.
SQL SERVER의 TABLE을 DISK TABLE로 변환하고자 한다면, CREATE TABLE 시 설정할 수 있는 여러 옵션을 다음과 같이 Altibase에 맞게 변환해야 한다.

1. Column definition

SQL Server

Altibase

비고

FILESTREAM

미 지원

 

COLLATE

미 지원

 

CONSTRAINT

CONSTRAINT

Altibase는 PRIMARY KEY, UNIQUE 지정 시 index 이름을 명시할 수 없다

IDENTITY

미 지원

 

ROWGUIDCOL

미 지원

 

2. data type

SQL Server

Altibase

비고

Precision, scale

Precision, scale

 

max

미 지원

 

CONTENT

미 지원

 

DOCUMENT

미 지원

 

xml_schema_collection

미 지원

 

3. column constraint

SQL Server

Altibase

비고

PRIMARY KEY

PRIMARY KEY

 

NULL, NOT NULL

NULL, NOT NULL

 

UNIQUE

UNIQUE

 

CLUSTERED, NONCLUSTERED

미 지원

 

FOREIGN KEY REFERENCES

FOREIGN KEY REFERENCES

 

partition_scheme_name

PARTITION BY RANGE | HASH | LIST

Table 생성시 파티션테이블 종류 지정.

4. computed column definition

    지원하지 않음

5. table constraint

SQL Server

Altibase

비고

PRIMARY KEY

PRIMARY KEY

 

CLUSTERED, NONCLUSTERED

미 지원

 

FOREIGN KEY REFERENCES

FOREIGN KEY REFERENCES

 

partition_scheme_name

PARTITION BY RANGE | HASH | LIST

Table 생성시 파티션테이블 종류 지정.

6. table_option

SQL Server

Altibase

비고

DATA_COMPRESSION

COMPRESS(column_name)로 대체

Altibase는 컬럼별 압축기능 제공

7. index_option

SQL Server

Altibase

비고

PAD_INDEX

미 지원

 

FILLFACTOR

미 지원

 

IGNORE_DUP_KEY

미 지원

Altibase는 OFF 상태임

STATISTICS_NORECOMPUTE

미 지원

Altibase는 OFF 상태임

ALLOW_ROW_LOCKS

미 지원

Durability Level 설정에 따라 정의

ALLOW_PAGE_LOCKS

미 지원

Durability Level 설정에 따라 정의

DATA_COMPRESSION

미 지원

INDEX 압축은 미지원

 

CREATE USER


Altibase는 데이터베이스 로그인과 유저를 분리하여 생성하지 않고 하나의 유저로 생성하여 관리한다.

SQL ServerAltibase비고
CREATE LOGIN <login_name> WITH PASSWORD = '<password>';

Users based on logins in master
CREATE USER user_name
    [
        { FOR | FROM } LOGIN login_name
    ]
    [ WITH DEFAULT_SCHEMA = schema_name ]
[ ; ]
CREATE USER <user_name> IDENTIFIED BY ‘<password>’
DEFAULT TABLESPACE = tablespace_name
 

 

CREATE INDEX


Altibase는 BTREE와 RTREE INDEX만 제공하고 BITMAP, CLUSTER, REVERSE, Global partitioned INDEX를 제공하지 않는다.

다음은 Altibase로 변환할 때 CREATE INDEX 구문에 사용하는 옵션들에 대한 변환 방법이다.

SQL Server

Altibase

비고

UNIQUE

UNIQUE

 

CLUSTERED | NONCLUSTERED

미 지원

 

ASC | DESC

ASC | DESC

 

INCLUDE

미 지원

 

filter_predicate

미 지원

 

partition_scheme_name

PARTITION  ON

Local Index만 지원

ON filegroup_name

미 지원

 

table_or_view_name

Table_name

View는 지원하지 않음

PAD_INDEX

미 지원

 

FILLFACTOR

미 지원

 

SORT_IN_TEMPDB

미 지원

 

IGNORE_DUP_KEY

미 지원

Altibase는 ON 상태임

STATISTICS_NORECOMPUTE

미 지원

Alitbase는 OFF 상태임

DROP_EXISTING

미 지원

 

ONLINE

미 지원

Alitbase는 OFF 상태임

ALLOW_ROW_LOCKS

미 지원

Durability Level 설정에 따라 정의

ALLOW_PAGE_LOCKS

미 지원

Durability Level 설정에 따라 정의

MAXDOP

미 지원

생성시에만 적용

DATA_COMPRESSION

COMPRESS(column_name)로 대체

 

 

 

SQL Conversion


SQL Server의 SQL 문들을 ALTIBASE로 변환하는 방법을 설명에 대하여 설명한다.

 

JOIN


Altibase는 아래의 조인 외에도 Semi Join, Anti Join을 제공한다.

SQL Server

Altibase

비고

INNER JOIN

INNER JOIN

 

LEFT OUTER JOIN

LEFT OUTER JOIN

 

RIGHT OUTER JOIN

RIGHT OUTER JOIN

 

FULL OUTER JOIN

FULL OUTER JOIN

 

CROSS JOIN

CROSS JOIN

 

 

Execution Query


Altibase의 쿼리 종결 문자는 “;” 이다. 따라서 여러 쿼리를 한번에 실행하려 한다면 쿼리마다 종결문자 “;”로 구분해 주어야 한다.

SQL Server

Altibase

비고

GO

;
Commit;

기본값은 Autocommit

 

Temporary Table


SQL ServerAltibase비고
CREATE TABLE #TempProcessCREATE TABLE TEMPORARY table_name (…) on commit (...) rows TABLESPACE volatile_tablespace_name 

 

Control Statement


 

SQL Server

Altibase

IF

If (조건)
Else if (조건)
Else
End

If 조건 then
Elseif 조건 then
Else
End

While

While (조건)
BEING
END
BREAK =>while문 탈출

While 조건 loop
End loop
Exit when 조건 =>조건 만족할 때 반복 loop탈출

 

Identity Attribute


Altibase에는 Identity 속성은 존재하지 않는다. 따라서 필요시 SEQUENCE를 만들어 컬럼의 DEFAULT 값에 적용하여 사용한다.

예를 들면 아래와 같다.

SQL ServerAltibase
-- c1 컬럼에 1씩 자동증가 적용
create table seq_test
(c1 int identity(1,1) not null
...
);
-- sequence 생성
create sequence seq1 start with 1 increment by 1 nocache;
-- default 값에 sequence 적용
create table seq_test
(c1 integer default seq1.nextval not null,
...
);

 

Procedure Conversion


Altibase의 PROCEDRUE 생성 및 실행구문은 SQL 서버와 다른 부분이 있다.
예제를 통하여 PROCEDURE 변경 방법을 확인한다.

 

Parameter Declaration


SQL Server의 파라미터 선언부를 Altibase로 변환 시 다음 작업이 필요하다.
SQL Server의 파라미터 선언에서 ‘@’ 기호를 없앤다.
파라미터의 성격에 따라 in , out , in out 을 명시해준다.
Function일 경우 실행 후 하나의 값을 반환해 주는 것으로 반드시 RETURN 다음의 데이터 타입을 명시해야 한다.

SQL ServerAltibase

 

Variable Declaration


Altibase의 변수 선언은 AS와 BEGIN 사이에서 정의된다.
SQL Server의 변수 선언에서 ‘@’ 기호를 없앤다.
변수 선언 할 때 구분자인 ‘,’를 ‘;’로 바꾼다.
마지막 변수 선언에도 항상 ‘;’로 마지막임을 선언 한다.

SQL ServerAltibase

 

Assignment


SQL Server은 변수에 값 할당 시 SET과 @ 를 이용한다.
Altibase는 이를 변경하기 위해서 아래와 같이 2가지 변경 방법을 지원한다.

  1. SET, ‘@’ 문자를 없앤다. ‘=’ 를 ‘ := ’로 바꾼다. 구분자인 ‘,’를 ‘;’로 바꾸고 마지막에 항상 ‘;’로 마지막임을 선언 한다.
  2. ‘@’ 문자를 없앤다. 구분자인 ‘,’를 ‘;’로 바꾸고 마지막에 항상 ‘;’로 마지막임을 선언 한다.
SQL ServerAltibase

흐름제어(Control_flow_statement) - IF문


Altibase의 문장 끝에는 항상 ‘;’로 마지막임을 표시한다.
IF문 처음에는 IF (condition) THEN으로 처음을 표시한다.
IF문 끝에는 END IF로 IF문이 끝임을 표시한다.

SQL ServerAltibase

 

SELECT 절


Altibase의 문장 끝에는 항상 ‘;’로 마지막임을 표시한다.
Altibase에서 select의 resultset을 client에 보내기 위해서는 DB 객체에 REF CURSOR 를 먼저 작성해주어야 한다. 그리고 sp의 인자에 ref cursor를 인자로 작성하여야 한다. 그리고 해당 쿼리를 실행할 때 Open이라는 명령어로 실행 한다.
SQL Server의 ‘@’ 문자를 없앤다

SQL ServerAltibase

 

Exception Handler


Altibase의 문장 끝에는 항상 ‘;’로 마지막임을 표시한다.
Altibase의 Exception Handler는 해당 Exception이 발생했을 때 처리하는 기술이다.
Exception 처리는 항상 BEGIN …. END; 구문 안에서 처리 해야 한다.
시스템 정의 EXCEPTION이나 사용자 정의 EXCEPTION의 이름을 기술하고 해당 Exception을 만날 때 해당 statement를 처리하고, 현재 발생한 Exception을 처리하지 못할 경우 최종적으로 OTHERS 루틴으로 처리 된다.
적용 받은 레코드수가 0인지 체크하는 구문은 SQL%ROWCOUNT상수로 확인 할 수 있다.
시스템 정의 Exception은 파일 마지막에 첨부합니다

SQL ServerAltibase

 

SP Call


Altibase의 문장 끝에는 항상 ‘;’로 마지막임을 표시한다.
SQL Server의 SP 호출은 exec sp_name 로 호출 하고 sp 인자를 괄호 없이 지정해주지만, Altibase에서 SP_name 을 실행하고 괄호안에 sp의 인자를 명시해준다.
SQL Server의 ‘@’ 문자를 없앤다.

SQL ServerAltibase

 

Functions


Altibase의 문장 끝에는 항상 ‘;’로 마지막임을 표시한다.
함수별로 사용법은 상이할 수 있고, 함수 명이 다를 수도 있다.
SQL Server Function의 ‘@’ 문자를 없앤다.

SQL ServerAltibase

 

ETC


Altibase의 문장 끝에는 항상 ‘;’로 마지막임을 표시한다.
SQL Server의 ‘@’ 문자를 없앤다.

SQL ServerAltibase
UPDATE STATISTICS index_name
필요 없음
with (nolock)
필요 없음(삭제)
order, level 등의 keyword 사용
order, level 등의 keyword 사용 금지( 알티베이스 예약어)

 


Altibase에서 DB Link를 사용시에는 SELECT의 경우 REMOTE_TABLE(dblink명, Query);

DML의 경우 REMOTE_EXECUTE_IMMEDIATE(dblink명, Query); 를 사용한다.

ALTIBASE DB LINK에 대한 상세한 내용은 ALTIBASE 7.3 온라인 매뉴얼 ( Database Link User’s Manual ) 를 참조

 

JOIN Update


Altibase에서 Join Update를 처리하기 위해서는 두가지의 방법이 있다.

1. JOIN UPDATE를 사용

  • 각 Table에 Primary Key 또는 Unique Key가 존재하여야 한다.

2. Merge Join의 update를 사용.

  • Merge into A using ( SELECT … )
    WHEN matched then
    Update …

 

 

Using Cursor


SQL Server의 커서를 Altibase로 변환하는 방법을 예제를 통하여 확인한다.

SQL ServerAltibase

 

 

Exception Code


Error Message Reference 매뉴얼 참조

Exception Name

Error Code
(integer)

Error Code
(hexadecimal)

Error Section

"CURSOR_ALREADY_OPEN"

201062

31166

qpERR_ABORT_QSX_CURSOR_ALREADY_OPEN

"DUP_VAL_ON_INDEX"

201063

31167

qpERR_ABORT_QSX_DUP_VAL_ON_INDEX

"INVALID_CURSOR"

201064

31168

qpERR_ABORT_QSX_INVALID_CURSOR

"INVALID_NUMBER"

201065

31169

qpERR_ABORT_QSX_INVALID_NUMBER

"NO_DATA_FOUND"

201066

3116A

qpERR_ABORT_QSX_NO_DATA_FOUND

"PROGRAM_ERROR"

201067

3116B

qpERR_ABORT_QSX_PROGRAM_ERROR

"STORAGE_ERROR"

201068

3116C

qpERR_ABORT_QSX_STORAGE_ERROR

"TIMEOUT_ON_RESOURCE"

201069

3116D

qpERR_ABORT_QSX_TIMEOUT_ON_RESOURCE

"TOO_MANY_ROWS"

201070

3116E

qpERR_ABORT_QSX_TOO_MANY_ROWS

"VALUE_ERROR"

201071

3116F

qpERR_ABORT_QSX_VALUE_ERROR

"ZERO_DIVIDE"

201072

31170

qpERR_ABORT_QSX_ZERO_DIVIDE

"INVALID_PATH"

201237

31215

qpERR_ABORT_QSX_FILE_INVALID_PATH

"INVALID_MODE"

201235

31213

qpERR_ABORT_QSX_INVALID_FILEOPEN_MODE

"INVALID_FILEHANDLE"

201238

31216

qpERR_ABORT_QSX_FILE_INVALID_FILEHANDLE

"INVALID_OPERATION"

201239

31217

qpERR_ABORT_QSX_FILE_INVALID_OPERATION

"READ_ERROR"

201242

3121A

qpERR_ABORT_QSX_FILE_READ_ERROR

"WRITE_ERROR"

201243

3121B

qpERR_ABORT_QSX_FILE_WRITE_ERROR

"ACCESS_DENIED"

201236

31214

qpERR_ABORT_QSX_DIRECTORY_ACCESS_DENIED

"DELETE_FAILED"

201240

31218

qpERR_ABORT_QSX_FILE_DELETE_FAILED

"RENAME_FAILED"

201241

31219

qpERR_ABORT_QSX_FILE_RENAME_FAILED

 

 

 

 

Icon

 

 

 

 

  • No labels