http://msdn.microsoft.com/en-us/library/ff878058(v=SQL.110).aspx

 

 

이미 Sequence 에 대한 MSDN 이 잘 나와 있네요.

 

--Create the Test schema
CREATE SCHEMA Test ;
GO

-- Create a table
CREATE TABLE Test.Orders
    (OrderID int PRIMARY KEY,
    Name varchar(20) NOT NULL,
    Qty int NOT NULL);
GO

-- Create a sequence
CREATE SEQUENCE Test.CountBy1
    START WITH 1
    INCREMENT BY 1 ;
GO

-- Insert three records
INSERT Test.Orders (OrderID, Name, Qty)
    VALUES (NEXT VALUE FOR Test.CountBy1, 'Tire', 2) ;
INSERT test.Orders (OrderID, Name, Qty)
    VALUES (NEXT VALUE FOR Test.CountBy1, 'Seat', 1) ;
INSERT test.Orders (OrderID, Name, Qty)
    VALUES (NEXT VALUE FOR Test.CountBy1, 'Brake', 1) ;
GO

-- View the table
SELECT * FROM Test.Orders ;
GO
 
이와 함께
Oracle Sequence 부분도 참고해 주세요.
http://www.techonthenet.com/oracle/sequences.php

CREATE SEQUENCE supplier_seq
    MINVALUE 1
    MAXVALUE 999999999999999999999999999
    START WITH 1
    INCREMENT BY 1
    CACHE 20;



http://www.sqler.com/bColumn/348415

SQL 버전별 비교 등을 가끔 하는 쓸만한게없네 윤선식입니다.

오늘은 SERVERPROPERTY에 대해 버전별로 정리해 보았습니다.

가장 대표적인 것이 SELECT SERVERPROPERTY('MachineName') 인데요. 컴퓨터명을 반환합니다.

속성

설명

Result Example

Version

BuildClrVersion

CLR Version를 표시

v2.0.50727

2005, 2008

Collation

서버의 디폴트 정렬기준을 표시

Korean_Wansung_CI_AS

2000, 2005, 2008

CollationID

Collation ID를 표시

53265 (KW_CI_AS)

2005, 2008

ComparisonStyle

CollationWindows 비교 Style

196609 (KW_CI_AS)

2005, 2008

ComputerNamePhysicalNetBIOS

SQL Server Instance가 실행되고 있는
Local Computer
NetBIOS
- MSCS
를 사용할 경우 이 값이 다름.

TEST_SERVER

2005, 2008

Edition

SQL Instance Edition 표시
- Developer, Enterise

Standard Edition

2000, 2005, 2008

EditionID

Edtion ID

-2117995310

2005, 2008

EngineEdition

Engine 정보를 표시
- 1 : MSDE, 2 : Standard, 3 : Enterprise

2

2000, 2005, 2008

InstanceName

현재 접속한 사용자의 Instance명 표시

NULL

2000, 2005, 2008

IsClustered

MSCS 인지 표시
- 1 : MSCS, 0 :
아닌 경우

0

2000, 2005, 2008

IsFullTextInstalled

Fulltext 검색구성요소가 설치되었는지 표시
- 1 :
설치됨, 0 : 설치안됨

1

2000, 2005, 2008

IsIntegratedSecurityOnly

통합인증모드인지 표시
- 1 :
통합인증, 0 : 통합인증 아님

0

2000, 2005, 2008

IsSingleUser

Single 사용자 모드인지 표시
- 1 : single, 0 : Multi

0

2000, 2005, 2008

IsSyncWithBackup

게시 DB 또는 배포 DB 인지, 그리고 트랜잭션 복제를 중단하지 않고 복원 가능한 지 표시
- 1 : True, 0 : False

NULL

2000

LCID

Collation Local ID 표시

1042

2005, 2008

LicenseType

SQL Server 라이선스 모드 표시
- PER_SEAT, PER_PROCESSOR, DISABLED

PER_SEAT

