Toad, Orange 등 좋은 툴도 있는데 비싸기도 하지만 간단하게 쓰기에는 좀 무거운 감이 있다.
sqlplus를 잘 사용하는 경우 편할 때가 있어 배워보고자 합니다.
1. sysdba로 바로 로그인합니다.
[oracle@rh5 ~]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Tue Sep 8 22:30:40 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL>
2. 위상태에서 다른 user로 로그인할 경우
SQL> connect scott/tiger
Connected.
3. 처음부터 scott로 접속할 경우
[OCRL]rh5.cs.com:/oracle/app/oracle/product/10g> sqlplus
SQL*Plus: Release 10.2.0.1.0 - Production on Tue Sep 8 22:31:40 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Enter user-name: scott
Enter password:
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL>
4. sqlplus userid 또는 sqlplus userid/passwd 와 같이 해도 되는데 보안상 위 방법을 쓰는게 좋다고 합니다.
SQL> help ed
EDIT
----
Invokes an operating system text editor on the contents of the
specified file or on the contents of the SQL buffer. The buffer
has no command history list and does not record SQL*Plus commands.
ED[IT] [file_name[.ext]]
Not available in iSQL*Plus
set linesize 150
set pagesize 50
정도로 값을 늘려주어야 한다.
set pause on은 중간에 멈추게 한다.
linesize (n) : 한줄에 표시될 텍스트숫자 기본값80
예) set feedback 3 : 3행이상일때 on
numformat : 큰 숫자가 표시될때 E+10 와 같은 식으로 나오지 않도록 함.
예) set numformat 999999999999999999999999999999.9999999999
set numformat "" <- 원래대로 하기
- 매번 환경변수를 변경해 주어야 하면 glogin.sql에 다음을 추가한다.
[OCRL]rh5.cs.com:/oracle/app/oracle/product/10g> cd sqlplus/admin
[OCRL]rh5.cs.com:/oracle/app/oracle/product/10g/sqlplus/admin> vi glogin.sql
SET PAGESIZE 100
SET LINESIZE 300
- 프롬프트 변경
SQL> set sqlprompt "_USER'@'_CONNECT_IDENTIFIER> "
SCOTT@ORCL>
- r, ru, run 또는 / : 바로 전에 실행한 sql을 다시 실행한다.
L 또는 l : 바로 전에 실행한 sql을 본다.
SQL> select * from dept;
---------- ---------------------------- --------------------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
---------- ---------------------------- --------------------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL> l
1* select * from dept
- get : 파일을 메모리로 불러온다.
test.sql에 dept를 조회하는 sql문이 있을때...
SQL> get test.sql
1* select * from dept
SQL> /
---------- ---------------------------- --------------------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
- save : 바로 전에 실행한 sql을 저장한다.
! : 쉘로 이동하고 exit하면 다시 sqlplus로 돌아온다.
! 명령어 : unix 명령을 바로 실행할 수 있다.
SQL> select * from salgrade;
---------- ---------- ----------
1 700 1200
2 1201 1400
3 1401 2000
4 2001 3000
5 3001 9999
Created file testsal.sql
SQL> !
[oracle@rh5 ~]$ ls test*.sql
test.sql testemp.sql testsal.sql testspool.sql
[oracle@rh5 ~]$ exit
exit
SQL> !ls test*.sql
test.sql testemp.sql testsal.sql testspool.sql
- @ 또는 start 파일명 : 파일에 있는 sql을 바로 실행
SQL> @test.sql
2 ;
---------- ---------------------------- --------------------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
- spool 파일명 또는 spool on / spool off : 화면에 출력되는 것을 파일로 저장
파일명을 지정해 주지 않으면 on.lst 파일을 만든다.
SQL> spool testspool.sql
SQL> @test.sql
2 ;
---------- ---------------------------- --------------------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL> !ls -lsa testspool.sql
4 -rw-r--r-- 1 oracle dba 765 Sep 8 23:22 testspool.sql
- ed : 메모리에 있는 명령어 편집
vi로 편집하여 저장하면 afiedt.buf 에 저장되고 / 로 실행이 가능
사용전에 환경변수에 다음이 있어야 한다.
vi내에서 ; 으로 끝내지 않아야 실행시 에러가 나지 않는다.
[OCRL]rh5.cs.com:/oracle/app/oracle/product/10g> vi .bash_profile
export EDITOR=vi
export FCEDIT=vi
- Auto Commit이 없기 때문에 commit을 해주어야 한다.
- unix 명령어 사용하기 : ! 를 앞에 붙여 사용한다.
SQL> !pwd
/oracle/app/oracle/product/10g