ascii


함수 이름 : ascii
의미 :

ASCII returns the decimal representation in the database character set of the first character of char.

char can be of datatype CHAR, VARCHAR2, NCHAR, or NVARCHAR2. The value returned is of datatype NUMBER.
If your database character set is 7-bit ASCII, then this function returns an ASCII value.
If your database character set is EBCDIC Code, then this function returns an EBCDIC value.
There is no corresponding EBCDIC character function.


아스키는 DB에 있는 케릭터 셋에 맞춰 입력된 문자 중에 첫번 째 문자를 10진수 표기법으로 리턴한다.
이때 입력되는 문자의 형태는 CHAR, VARCHAR2, NCHAR, or NVARCHAR2가 될 수 있으며
리턴되는 값은 숫자의 형태로 리턴된다.
데이타 베이스의 캐릭터 셋의 설정에 따라 맞는 값이 출력된다 (ex : 7-bit ascii, EBCDIC 등)








생각한 예제

select ascii('&ascinput') from dual;

결과 : ascinput 이라는 변수에 입력을 하면 아스키 코드가 나온다.
팁 : isql plus 에서는 실행되지 않는다.
문자열 ABCDE 와 같이 입력한 경우 맨 앞 문자인 A 의 아스키 코드인 65가 리턴된다



이런 식으로 문자의 아스키 코드를 알아 낸 후 나중에
아스키 코드로 다음과 같은 예제와 함께 쓸 수 있을 듯 하다.









10g 메뉴얼에 소개된 예제






SELECT last_name FROM employees WHERE ASCII(SUBSTR(last_name, 1, 1,)) = 76; LAST_NAME-------------------------LadwigLandryLeeLivingston
쿼리의미 : emp 테이블에서 라스트 네임의 첫글짜의 아스키 코드가 76인 사람의 last name 을 보여줘라
p.s. : 아스키 코드의 활용 빈도..에 대한 의문?




오라클 메뉴얼의 설명과 캐릭터 셋 코드 표



Oracle9i SQL Reference
Release 2 (9.2)



ASCII

Syntax

ascii::=

Text description of functions15.gif follows
Text description of ascii


Purpose

ASCII returns the decimal representation in the database character set of the first character of char.

char can be of datatype CHAR, VARCHAR2, NCHAR, or NVARCHAR2. The value returned is of datatype NUMBER. If your database character set is 7-bit ASCII, then this function returns an ASCII value. If your database character set is EBCDIC Code, then this function returns an EBCDIC value. There is no corresponding EBCDIC character function.


Note:

This function does not support CLOB data directly. However, CLOBs can be passed in as arguments through implicit data conversion. Please refer to "Datatype Comparison Rules" for more information.



Examples

The following example returns the ASCII decimal equivalent of the letter Q:

SELECT ASCII('Q') FROM DUAL; ASCII('Q')----------        81



Table 2-8   ASCII Character Set

Symbol

Decimal value

Symbol

Decimal value

blank

32

;

59

!

33

<

60

"

34

=

61

#

35

>

62

$

36

?

63

%

37

@

64

&

38

A-Z

65-90

'

39

[

91

(

40

\

92

)

41

]

93

*

42

^

94

+

43

_

95

,

44