2000, 2005, 2008

MachineName

NT HostName을 표시

TEST_SERVER

2000, 2005, 2008

ProcessID

SqlServer.exe 가 사용중인 프로세스ID

1992

2000, 2005, 2008

NumLicenses

LicenseType에 따른 License 수량을 표시

8

2000, 2005, 2008

ProductVersion

SQL Server Version을 표시
- majer.minor.build

10.0.4000.0

2000, 2005, 2008

ProductLevel

제품 레벨을 표시
- RTM :
선적 버전, SPn : SP 버전, Bn : 베타 버전

SP2

2000, 2005, 2008

ResourceLastUpdateDateTime

리소스 DB를 마지막으로 update한 일시 표시

2010-09-16 23:11:59.183

2005, 2008

ResourceVersion

리소스 DB Version 표시

10.00.4000

2005, 2008

ServerName

현재 InstanceServer.
MachineName
과 다를 수 있음.

TEST_SERVER

2000, 2005, 2008

SqlCharSet

데이터 정렬 ID SQL 문자집합 ID

12

2005, 2008

SqlCharSetName

데이터 정렬 ID SQL 문자집합 이름

cp949

2005, 2008

SqlSortOrder

데이터 정렬 ID SQL 정렬순서 ID

0

2005, 2008

SqlSortOrderName

데이터 정렬 ID SQL 정렬순서 이름

bin_ascii_8

2005, 2008

FilestreamShareName

FILESTREAM이 사용하는 공유 이름

MSSQLSERVER

2008

FilestreamConfiguredLevel

구성된 FILESTREAM 접근 수준
- 0 : FILESTREAM
지원 해제
- 1 : TSQL
에서 FILESTREAM 사용하도록 설정
- 2 : TSQL
Win32 Streaming Access에서
     FILESTREAM
을 사용하도록 설정

0

2008

FilestreamEffectiveLevel

효과적인 FILESTREAM 접근 수준

0

2008

 

사실상 2005 2008은 거의 같네요. FileStream 부분만 추가되었을 뿐

20082008 R2의 경우는 지원하는 속성은 같습니다. 다만 값이 다를 뿐이죠.

 

Version별 설명입니다.

SQL Server 2008 R2 : http://msdn.microsoft.com/ko-kr/library/ms174396.aspx

SQL Server 2008 : http://msdn.microsoft.com/ko-kr/library/ms174396(v=SQL.100).aspx

SQL Server 2005 : http://msdn.microsoft.com/ko-kr/library/ms174396(v=SQL.90).aspx

SQL Server 2000 : http://msdn.microsoft.com/ko-kr/library/aa259183(SQL.80).aspx

http://www.sqler.com/319831

안녕하세요?

 

일전에 제가 엑셈에 교육받으러 갔을 때 받은 자료를 기재해서 올립니다.

 

1.     Oracle

-       Lock Compatibility

Requested mode

Existing granted mode

N

SS

SX

S

SSX

X

Null (N)

Yes

Yes

Yes

Yes

Yes

No

Sub-Shared (SS)

Yes

Yes

Yes

No

No

No

Sub-Exclusive (SX)

Yes

Yes

No

No

No

No

Shared (S)

Yes

No

No

Yes

No

No

Shared Sub-Exclusive (SSX)

Yes

No

No

No

No

No

Exclusive (X)

Yes

No

No

No

No

No

 

2.     SQL Server

-       Lock Type (Lock Resource)

Lock Resource

Description

RID

Heap내의 특정 행 보호

KEY

Serializable Transaction에서 Key Range Index 행 보호

PAGE

8-kilobyte(KB) Page 보호

EXTENT

연속적인 8개의 page 보호

HOBT

Heap or B-tree 보호

TABLE

모든 데이터와 인덱스를 포함한 전체 테이블 보호

FILE

Database file 보호

APPLICATION

Application-specified resource 보호

METADATA

Metadata 보호

ALLOCATION UNIT

