2014년 5월 28일 수요일

Set 명령어 [자바개발자교육/자바교육/자바강좌/자바,Spring교육잘하는곳/자바,spring교육추천/자바실무교육/JAVA/JAVA교육/JAVA스프링학원/JAVA실무교육] Set명령은 현재 SQL*Plus의 세션환경을 제어하며 모든 Set 변수 값을 보기 위해서는 Show All명령을 이용하면 된다. 물론 시작 메뉴 à 프로그램 à Oracle-Orahome92 à Application DevelopmentàSQL Plus를 이용하여 실행(GUI 형태로 실행) 하였다면 옵션 à 환경에서 설정 값들을 확인 할 수 있다. 여기서는 모든 SQL*Plus 환경 변수를 살펴 보지 않을 것이며 필요한 몇 가지를 예제를 통해 이해하자. SET AUTO[COMMIT] ON/OFF : 자동으로 DML의 실행 결과를 데이터베이스에 반영 할 지의 여부를 결정, 기본적으로 OFF로 되어 있어 Insert/Update/Delete등의 DML(Data Manupulation Language)을 사용시 Commit이라고 기술 해야 한다. 만약 AutoCommit이 ON으로 되어 있다면 트랜잭션을 취소 하는 RollBack은 불가능 하다. SQL> create table addrbook ( 2 name varchar2(10) not null, 3 addr varchar2(50), 4 tel varchar2(20)); 테이블이 생성되었습니다. SQL> show autocommit autocommit OFF SQL> insert into addrbook values ('홍길동','서울 강남구 역삼동 11', '02-222-3333’); 1 개의 행이 만들어졌습니다. [실습 3-5] 실습 3-5까지 수행했다는 가정 하에 다른 사용자가 SQL*Plus를 scott계정으로 똑 같이 접속을 해서“홍길동”이라는 데이터가 입력 되었는지 확인을 해 보도록 하자. SQL> select * from addrbook; 선택된 레코드가 없습니다. 데이터가 한건도 없는 것은 당연하다. 실습3-5에서 수행한 DML인 Insert문장의 결과가 반영되지 않았기 때문이다. 다른 사용자에서도 “홍길동”이라는 데이터가 보이게 하기 위해서는 Commit을 해 주면 된다. 실습3-5의 마지막 부분에 Commit이라는 명령을 기술하고 다시 별도의 SQL*Plus를 띄운 후scott 계정으로 접속을 하여 결과를 확인 해 보라. 다음과 같이 나타날 것 이다. SQL> select * from addrbook; NAME ADDR ---------- -------------------------------------------------- TEL -------------------- 홍길동 서울 강남구 역삼동 11 02-222-3333 SET PAU[SE] ON/OFF : Query의 결과가 한 화면을 넘어가는 경우 한화면씩 보이게 할 건지의 여부를 결정한다. ON인 경우 Enter Key를 입력하면 결과를 한 화면씩 보인다. SQL> show pause PAUSE는 OFF SQL> select object_name, object_type from user_objects; SQL>-- 결과가 여러 화면을 넘어가므로 마지막 화면만 여러분의 눈에 보일 것이다. SQL>set pause on SQL> select object_name, object_type from user_objects; SQL> -- Enter Key를 입력하여야 한 단계씩 다음으로 진행 된다. [실습 3-6] SET HEA[DING] ON/OFF : 컬럼 명을 나타낼 지의 여부를 결정한다. 기본값은 ON이며 컬럼 명을 나타낸다. SQL> show heading heading ON SQL> set heading off SQL> select ename, sal from emp 2 where ename = 'SMITH'; SMITH [실습 3-7] SET ARRAY[SIZE] ON/OFF : 데이터베이스로부터 한번에 처리 되어 지는 행의 수를 지정 SET ECHO ON/OFF : SQL 파일 등을 실행 시 파일의 SQL 문장을 보일 건지의 여부를 지정 , 기본값은 OFF로서 파일의 SQL 문은 화면에 보이지 않는다. SQL> show echo echo OFF SQL> @test 사원명 급여 ---------- ---------- SMITH 800 SQL> set echo on SQL> @test SQL> select ename as "사원명" , sal as "급여" 2 from emp 3 where ename = 'SMITH' 4 / 사원명 급여 ---------- ---------- SMITH 800 [실습 3-8] SET EDITFILE 파일이름 : edit 명령등으로 현재 버퍼의 내용을 default Editor로 부를때의 기본 이름을 지정. 지정하지 않으면 afiedt.buf로 자동 지정된다. SQL> set editfile firstSQL.sql SQL> edit file firstSQL (이)가 기록되었습니다 1 select ename as "사원명" , sal as "급여" 2 from emp 3* where ename = 'SMITH' [실습 3-9] SET LONG n : 한 컬럼의 데이터 크기가 2G Bytes에 이르는 가변길이 데이터형인 LONG, 4G Bytes까지의 character를 저장 할 수 있는 CLOB, NCLOB등의 데이터가 화면에 표시되는 최대Character수를 지정, 기본값은 80 SQL> create table LongTest ( 2 title varchar2(50) not null, 3 content long); 테이블이 생성되었습니다. SQL> insert into LongTest values ('첫번째 게시물...','반갑습니다... 여러분들 뵙게 되어영광 입니다.'); 1 개의 행이 만들어졌습니다. SQL> commit; 커밋이 완료되었습니다. SQL> select content from LongTest; CONTENT ------------------------------------------------------------------------------- 반갑습니다... 여러분들 뵙게 되어 영광 입니다. SQL> set long 10 SQL> select content from LongTest; CONTENT ---------- 반갑습니다 [실습 3-10] SET TIME ON/OFF : SQL*Plus 프롬프트상에 시각 표시 여부를 지정, 기본적으로 OFF이며 시각은 표시 되지 않는다. SET TIMING ON/OFF : SQL문의 실행 때부터 실행 결과가 응답될 때까지의 시간을 파악하여 출력할 지의 여부를 지정, 기본적으로 OFF이며 응답시각은 표시 되지 않는다. [출처] 오라클자바커뮤니티 - http://www.oraclejavacommunity.co.kr/bbs/board.php?bo_table=LecSQLnPlSql&wr_id=142 오라클자바커뮤니티교육센터, 개발자전문교육, 개인80%환급 www.oraclejavacommunity.com 평일주간(9:30~18:20) 개강 (5/30)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지 (5/30)[기업100%환급]SQL기초에서 Schema Object까지 (6/09)[기업100%환급]PL/SQL,ORACLE HINT,TUNING (6/09)[기업100%환급]안드로이드개발자과정 (6/09)[기업100%환급]Spring ,MyBatis,Hibernate실무과정 (6/16)[기업100%환급]C#4.0,WinForm,ADO.NET프로그래밍 (6/23)[교육전취업확정,채용예정자교육]Spring,MyBatis,XPlatform실무프로젝트과정 평일야간(19:00~21:50) 개강 (5/29)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지 (6/03)안드로이드개발자과정 (6/03)웹퍼블리싱 마스터 (6/10)C#4.0, ADO.NET, Network 프로그래밍 (6/10)Spring3.X, MyBatis, Hibernate실무과정 (6/18)C#,ASP.NET마스터 (6/26)SQL초보에서실전전문가까지 주말(10:00~17:50) 개강 (5/31)Spring3.X, MyBatis, Hibernate실무과정 (5/31)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지 (5/31)SQL초보에서실전전문가까지 (5/31)C#,ASP.NET마스터 (5/31)실무예제로 배워보는 jQuery(개발자/디자이너를위한) (5/31)안드로이드개발자과정 주말저녁(18:30~22:20) 개강 (6/21)JAVA,Network&WEB&Framework (6/21)SQL기초에서실무까지

Set 명령어 [자바개발자교육/자바교육/자바강좌/자바,Spring교육잘하는곳/자바,spring교육추천/자바실무교육/JAVA/JAVA교육/JAVA스프링학원/JAVA실무교육]
 
 Set명령은 현재 SQL*Plus의 세션환경을 제어하며 모든 Set 변수 값을 보기 위해서는 Show All명령을 이용하면 된다. 물론 시작 메뉴 à 프로그램 à Oracle-Orahome92 à Application DevelopmentàSQL Plus를 이용하여 실행(GUI 형태로 실행) 하였다면 옵션 à 환경에서 설정 값들을 확인 할 수 있다. 여기서는 모든 SQL*Plus 환경 변수를 살펴 보지 않을 것이며 필요한 몇 가지를 예제를 통해 이해하자.
 
SET AUTO[COMMIT] ON/OFF : 자동으로 DML의 실행 결과를 데이터베이스에 반영 할 지의 여부를 결정, 기본적으로 OFF로 되어 있어 Insert/Update/Delete등의 DML(Data Manupulation Language)을 사용시 Commit이라고 기술 해야 한다. 만약 AutoCommit이 ON으로 되어 있다면 트랜잭션을 취소 하는 RollBack은 불가능 하다.
 
SQL> create table addrbook (
  2  name varchar2(10) not null,
  3  addr varchar2(50),
  4  tel varchar2(20));
테이블이 생성되었습니다.
SQL>  show autocommit
autocommit OFF
SQL>  insert into addrbook values ('홍길동','서울 강남구 역삼동 11', '02-222-3333’);
개의 행이 만들어졌습니다.
[실습 3-5]
 
실습 3-5까지 수행했다는 가정 하에 다른 사용자가 SQL*Plus를 scott계정으로 똑 같이 접속을 해서홍길동이라는 데이터가 입력 되었는지 확인을 해 보도록 하자.
SQL> select * from addrbook;
 
선택된 레코드가 없습니다.
 
데이터가 한건도 없는 것은 당연하다. 실습3-5에서 수행한 DML인 Insert문장의 결과가 반영되지 않았기 때문이다. 다른 사용자에서도 홍길동이라는 데이터가 보이게 하기 위해서는 Commit을 해 주면 된다. 실습3-5의 마지막 부분에 Commit이라는 명령을 기술하고 다시 별도의 SQL*Plus를 띄운 후scott 계정으로 접속을 하여 결과를 확인 해 보라. 다음과 같이 나타날 것 이다.
SQL> select * from addrbook;
NAME       ADDR
---------- --------------------------------------------------
TEL
--------------------
홍길동     서울 강남구 역삼동 11
02-222-3333
 
SET PAU[SE] ON/OFF : Query의 결과가 한 화면을 넘어가는 경우 한화면씩 보이게 할 건지의 여부를 결정한다. ON인 경우 Enter Key를 입력하면 결과를 한 화면씩 보인다.
SQL> show pause
PAUSE OFF
SQL> select object_name, object_type from user_objects;
SQL>-- 결과가 여러 화면을 넘어가므로 마지막 화면만 여러분의 눈에 보일 것이다.
SQL>set pause on
SQL> select object_name, object_type from user_objects;
SQL> -- Enter Key 입력하여야  단계씩 다음으로 진행 된다.
[실습 3-6]
 
SET HEA[DING] ON/OFF : 컬럼 명을 나타낼 지의 여부를 결정한다. 기본값은 ON이며 컬럼 명을 나타낸다.
SQL> show heading
heading ON
SQL> set heading off
SQL> select ename, sal from emp
  2  where ename = 'SMITH';
SMITH            
[실습 3-7]
 
SET ARRAY[SIZE] ON/OFF : 데이터베이스로부터 한번에 처리 되어 지는 행의 수를 지정
SET ECHO ON/OFF : SQL 파일 등을 실행 시 파일의 SQL 문장을 보일 건지의 여부를 지정 , 기본값은 OFF로서 파일의 SQL 문은 화면에 보이지 않는다.
SQL> show echo
echo OFF
SQL> @test
사원명           급여
----------         ----------
SMITH           800
SQL> set echo on
SQL> @test
SQL> select ename as "사원명" , sal as "급여"
  2  from emp
  3  where ename = 'SMITH'
  4  /
사원명             급여
----------          ----------
SMITH             800
[실습 3-8]
 
SET EDITFILE 파일이름 : edit 명령등으로 현재 버퍼의 내용을  default Editor로 부를때의 기본 이름을 지정. 지정하지 않으면 afiedt.buf로 자동 지정된다.
SQL> set editfile firstSQL.sql
SQL> edit
file firstSQL () 기록되었습니다
  1  select ename as "사원명" , sal as "급여"
  2  from emp
  3* where ename = 'SMITH'
[실습 3-9]
 
SET LONG n : 한 컬럼의 데이터 크기가 2G Bytes에 이르는 가변길이 데이터형인 LONG, 4G Bytes까지의 character를 저장 할 수 있는 CLOB, NCLOB등의 데이터가 화면에 표시되는 최대Character수를 지정, 기본값은 80
SQL> create table LongTest (
  2  title varchar2(50) not null,
  3  content long);
테이블이 생성되었습니다.
SQL> insert into LongTest values ('첫번째 게시물...','반갑습니다... 여러분들 뵙게 되어영광 입니다.');
개의 행이 만들어졌습니다.
SQL> commit;
커밋이 완료되었습니다.
SQL> select content from LongTest;
CONTENT
-------------------------------------------------------------------------------
반갑습니다... 여러분들 뵙게 되어 영광 입니다.
SQL> set long 10
SQL> select content from LongTest;
CONTENT
----------
반갑습니다
[실습 3-10]
 
SET TIME ON/OFF : SQL*Plus 프롬프트상에 시각 표시 여부를 지정, 기본적으로 OFF이며 시각은 표시 되지 않는다.
SET TIMING ON/OFF : SQL문의 실행 때부터 실행 결과가 응답될 때까지의 시간을 파악하여 출력할 지의 여부를 지정, 기본적으로 OFF이며 응답시각은 표시 되지 않는다.
 

댓글 없음:

댓글 쓰기