목록2017/05 (37)
C#,Delphi,Oracle,MSSQL 개발자블로그
오늘은 티스토리 글 순서 바꾸기를 방법을 알려줄게요. 어렵지 않아요~ 간단해요^^ 티스토리 글은 등록일 순서로 게시가 되기 때문에 등록일을 바꿔주면 돼요. 그럼 사진을 볼까요? 사진을 보면 3월 31일에 글이 세개 있죠~ 이 글의 순서를 바꿀거에요. 지금은 블로그에서 글이 순서 바꾸기, 테스트2, 테스트1 순서로 보이겠지요? 그럼 반대로 테스트1, 테스트2, 순서 바꾸기 순서로 바꿔볼거에요. 먼저 테스트1 글 수정으로 들어가요. 그럼 오른쪽에 보면 등록일이 있죠? 거기서 현재를 눌러주면 글이 가장 위로 올라가요! 그럼 테스트1 이라는 글이 블로그에서 가장 먼저 보이겠죠? 그리고 순서 바꾸기 글 수정에 들어가서 예약으로 날짜나 시간을 수정해줘요~ 테스트2 보다 전 날짜나 시간으로 수정하면 되겠죠? 그러면 ..
● 예외를 일으키는 두 가지 방법 1. 오라클 에러가 발생하면 관련 예외는 자동적으로 일어난다. 예를 들면, 질의 문장의 데이터베이스에서 읽어 들인 행이 아무것도 없을 때, ORA-01403가 발생하면, 이 때 PL/SQL은 예외 NO_DATA_FOUND를 일으킨다. 2. 블록 내에서 RAISE 문장을 써서 명시적으로 예외를 일으킨다. 예외는 사용자가 정의하거나 미리 정의되어 있다. ● 예외 트랩, 예외 트래핑(trapping) 예외가 블록의 실행 가능한 섹션에서 발생했을 때, 처리는 블록의 예외 섹션에서 해당 예외 처리기로 제어가 넘어가는 것. EXCEPTION WHEN exception1 [OR exception2 ...] THEN statement1; statement2; ... [WHEN exce..
● 매개변수와 커서 커서가 열릴 때 커서로 매개변수 값을 전달하고, 커서가 실행될 때 질의에서 그 값이 사용될 수 있다. DECLARE CURSOR C1 (v_deptno NUMBER, v_job VARCHAR2) IS SELECT empno, ename FROM emp WHERE deptno = v_deptno AND job = v_job; BEGIN OPEN c1(10, 'CLERK'); ... ● FOR UPDATE 절 SELECT ... FROM ... FOR UPDATE [OF column_reference] [NOWAIT] column_reference 수행된 질의에 대응하는 테이블 열 또는 열의 집합이다. NOWAIT 다른 섹션이 행을 잠그면 오라클 에러를 리턴한다. - 커서가 열릴 때 영향..
● 커서 오라클 서버는 SQL 문장을 실행하고 처리한 정보를 저장하기 위해 Private SQL 영역이라 불리는 작업 영역을 사용한다. Private SQL 영역에 이름을 붙이고 그것의 저장된 정보를 액세스하기 위해 PL/SQL커서를 사용할 수 있다. - 암시적 커서 : 모든 DML과 PL/SQL SELECT 문장에 대해 선언된다. - 명시적 커서 : 프로그래머에 의해 선언되고 이름 붙여진다. 커서는 PL/SQL에 내장된 일종의 포인터이며, 데이터베이스 쿼리와 레코드들의 세트를 얻는 작업, 그리고 결과셋의 행들을 하나씩 얻는 작업에 이용될 수 있다. 즉, 커서는 데이터에 대한 프로그래밍적인 접근을 가능하게 해준다. [명시적 커서] 명시적 커서는 커서를 관리하는데 필요한 PL/SQL코드를 PL/SQL 프로..
● 조합 데이터형 (또는 Collection 이라고도 부른다.) -RECORD 관련은 있으나 비슷하지 않은 데이터를 논리적인 한 단위로 묶기 위해서 RECORD 데이터형을 사용한다. -TABLE 전체 객체로서 데이터의 모음을 참조하고 조작하기 위해 TABLE 데이터 형을 사용한다. -중첩 TABLE -VARRAY ● PL/SQL 레코드 RECORD는 여러개의 데이터 타입을 갖는 변수들의 집합니다. PL/SQL 테이블과 다르게 개별 필드의 이름을 부여할 수 있고, 선언시 초기화가 가능하다. TYPE type_name IS RECORD (field_declaration[, field_declaration]...); identifier type_name; type_name RECORD의 형의 이름 field_..
● PL/SQL 실행 흐림 제어 문장의 논리적 흐름을 변경할 수 있다. PL/SQL 제어 구조의 2가지 유형 - IF 문장 - LOOP 제어 구조 ● IF문장 IF condition THEN statements; [ELSIF condition THEN statements;] [ELSE statements;] END IF; condition 부울 변수 또는 표현식이다. 이것은 IF 표현식이 TRUE를 생성할 때만 일련의 문장들을 실행하도록 한다. THEN 다음에 나오는 문장들과 그것에 선행되는 부울 표현식을 관련시키는 절이다. statements 하나 이상의 PL/SQL 또는 SQL 문장이 될 수 있다. 그것들은 몇 개의 중첩 IF, ELSE와 ELSIF를 포함하는 IF문장을 포함할 수 있다. ELSIF ..
● SQL과 PL/SQL 문장 유형 비교 - PL/SQL 블록은 트랜잭션 단위가 아니다. 커밋, 세이브포인트, 롤백은 블록과는 독립적이지만, 블록에서 이 명령어를 사용할 수 있다. - PL/SQL은 DDL(CREATE, ALTER, DROP, TRUNCATE ..), DCL(GRANT, REVOKE) 을 지원하지 않는다. - PL/SQL은 DML과 트랜잭션 언어를 사용할 수 있다. ● PL/SQL에서 SELECT문장 PL/SQL 내 SELECT 문장은 하나의 행만 리턴해야 한다. INTO 절에서의 출력변수와, 입력변수는 그 개수와 데이터형이 일치해야 한다. SELECT select_list INTO {variable_name[, variable_nam]... / record_name} FROM table..
- 리터럴 문자와 날짜 리터럴은 단일 인용 부호(')에 둘러 싸여져야 한다. Ex. v_ename := 'Henderson'; 숫자 리터럴은 단순 값 또는 과학적인 표기법에 의해 표현될 수 있다. Ex. 단순 값 : -32.5 과학적인 표기법 : 2E5, 2*10 (이 때, 2E5 = 200000를 의미 한다.) - PL/SQL에서 SQL 함수 ☞ 사용가능 : 단일 행 숫자 단일 행 문자 데이터형 변환 날짜 Ex. v_ename := LOWER(v_ename); 사용 불가 : GREATEST LEAST DECODE 그룹함수(AVG, MIN, MAX, COUNT, SUM, STDDEV, VARIANCE) Ex. v_total := SUM(number_table); 위 예는 그룹함수이기때문에 절차적언어인 P..
● PL/SQL 프로그램을 논리적인 블록으로 나누게 하는 구조화된 블록 언어이다. DECLARE (선택적) - Variables - Cursors - User-defined exceptions BEGIN (필수적) - SQL statements - PL/SQL statements EXCEPTION (선택적) - Actions to perform when errors occur END; (필수적) Ex. DECLARE v_variable VARCHAR2(5); BEGIN SELECT column_name INTO v_variable FROM table_name; EXCEPTION WHEN exception_name THEN ... END; ● 블록 유형 - 익명블록 : 이름이 없는 블록 ☞ Anonymou..
@ LIME 이라는 스키마에 작성한 것입니다. 1. 아래 테이블의 인스턴스 차트를 기초로 테이블을 생성한다. a. 테이블 이름 : MEMBER (PK, NN 제약조건과 Default값 적용하여 테이블 생성) Column_Name MEMBER_ID LAST_NAME FIRST_NAME ADDRESS CITY PHONE JOIN_DATE Key Type PK Null/Unique NN,U NN NN Default Value System Date Data Type Number Varchar2 Varchar2 Varchar2 Varchar2 Varchar2 Date Length 10 25 25 100 30 15 CREATE TABLE MEMBER ( member_id NUMBER (10) CONSTRAINT m..