Allocation unit 보호

DATABASE

Database 보호

 

-       Lock Mode

Mode

Description

Exclusive Lock (X)

- INSERT, UPDATE, DELETE와 같이 데이터를 변경하는 작업에

대해 사용

Intent Lock

- Lock Escalation을 위해 Table/Page에 사용

1)     Intent Shared (IS)

2)     Intent Exclusive (IX)

3)     Shared with Intent Exclusive (SIX)

4)     Intent Update (IU)

5)     Shared Intent Update (SIU)

6)     Update Intent Exclusive (UIX)

Schema Lock

- Table Schema에 관련된 작업 수행 시에 사용

 (Schema Modification (Sch-M), Schema Stability (Sch-S))

Bulk Update Lock (BU)

- Table Bulk Copy 혹은 TABLOCK Hint 사용 시 발생

Key-Range Lock

- Serializable Transaction에 의해 읽혀진 Key 구간에 대해

다른 Transaction Insert 방지

 

-       Intent Lock Compatibility

Requested mode

Existing granted mode

IS

S

U

IX

SIX

X

Intent Shared (IS)

Yes

Yes

Yes

Yes

Yes

No

Shared (S)

Yes

Yes

Yes

No

No

No

Update (U)

Yes

Yes

No

No

No

No

Intent Exclusive (IX)

Yes

No

No

Yes

No

No

Shared with Intent Exclusive (SIX)

Yes

No

No

No

No

No

Exclusive (X)

No

No

No

No

No

No

 

 

사실상 Oracle 관련해서 들은 내용은 크게 기억이 안 나네요. -_-


http://www.sqler.com/269782

안녕하세요?

MSSQL Oracle 함수를 비교하신 분들이 많은데요. 의외로 예제를 실어 놓은 곳이 거의 없더군요하여 준비해 보았습니다.

 

하지만, 한 번에 너무 많은 것을 올려놓으면 보기 힘들기에

오늘은 그 첫번째 시간으로 문자열 중 10가지만 적어봅니다.

 

1.     문자 식에서 가장 왼쪽 문자의 ASCII 코드 값 반환 (숫자로 표시됨)

구분

MSSQL

Oracle

함수

ASCII

ASCII

용례

SELECT ASCII('A')

SELECT ASCII('A') FROM DUAL

결과

65

65

è  MSSQL이든 ORacle이든 ‘’ 안에 여러 개의 문자가 있어도 가장 좌측 값만 반환합니다.

, SELECT ASCII(‘A’) SELECT ASCII(‘ABCDEFG’) 나 결과는 같습니다.

 

 

2.     문자 합치기

구분

MSSQL

Oracle

함수

+

CONCAT 또는 ||

용례

SELECT '동해물과' + '백두산이'

1. SELECT '동해물과 ' || '백두산이' FROM DUAL

2. SELECT CONCAT('동해물과 ','백두산이') FROM DUAL

결과

동해물과 백두산이

동해물과 백두산이

 

 

3.     ASCII 코드를 문자로 변환하기

구분

MSSQL

Oracle

함수

CHAR

CHR

용례

SELECT CHAR(67)

SELECT CHR(67) FROM DUAL

결과

C

C

è  참고로 9번은 TAB, 10LF(Line Feed), 13번은 CR(Carriage Return) 입니다.

 

 

4.     좌측에서 몇 번째에 해당 문자가 있는지 알려주기

구분

MSSQL

Oracle

함수

CHARINDEX

INSTR

용례

SELECT CHARINDEX('마이', '고마해라. 마이 무우따 아이가?')

SELECT INSTR('고마해라. 마이 무우따 아이가?','마이' ) FROM DUAL

결과

7

7

è  MSSQLOracle의 함수사용 순서가 다릅니다.

è  MSSQL에는 패턴찾기에 PATINDEX를 많이 사용합니다. 위와 같은 결과를 얻으려면

SELECT PATINDEX('%마이%', '고마해라. 마이 무우따 아이가?')

