isql

o input/output file을 지정할 수 있는가?
o OS의 file을 읽어 들일 수 있는가?
o 1> 이 나오게 하려면?
o OS의 명령문을 수행하려면?
o 수행시간을 보여줄 수 있는가 ?
o SQL문장 사용 뒤에 go 대신 다른 문자를 사용할 수 있는가?
o network packet size를 늘리는 법은?
o Column 이름을 몇 row 마다 display할 수 있게 하는 방법?
o 결과에서 컬럼 사이를 |로 구분할 수 있나?
o 결과를 좀더 넓게 볼 수 있는가?
o 결과에서 n rows affected 와 ----을 없앨 수 있는가?

input / output을 지정할 수 있는가?
방법 1) < , >을 사용한다
isql -Usa -Psybase < /tmp/a.sql > /tmp/a.res

방법2) -i , -o를 사용한다
isql -Usa -Psybase -i /tmp/a.sql -o /tmp/a.res


OS의 file을 읽어 들일 수 있는가?

:r 을 사용한다
[digital:/home/ase12 26 ] isql -Usa -Psybase
1> :r /tmp/a.sql


1> 이 나오게 하려면?

reset을 사용한다
1> use pubs2_new
2> go
3> select * from publishers
4> go
5> exit
6> reset


OS의 명령문을 수행하려면?

!!를 사용한다
1> !!ls /tmp
[sh:ls /tmp]
0 ---- a.res ----- ctisql_aadEoa ---- sp_helpdb
000 -- a.result --- ctisql_aaedta ----- sp_who
1 ---- a.sql ------ctisql_aafrBa ------sqlda.h

수행시간을 보여줄 수 있는가 ?

-p 를 사용한다

isql -Usa -Password -p
1> select * from publishers
2> go
pub_id --- pub_name ----------------- city ------ state
-------- -------------------------- ------------ --------
0736 ----- New Age Books ----------Boston -------MA
0877 ----- Binnet & Hardley --------- Washington -- DC
1389 ----- Algodata Infosystems -----Berkeley -----CA

(3 rows affected)
Execution Time (ms.): 0 Clock Time (ms.): 0

SQL문장 사용뒤에 go 대신 다른 문자를 사용할 수 있는가?

-c를 사용한다
isql -c.
A
1> select

name from sysusers
2> .
name
-----------
sandy
kim
leslie
(3 rows affected)

network packet size를 늘리는 법은?

-A 을 사용한다
isql -Usa -Psybase -A4096

Column 이름을 몇 row 마다 display할 수 있게 하는 방법?

-h를 사용한다

3row씩 보여주고 column header를 찍는다
[digital:/home/ase12 38 ] isql -Usa -Psybase -h3
1> use pubs2_new
2> go
1> select * from authors
2> go
au_id au_lname --------------------------------au_fname
-------phone address
-------city ------------state country -----------postalcode
----------- ---------------------------------- ------------
172-32-1176 White ------------------------------Johnson
-------408 496-7223 10932 Bigge Rd.
-------Menlo Park ------CA --------USA -------94025
213-46-8915 Green -----------------------------Marjorie
-------415 986-7020 309 63rd St. #411
-------Oakland ---------CA ------- USA -------94618
238-95-7766 Carson ----------------------------Cheryl
-------415 548-7723 589 Darwin Ln.
-------Berkeley -------- CA ------- USA ------ 94705

au_id au_lname ------------------------------- au_fname
-------phone address
-------city -------------state country ----------postalcode
----------- ---------------------------------- ------------
267-41-2394 O'Leary --------------------------- Michael
-------408 286-2428 22 Cleveland Av. #14
-------San Jose -------CA --------USA --------95128
274-80-9391 Straight ----------------------------Dick
-------415 834-2919 5420 College Av.
-------Oakland --------CA --------USA -------- 94609
341-22-1782 Smith ----------------------------- Meander
-------913 843-0462 10 Mississippi Dr.
-------Lawrence ------ KS --------USA -------- 66044

au_id au_lname -------------------------------- au_fname
-------phone address
-------city ------------state country ------------postalcode
----------- ----------------------------------- -----------
409-56-7008 Bennet -----------------------------Abraham
-------415 658-9932 6223 Bateman St.
-------Berkeley --------CA -------USA ---------94705
427-17-2319 Dull ------------------------------- Ann
-------415 836-7128 3410 Blonde St.

결과에서 컬럼사이를 | 로 구분할 수 있나?

-s로 column separator 사용한다

[digital:/home/ase12 40 ] isql -Usa -Psybase -s'|'
1> select * from sysusages
2> go
dbid - segmap ---- lstart ---- size ------ vstart ------ pad  unreservedpgs
|---|---------|---------|--------|------------|----------|-------------|
|  1 |------- 7 | ------ 0 | ---3072 | --------- 4 | -- NULL | ---------- 5 |
|  1 |------- 7 | --- 3072 | ---2048 | ------ 6148 | -- NULL | ------- 1034 |
|  2 |------- 0 | ------ 0 | ---1024 | ------ 4100 | -- NULL | -------- 391 |
|  2 |------- 7 | --- 1024 | ---5120 | - 201326592 | -- NULL | ------- 5092 |
|  2 |------- 7 | --- 6144 | ---1024 | -- 50331648 | -- NULL | ------- 1024 |
|  3 |------- 7 | ------ 0 | ---1024 | ------ 3076 | -- NULL | -------- 383 |
|  4 |------- 3 | ------ 0 | --51200 | - 117440512 | -- NULL | ------ 50560 |
|  4 |------- 3 | -- 51200 | --20480 | - 117491712 | -- NULL | ------ 20480 |
|  4 |------- 3 | -- 71680 | ---4096 | - 117512192 | -- NULL | ------- 4096 |
|  4 |------- 4 | -- 75776 | --10240 | - 134217728 | -- NULL | ------ 10224 |

결과를 좀더 폭넓게 볼 수 있는가?

-w로 column width를 조정한다
예) -w100 : width를 100으로 한다

결과에서 n rows affected 와 ----을 없앨 수 있는가?

다음과 같이 해 본다
[digital:/home/ase12 82 ] isql -Usa -Psybase -n | \
sed -e '/affected/d' \
-e '/---/d' > resultfile
select * from pubs2_new..publishers
go
exit
[digital:/home/ase12 83 ] cat resultfile
pub_id pub_name -------------- city ---------- state
0736 New Age Books---------- Boston --------- MA
0877 Binnet & Hardley ------- Washington ------  DC
1389 Algodata Infosystems ----Berkeley -------- CA

 

Tistory 태그:

'IT > DB' 카테고리의 다른 글

[ORACLE] BLOB  (0) 2011.01.05
[SYBASE] isql 접속  (0) 2008.09.20
[SYBASE] 기본 교육  (0) 2008.09.20
[MSSQL] 게시판의 페이지 형태로 읽어오는 Stored Procedure  (0) 2008.09.20
[ORACLE] PL/SQL 정리  (0) 2008.09.20

+ Recent posts