프롬프트 상에서 옵션 목록을 보려면, 다음과 같이 옵션을 적용할 데이터베이스를 지정하지 않고 csql 유틸리티를 실행한다.
% csql
interactive SQL utility, version R4.0
usage: csql [OPTION] database-name valid options:
-S, --SA-mode standalone mode execution
-C, --CS-mode client-server mode execution
-u, --user=ARG alternate user name
-p, --pasword=ARG password string, give "" for none
-e, --error-continue don't exit on statement error
-i, --input-file=ARG input-file-name
-o, --output-file=ARG output-file-name
-s, --single-line single line oriented execution
-c, --command=ARG CSQL-commands
-l, --line-output display each value in a line
-r, --read-only read-only mode
--no-auto-commit disable auto commit mode execution
--no-pager do not use pager
--no-single-line turn off single line oriented execution
다음은 csql 유틸리티와 함께 사용할 수 있는 옵션을 정리한 표이다.
옵션 |
설명 |
---|---|
-S |
독립 모드(standalone mode)로 실행하기 위한 옵션이다. |
-C |
클라이언트/서버 모드(client/server mode)로 실행하기 위한 옵션이다. |
-u user_name |
데이터베이스에 접속하려는 사용자를 명시할 때 사용하는 옵션으로, 기본값은 PUBLIC이다. |
-p password |
데이터베이스에 접속하려는 사용자의 암호가 존재하는 경우 암호를 입력하기 위한 옵션이다. |
-e |
에러가 발생하더라도 세션을 종료하지 않고 계속 실행하라는 옵션이다. |
-i input_file |
인수로 지정된 input_file은 SQL 문이 저장된 파일이며, 배치 모드 실행을 위한 옵션이다. |
-o output_file |
구문 실행 결과를 화면에 표시하지 않고 지정된 output_file에 저장한다. |
-s |
복수 개의 SQL 문이 연속적으로 저장된 파일에서 SQL 문을 하나씩 실행하려고 할 때 사용하는 옵션이다. 각 SQL 문은 세미콜론(;)으로 구분한다. 옵션을 생략하면 기본으로 동작한다. |
-c "CSQL commands" |
프롬프트 상에서 직접 SQL 문을 수행하기 위한 옵션으로 큰 따옴표 안에 수행하려는 SQL 문을 입력한다. |
-l |
실행된 SQL 문에 대한 결과를 컬럼이 아닌 라인 형태로 출력하는 옵션이다. 기본값은 컬럼 형태로 출력된다. |
-r |
데이터베이스에 읽기 전용으로 접속하는 옵션이다. |
--no-auto-commit |
CSQL 인터프리터의 자동 커밋(autocommit) 모드를 OFF로 설정하는 옵션이다. |
--no-pager |
CSQL 인터프리터에서 수행한 질의 결과를 페이지 단위로 출력하지 않고 일괄적으로 출력하는 옵션이다. |
--no-single-line |
SQL 문 여러 개를 ;xr 또는 ;r 세션 명령어로 한꺼번에 수행하고자 할 때 사용하는 옵션이다. |
독립 모드에서 실행(-S)
-S 옵션을 이용하여 독립 모드로 demodb에 접속하여 csql을 실행하는 구문이다. demodb를 독점적으로 사용하고자 할 때 -S 옵션을 이용한다.
csql -S demodb
클라이언트/서버 모드에서 실행(-C)
-C 옵션을 이용하여 클라이언트/서버 모드로 demodb에 접속하여 csql 유틸리티를 실행하는 구문이다. demodb에 여러 클라이언트가 동시 접속하는 환경에서 -C 옵션을 이용한다. 만약 클라이언트/서버 모드로 원격 호스트의 데이터베이스에 접속한 경우라도 csql 유틸리티를 실행하는 도중에 발생한 에러 로그는 로컬 호스트의 cub_client.err 파일에 기록된다.
csql -C demodb
배치 모드에서 사용되는 입력 파일을 지정(-i)
-i 옵션을 이용하여 배치 모드에서 사용할 입력 파일의 이름을 지정하는 구문이다. infile 파일에는 하나 이상의 SQL 문이 저장되어 있으며, -i 옵션이 지정되지 않으면 CSQL 인터프리터는 대화형 모드로 실행된다.
csql -i infile demodb
수행 결과를 저장할 출력 파일을 지정(-o)
-o 옵션을 이용하여 질의 수행 결과를 화면에 출력하지 않고 지정된 파일에 저장하도록 하는 구문이다. 이는 CSQL 인터프리터에 의한 질의 수행 결과를 추후 조회하고자 할 때 유용하게 사용될 수 있다.
csql -o outfile demodb
사용자 이름을 지정(-u)
-u 옵션을 이용하여 지정된 데이터베이스에 접속하려는 사용자 이름을 지정하는 구문이다. 만약 -u 옵션이 지정되지 않으면 가장 낮은 사용자 권한을 가지는 PUBLIC이 사용자로 지정된다. 또한 사용자 이름이 유효하지 않은 경우에는 오류가 출력되고 csql 유틸리티는 종료된다. 암호가 설정된 사용자 이름이 지정된 경우에는 암호를 입력받기 위한 프롬프트가 출력된다.
csql -u DBA demodb
사용자 암호를 지정(-p)
-p 옵션을 이용하여 지정된 사용자의 암호를 입력하는 구문이다. 특히, 배치 모드에서는 지정한 사용자에 대한 암호 입력을 요청하는 프롬프트가 출력되지 않으므로 -p 옵션을 이용하여 암호를 입력해야 한다. 잘못된 암호를 입력하면, 오류가 출력되고 csql 유틸리티는 종료된다.
csql -u DBA -p *** demodb
SQL 문을 하나씩 수행하도록 지정(-s)
-s 옵션을 이용하여 입력된 SQL 문을 하나씩 수행하는 구문이다. 이 옵션은 질의 수행에 메모리를 적게 할당하고 싶을 때 유용하게 이용할 수 있다. 각 SQL 문은 세미콜론(;)으로 구분한다. 옵션을 생략하면 기본으로 동작한다.
csql -s -i infile demodb
셸에서 직접 SQL 문을 처리(-c)
-c 옵션을 이용하여 셸 상에서 하나 이상의 SQL 문을 직접 수행하는 구문이다. 이 때, 각 문장은 세미콜론(;)으로 구분한다.
csql -c "select * from olympic;select * from stadium" demodb
라인 단위로 출력(-l)
-l 옵션을 이용하여 SQL 문을 실행한 결과를 라인 단위로 출력하는 구문이다. -l 옵션이 지정되지 않으면 열 단위로 출력된다.
csql -l demodb
에러를 무시하고 계속 실행(-e)
-e 옵션을 이용하여 의미상 오류 또는 런타임 에러가 발생하여도 이를 무시하고 계속 SQL 문을 실행하라는 구문이다. 이 때, SQL 문에 오류가 있는 경우에는 -e 옵션이 지정되어 있어도 데이터베이스는 종료된다.
csql -e demodb
읽기 전용으로 접속 (-r)
-r 옵션을 이용하여 읽기 전용으로 데이터베이스에 접속하는 구문이다. 데이터베이스에 읽기 전용으로 접속하면 테이블을 만들거나 데이터를 입력할 수 없고 데이터를 조회만 할 수 있다.
csql -r demodb
자동 커밋 모드 중지(--no-auto-commit)
--no-auto-commit 옵션을 이용하여 자동 커밋 모드를 중지하는 구문이다. --no-auto-commit 옵션을 지정하지 않으면 기본적으로 CSQL 인터프리터는 자동 커밋 모드로 작동되고, 입력된 SQL 문이 실행될 때마다 자동으로 커밋된다. 또한, CSQL 인터프리터를 시작한 후 ;AUtocommit 세션 명령을 수행해도 동일한 결과를 얻을 수 있다.
csql --no-auto-commit demodb
질의 수행 결과를 일괄적으로 보여주기(--no-pager)
--no-pager 옵션을 이용하여 CSQL 인터프리터에서 수행한 질의 결과를 페이지 단위로 출력하지 않고, 일괄적으로 출력하라는 구문이다. --no-pager 옵션을 지정하지 않으면 페이지 단위로 질의 수행 결과가 출력된다.
csql --no-pager demodb
SQL 문 여러 개를 모아서 일괄적으로 실행하기(--no-single-line)
--no-single-line 옵션을 이용하여 SQL 문 여러 개를 ;xr 혹은 ;r 세션 명령어로 한꺼번에 수행하고자 할 때 사용하는 옵션이다. 이 옵션을 지정하지 않으면 ;xr 혹은 ;r 세션 명령어 없이 SQL 문이 바로 실행된다.
csql --no-pager demodb