처럼 사용하면 됩니다.(와일드 카드 사용 가능)

 

 

5.     대문자 변환, 소문자 변환

구분

MSSQL

Oracle

함수

UPPER / LOWER

UPPER / LOWER

용례

SELECT UPPER('aBcDeF'), LOWER('aBcDeF')

SELECT UPPER('aBcDeF'), LOWER('aBcDeF') FROM DUAL

결과

ABCDEF abcdef

ABCDEF abcdef

 

 

6.     좌측공간을 특정 문자로 채워주기

구분

MSSQL

Oracle

함수

지원하지 않음(없음)

LPAD

용례

-

SELECT LPAD('13579',10, '0') FROM DUAL

결과

-

0000013579

è  MSSQL에선 없는 함수이기 때문에 아래와 같이 사용자함수를 만들어서 사용하기도 합니다.

-- 1. FUNCTION 만들기

CREATE FUNCTION dbo.UFN_LPAD

(

       @INPUT VARCHAR(8000),

       @COUNT AS INT,

       @FILLCHAR AS CHAR(1)=' '

)

RETURNS varchar(200)

AS

BEGIN

RETURN

       CASE

             WHEN LEN(@INPUT) >= @COUNT THEN LEFT(@INPUT, @COUNT)

       ELSE

             LEFT(REPLICATE(@FILLCHAR, @COUNT), @COUNT-LEN(@INPUT)) + @INPUT

       END

END

 

 

-- 2. SAMPLE

SELECT dbo.UFN_LPAD('12',10,'0') AS PR_KEY

 --> 결과

 0000000012

 

 

 

7.     우측공간을 특정 문자로 채워주기

구분

MSSQL

Oracle

함수

지원하지않음(없음)

RPAD

용례

-

SELECT RPAD('13579',10, '0') FROM DUAL

결과

-

1357900000

è  MSSQL에선 없는 함수이기 때문에 UFN_LPAD처럼 함수를 만들어서 씁니다.

다만, REPLICATE라는 함수가 있는데, 이것은 특정문자를 연속적으로 채워 줄 뿐, RPAD와는 조금 다릅니다.

-- 사용례

SELECT REPLICATE('0',10)

 --> 결과

 0000000000

   또한, SPACE라는 함수는 공백만 채워줍니다.

-- 사용례

SELECT '나의' + SPACE(10) + ''

 --> 결과

 나의        

 

 

8.     /우 공백 없애주기

구분

MSSQL

Oracle

함수

LTRIM / RTRIM

LTRIM / RTRIM

용례

SELECT LTRIM('  아버지'), RTRIM('어머니 ')

SELECT LTRIM('  아버지'), RTRIM('어머니  ') FROM DUAL

결과

아버지   어머니  à (공백제거됨)

아버지   어머니  à (공백제거됨)

 

 

9.     문자의 음성표현을 가지는 문자열을 반환. 국내에서는 흔히 사용하지 않음(한글 동작 안함)

b, f, p, v = 1

c, g, j, k, q, s, x, z = 2

l = 4

m, n = 5

r = 6

구분

MSSQL

Oracle

함수

SOUNDEX

SOUNDEX

용례

SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe');

SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe') FROM DUAL

결과

S252     S200

S530     S530

è  어라? 예제에는 같은 것으로 되어 있는데, 실제 결과는 다르네요. -_- 이것 참

 

 

10.   전체 문자열에서 지정한 길이만큼의 문자열 반환

구분

MSSQL

Oracle

함수

SUBSTRING

SUBSTR

용례

SELECT SUBSTRING('1234567890',4,5)

SELECT SUBSTR('1234567890',4,5) FROM DUAL

결과

45678

45678

è  4번째 자리에서 시작해서 다섯 글자를 가져옵니다.

 

오늘은 여기까지이고요, 조만간 2탄 올리겠습니다.

 

이상 [쓸만한게없네]였습니다.

+ Recent posts