`

96

-

45

a-z

97-122

.

46

{

123

/

47

|

124

0-9

48-57

}

125

:

58

~

126

Table 2-9 EBCDIC Character Set

Symbol

Decimal value

Symbol

Decimal value

blank

64

%

108

¢

74

_

109

.

75

>

110

<

76

?

111

(

77

:

122

+

78

#

123

|

79

@

124

&

80

'

125

!

90

=

126

$

91

"

127

*

92

a-i

129-137

)

93

j-r

145-153

;

94

s-z

162-169

ÿ

95

A-I

193-201

-

96

J-R

209-217

/

97

S-Z

226-233












by 이유없음 | 2009/03/09 08:28 | Oracle | 트랙백

정보처리 기능사 필기 기출문제.

by 이유없음 | 2009/03/05 03:38 | O/S | 트랙백

0303


-- ic.bat ----------------------------------

set path=D:\ora\instantclient-11.1
sqlplus hr30/hr30@172.16.14.1:1521/orcl

--------------------------------------------

# 1-12

select empno, ename, sal, comm, sal*12+nvl(comm, 0)
from emp;

# 1-14

select empno, ename, sal, comm,
       sal*12+nvl(comm, 0)    ann_sal,
       sal*12+nvl(comm, 0) as ann_sal,
       sal*12+nvl(comm, 0)   "$Ann Sal"
from emp;

# 1-16, 17

select empno, ename, sal, comm, 'ABC', 2000
from emp;

select empno, ename, ' is a ', job, sal, comm
from emp;

select empno, ename||' is a '||job as sawon, sal, comm
from emp;

select empno, ename, substr(ename, 1, 1) as part1, substr(ename, 2

) as part2
from emp;

select empno, ename, length(ename)
from emp;

-- 9i 까지
select  ename|| ' ''s house is bigger than Tom'' s'
from emp;

-- 10g 이후
select ename|| q' [ 's house is bigger than Tom's] '
select ename|| q' ! 's house is bigger than Tom's! '
select ename|| q' X 's house is bigger than Tom'sX '
from emp;

select unique job
from emp;

select DISTINCT job
from emp;

select DISTINCT deptno, job   /* 뒤에 나오는 모든 열에 적용되어 영향을 준다. */
from emp;

 

by 이유없음 | 2009/03/03 17:24 | 트랙백

기호

() parenthesis = a round bracket
{} a brace
[] a bracket ( a square bracket)

- Defining a Null Value

▶ Null is not 0 (Zero)
▶ Null is not space
▶ Null is null -> 진리값 = null (모르는 것끼리 비교한 값에 대한 결과는 Null 모른다..)

산술연산 결과 = null
비교연산 결과 = null
논리 연산 = 진리표
ANDTFNULL
TTFN
FFFF
NULLNFN
 ORTFNULL
TTTT
FTFN
NULL
T
N
N


SQL문

  Select *   --> 절

  From emp; --> 절 ========> (절 + 절 = 문), 문장 종결자로 세미콜론 사용

  • 대소문자 구분하지 않음
  • Null0값 아님, 공백 아님, 할당,연산,비교 연산자 아님 ===> 해당사항 없음 정도로 해석 가능

    cf) set null "널이네"

  • alias 설정하기 : 공백 이후 적거나 as 혹은 더블 코테이션("") 사용
  •  
  • SAVE 명령어 : EX) SAVE A1.SQL
  • 주석처리  --->>         /** 주석처리부분 */      또는    내용 -- 주석처리부분(한줄 처리)       <<--- 이렇게 하세요.

    eg)   WHERE JOB = 'SALESMAN'

      /* AND E.DEPTNO = D.DEPTNO */ AND D.LOC='DALLAS'

    또는  WHERE JOB = 'SALESMAN'

      -- AND E.DEPTNO = D.DEPTNO AND D.LOC='DALLAS'

    차이은 --의 경우 뒤에 오는 모든 것을 주석처리한다는 것이고, /*내용*/의 경우 */이 끝나는 지점까지만 주석처리된다는 것이다.

  • SINGLE QUATATION은 컬럼 헤딩에 사용할 수 있...

    > SELECT EMPNO, '사원 월급' || SAL AS "월급" FROM EMP;

 

  •  비교연산자 : < , > , =, >=, <=, != OR <>

    > SELECT EMPNO, ENAME, SAL FROM EMP WHERE SAL >= 3000;

 

      > SELECT ASCII('A')  FROM DUAL;

 

  • 논리연산자 : NOT - AND - OR (순서별)
  • 진리표

     ANDTFNULL
    TTFN
    FFFF
    NULLNFN
     ORTFNULL
    TTTT
    FTFN
    NULLTNN
  • 날짜 : BC 4712/01/01 ~ 9999/12/13 : 연산자로 비교할 수 있다

    > EX) SELECT EMPNO, ENAME, HIREDATE

             FROM EMP         WHERE HIREDATE >= '81/01/01';

 

  • SQL 과 SQLPLUS의 차이점

    SQLSQL*PLUS

     ANSI

     ; 를 사용하는 명령어

    EX) SELECT

     

    특징 : 축약이 불가, 버퍼사용가능, 초급사용자 쉽다(영어 언어구조)

             변수 사용불가, 제어문 사용 불가

     

     ORACLE

     

    EX) SAVE, SPOOL, DESC

    축약 가능

    버퍼사용불가

     버퍼사용시 주의점 : 1. 버퍼내에서는 반드시 하나의 SQL문만 사용가능

   2. 문장종결자 ==> 다음 란인 첫글자에 / 대신, ;는 사용치 않음

 

  •  SQL 함수 : BETWEEN A AND B , IN
  •  와일드 캐릭터 : %, ?, _

    > 와일드 캐릭터를 일반 문자로 인식 시키기 위해서는 다음과 같이 사용한다

       EX) SELECT ENAME

             FROM EMP

       WHERE ENAME LIKE '%\%' ESCAPE '\';

 

  •  WHERE CONDITION

    • 연산자 : 비교연산자, 논리연산자, IN, BETWEEN, LIKE, IS  (비교연산자와 논리연산자를 제외한 나머지 것들은 부정시 NOT을 쓴다.)

       

  • 정렬하기 : ORDER BY ASC(오름차순), DESC(내림차순) : DEFAULT : ASC

     EX) SELECT EMPNO, ENAME, SAL
           FROM EMP
           ORDER BY SAL DESC, ENAME DESC;

     

    • ALIAS를 정렬 조건에 사용할 수 있다.

      EX) SELECT EMPNO, ENAME, SAL*12 + COMM ANNSAL
             FROM EMP
             ORDER BY ANNSAL DESC

    •  컬럼의 위치로도 가능함

      EX) SELECT EMPNO, ENAME, SAL*12 + COMM ANNSAL
             FROM EMP
             ORDER BY 3 DESC   <---select 절에서 3번째 컬럼을 기준으로 정렬하라.

    • order by 정렬을 통해 결과값 출력시에 desc정렬을 하면, NULL값은 무한대값으로 치므로, NULL 값이 가장 상위에 표기된다.
    • SELECT 문에서 가장 마지막에 위치한 절
Concatenation Operator

Literal Character

by 이유없음 | 2009/03/03 16:49 | 트랙백

instant client 설치 배치파일

a.bat

set path=D:\설치경로\instantclient-11.1
sqlplus id/passwd@ip:1521/orcl




by 이유없음 | 2009/03/02 17:03 | Oracle | 트랙백

◀ 이전 페이지 다음 페이지 ▶