gsql
데이터베이스에 접속하여 SQL 구문을 처리하는 대화형 유틸리티입니다.
또한 gsql 고유의 명령어를 통해, 객체 정보를 종료할 수 있습니다.
gsql 은 DA 모드 / gsqlnet 은 CS 모드 방식으로 데이터베이스에 접속합니다.
gsql 접속방법
일반적인 접속 방법입니다.
gsql 명령어 뒤에 아이디와 비밀번호를 입력해서 접속할 수 있습니다.
접속시 gSQL> 프롬프트가 출력되며, 옵션으로 해당명칭을 바꿀 수 있습니다.
$ gsql TEST test Connected to GOLDILOCKS Database. gSQL>
$ gsql TEST test --prompt M-gSQL Connected to GOLDILOCKS Database. M-gSQL>
gsqlnet 명령어는 CS 모드이며 DSN 명칭을 부여하여 접속해야합니다.
$ gsqlnet TEST test --prompt M-gSQL --dsn GOLDILOCKS Connected to GOLDILOCKS Database. M-gSQL>
롤(권한)을 부여하여 접속할 수 있으며, --as sysdba 를 작성하면 해당계정은 sysdba 롤을 부여받습니다.
이 때 해당 계정은 SYS 이어야합니다.
이렇게 접속한 계정은 데이터베이스를 내리거나 올릴 수 있습니다.
$ gsql sys gliese --as sysdba Connected to GOLDILOCKS Database. gSQL>
gsql 에서 sql 파일 실행하기
gsql 명령어에서 import 옵션을 부여하여 SQL 을 실행할 수 있습니다.
$ cat mozi.sql select * from dual; $ gsql test test -i mozi.sql select * from dual; DUMMY ----- X 1 row selected.
혹은 gsql 로 접속한 뒤에 gSQL> 프롬프트에서 import 를 사용하여 수행시킬 수도 있습니다.
gSQL> import 'mozi.sql' select * from dual; DUMMY ----- X 1 row selected.
gsql 에서 사용가능한 명령어
gSQL> 에서 help 로 사용가능한 명령어를 확인할 수 있습니다.
이 중 매우 주관적으로 자주 사용했던 옵션들에 대해서만 작성해 보겠습니다.
옵션 |
설명 |
import 'FILE' |
SQL 문법으로 작성된 FILE 을 실행합니다. 파일명만 쓰는경우 현재경로의 파일, 전체경로를 쓰는경우 해당경로의 파일을 실행합니다. |
history |
이전에 수행했던 SQL 을 목록을 출력합니다. |
\\ |
직전에 수행했던 SQL 을 다시 수행합니다. |
\3 | 히스토리에서 출력된 SQL 문중 3번째로 출력된 구문을 수행합니다. |
ed |
직전에 수행했던 SQL 을 vi 모드 편집기로 편집합니다. |
ed 3 |
히스토리에서 출력된 SQL 문중 3번째로 출력된 구문을 vi 모드 편집기로 편집합니다. |
spool 'FILE' |
현재부터 출력되는 내용을 파일에 기록합니다. |
!ls |
ls 명령어를 수행합니다. ! 를 붙이고 OS 명령어를 사용하면 해당 명령어가 OS 에서 수행되고 출력됩니다. |
set serveroutput ON | OFF |
프로시져 수행시 DBMS_OUTPUT 의 내용의 출력여부를 설정합니다. |
set linesize 10000 |
한줄에 출력되는 글자수를 10000 자로 설정합니다. |
set pagesize 10000 | 페이지를 설정합니다. 해당 페이지의 레코드를 넘어가는 경우 컬럼이 다시 출력됩니다. |
ddl_db | 현재 데이터베이스의 모든 객체를 CREATE SQL 구문으로 출력합니다. |
ddl_table TABLE_NAME | 해당 테이블을 CREATE SQL 구문으로 출력합니다. |
gSQL 에 접속하여 쿼리를 날린 뒤 history 를 입력하면 이전에 수행했던 SQL 목록을 출력합니다.
gSQL> create table mozi (c1 int, c2 int); gSQL> insert into mozi values (1, 1); gSQL> commit; gSQL> history ID SQL -- ---------------------------------- 1 create table mozi (c1 int, c2 int) 2 insert into mozi values (1, 1) 3 commit
\2 를 하면 history 에서 출력된 SQL 문중 2 번째 쿼리를 다시 수행합니다.
gSQL> \2 1 row created.