Ito ang command sqsh na maaaring patakbuhin sa OnWorks na libreng hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator
PROGRAMA:
NAME
sqsh - Interactive database shell (bersyon 2.1.7)
SINOPSIS
sqsh [[mga opsyon]] [[args......]]
[ -isang bilang ]
[ -Isang packet_size ]
[ -b ]
[ -B ]
[ -c [cmdend] ]
[ -C sql ]
[-d kalubhaan]
[ -D database ]
[ -e ]
[ -E editor ]
[ -f kalubhaan ]
[ -G tds_version ]
[ -h ]
[ -H hostname ]
[ -i filename ]
[ -I mga interface ]
[ -J charset ]
[ -k keywords ]
[ -K keytab]
[ -l debug_flags ]
[ -L var=value ]
[ -m style ]
[ -n on|off ]
[ -N appname ]
[ -o filename ]
[ -p ]
[ -P [password] ]
[ -Q query_timeout ]
[ -r [sqshrc] ]
[ -R server principal ]
[ -s colsep ]
[ -S server ]
[ -t [filter] ]
[ -T login_timeout ]
[ -U username ]
[ -v ]
[ -V [bcdimoqru]]
[-w lapad ]
[ -X ]
[ -y directory ]
[ -z wika ]
[ -Z [secmech|default|wala] ]
DESCRIPTION
Ang Sqsh (pronounced skwish) ay maikli para sa SQshelL (pronounced sq-shell), at nilayon bilang isang
kapalit para sa kagalang-galang na programang 'isql' na ibinigay ng Sybase. Nangyari ito dahil sa
taon ng pagkabigo sa pagsisikap na gumawa ng tunay na gawain sa isang programa na hindi sinadya
gumanap ng tunay na gawain.
Ang Sqsh ay higit pa sa isang magandang prompt, ito ay inilaan upang magbigay ng marami sa pag-andar
na ibinigay ng isang magandang shell, tulad ng mga variable, aliasing, redirection, pipe, back-grounding,
kontrol sa trabaho, kasaysayan, pagpapalit ng command, at dynamic na configuration. Gayundin, bilang isang by-
produkto ng disenyo, napakadaling i-extend at magdagdag ng functionality.
Opsyon
Maaaring gamitin ang mga sumusunod na opsyon upang ayusin ang ilan sa pag-uugali ng sqsh, gayunpaman malaki
ang bahagi ng mga opsyon sa pagsasaayos ay magagamit lamang sa pamamagitan ng mga variable ng kapaligiran
na maaaring itakda sa runtime o sa pamamagitan ng .sqshrc file.
Ang mga opsyon ay maaari ding ibigay sa variable ng kapaligiran ng SQSH. Na-parse ang variable na ito
bago ang pag-parse ng command line, kaya sa karamihan ng mga kaso ay i-override ng command line ang
nilalaman ng variable. Magkaroon ng kamalayan na para sa mga opsyon na pinapayagang ibigay
maraming beses, tulad ng -c, pagbibigay sa kanila pareho sa isang variable at sa command line ay
maging kapareho ng pagbibigay sa kanila ng maraming beses sa command line.
-isang bilang
Itinatakda ang maximum bilangin ng mga pagkabigo (tulad ng tinutukoy ng $thresh_fail variable) na
maaaring mangyari bago i-abort ang sqsh. Ang pagtatakda nito sa 0 ay nagpapahiwatig na ang sqsh ay hindi dapat
lumabas sa mga error. Nagde-default ang value na ito sa 0 at maaari ding itakda gamit ang $thresh_exit
variable. Tingnan ang seksyon EXIT STATUS para sa mga detalye.
- Isang packetsize
Tinutukoy ang laki ng mga network ng TDS packet na ginamit upang makipag-ugnayan sa SQL server.
Ang value na ito ay dapat nasa pagitan ng 512 at 8192, at isang multiple ng 512. Suriin ang iyong SQL
Configuration ng server upang matukoy ang mga sinusuportahang laki ng packet. Ang halagang ito ay maaari ding
tinukoy sa run-time gamit ang $packet_size variable.
-b Pigilan ang mensahe ng banner sa pagsisimula. Ito ay hindi kailangan sa mga kaso kung saan ang stdout
ay na-redirect sa isang file. Ang opsyong ito ay maaari ding itakda sa pamamagitan ng $banner variable.
-B Ino-off ang lahat ng buffering ng stdin, stdout, at stderr. Ang tampok na ito ay nagpapahintulot sa sqsh na maging
tumakbo mula sa isang interactive na control script tulad ng chat at expect.
-c [cmdend]
Ang panloob na sqsh ay nagbibigay ng utos \pumunta upang magpadala ng isang batch ng SQL sa database at
nagbibigay ng iisang alias, go para sa utos na ito. Sa bawat pagkakataon cmdend ay binibigyan ng bagong alias
para \pumunta ay itinatag.
-C sql
Nagdudulot ng SQL utos na isasagawa ng sqsh, katulad ng parehong pag-uugali na ipinakita
sa pamamagitan ng watawat -i. Ito SQL ang pahayag ay maaaring hindi naglalaman ng dobleng panipi (ang limitasyong ito ay maaaring
maaalis sa hinaharap na release ng sqsh).
-d kalubhaan
Itinatakda ang pinakamababang kalubhaan ng error sa SQL Server na ipapakita sa user. Ang
ang default ay 0, at ang mga wastong hanay ay mula 0 hanggang 22. Maaari rin itong itakda gamit ang
$thresh_display variable. Tingnan ang seksyon EXIT STATUS.
-D database
Nagiging sanhi ng sqsh upang subukang magsimula sa iyong konteksto ng database na nakatakda sa database sa halip na
ang iyong default na database (karaniwang master). Maaari rin itong itakda gamit ang $database
variable
-e Kasama ang bawat utos na ibinigay sa sqsh na isasama sa output. Ang pagpipiliang ito ay maaaring
itakda din sa pamamagitan ng $echo variable (na walang kaugnayan sa \echo utos).
-E editor
Itakda ang default na editor sa editor. Maaari rin itong itakda gamit ang kapaligiran ng UNIX
variable na $EDITOR sa pangalan ng nais na editor.
-f kalubhaan
Itinatakda ang minimum kalubhaan antas na itinuturing na isang pagkabigo ng sqsh. Ito ay katulad ng
pagtatakda ng $thresh_fail variable. Tingnan ang seksyon EXIT STATUS para sa mga detalye.
-G tds_version
Itakda ang bersyon ng TDS na gagamitin. Ang mga wastong bersyon ay 4.0, 4.2, 4.6, 4.9.5, 5.0 at freetds
Bukod pa rito ay sumusuporta sa mga bersyon 7.0 at 8.0. Ang tinukoy na halaga ay itinalaga sa
variable na $tds_version. Ang pagpapatunay ng input ay hindi ginagawa ng sqsh. Gayunpaman, kapag ang isang
di-wastong bersyon ng TDS ay tinukoy, ang default na bersyon ng 5.0 ang gagamitin. Pagkatapos ng a
session ay setup, ang variable na $tds_version ay itatakda sa TDS na bersyon na may bisa.
Hindi magiging available ang variable kung hindi ginagamit ang opsyon -G. Sinadya para sa pagsubok at
mga layunin ng pag-debug lamang.
Ang TDS ay kumakatawan sa Tabular Data Stream at ang protocol ng komunikasyon na Sybase at
Ginagamit ng Microsoft para sa komunikasyon ng Client-Server.
-h In-off ang mga header ng column at sumusunod sa "(# row ang apektado)" mula sa batch na output.
-H hostname
Itinatakda ang hostname ng kliyente bilang iniulat sa mga sysprocesses. Maaari rin itong itakda sa pamamagitan ng
variable ng $hostname.
-ako ng filename
Basahin ang lahat ng input mula sa filename sa halip na mula sa stdin.
-I interface
Kapag ang isang koneksyon ay naitatag sa database, ang interface file ay ginagamit upang i-on
ang halaga ng $DSQUERY sa hostname at port kung saan gagawin ang koneksyon,
bilang default, ito ay matatagpuan sa $SYBASE/interfaces. Ang flag na ito ay nagbibigay-daan sa default na ito
na-override.
-J charset
Tinutukoy ang set ng character na gagamitin sa panig ng kliyente upang makipag-usap sa SQL
server. Maaari rin itong itakda gamit ang $charset environment variable.
-k mga keyword
Tinutukoy ang isang file na naglalaman ng isang listahan ng mga keyword na gagamitin para sa pagkumpleto ng tab ng keyword,
kung ang suporta sa readline ay naipon sa sqsh. Ang file na ito ay maaari ding itakda sa pamamagitan ng
$keyword_file variable, na nagde-default sa $HOME/.sqsh_words.
-K keytab
Suporta sa Kerberos. Tukuyin ang keytab file name para sa DCE.
Tingnan ang seksyong Suporta ng Kerberos sa ibaba para sa mga detalye.
-l debug_flags
Kung ang sqsh ay pinagsama-sama sa -DDEBUG, ang opsyong ito ay maaaring gamitin upang i-on at i-off
mga pagpipilian sa pag-debug. Tingnan ang variable na $debug, sa ibaba.
-L var=halaga
Itinatakda ang halaga ng $var sa halaga. Ito ay maaaring gamitin upang itakda ang halaga ng anumang sqsh
variable kahit na ang isang tahasang command line variable ay ibinibigay para sa pagtatakda ng
variable. Ang -L flag ay maaaring gamitin upang itakda ang halaga ng mga di-configuration variable bilang
mabuti.
-m style
Binabago ang kasalukuyang istilo ng pagpapakita sa estilo. Ang mga kasalukuyang sinusuportahang istilo ay horiz,
vert, bcp, csv, html, meta, medyo at wala. Ang kasalukuyang istilo ng pagpapakita ay maaari ding itakda
gamit ang $style variable o sa pamamagitan ng -m bandila sa \pumunta utos.
-n on|off
Ine-enable ang chained transaction mode sa pagkonekta (kung nakatakda sa on). Naka-chain na transaction mode
ay kilala rin bilang "AutoCommit off" mode.
-N appname
Itakda ang pangalan ng application na ginagamit ng sqsh upang makilala ang sarili nito sa SQL server. Ang
Maaaring makuha ang pangalan ng application mula sa server gamit ang column pangalan_programa ng
talahanayan ng master.dbo.sysprocesses. Default sa sqsh-2.1.7.
-o filename
Nire-redirect ang lahat ng output sa filename sa halip na stdout.
-p Ipakita ang mga istatistika ng pagganap sa pagkumpleto ng bawat SQL batch. Ang pagpipiliang ito ay maaaring
i-on din sa pamamagitan ng variable na $statistics, o sa pamamagitan ng pagbibigay ng -p bandila sa \pumunta
utos.
-P [password]
Ang Sybase password para username kinakailangan upang kumonekta sa server (default, NULL). Ang
password maaari ding itakda sa pamamagitan ng $password. Ang pagbibigay ng password ng '-' ay nagiging sanhi ng
password na babasahin mula sa unang linya ng stdin.
Ang sqsh ay nagsisikap na itago ang password mula sa sinumang user na sumusubok na tingnan ang command line
ginamit upang ilunsad ang sqsh, kaya ginagamit -P hindi dapat maging isang butas sa seguridad.
Bilang kahalili, maaari mong iimbak ang iyong default na password sa .sqshrc file na hindi
nababasa ng sinuman maliban sa iyong sarili. (chmod 600 .sqshrc)
-Q halaga
Query timeout value (katumbas ng isql's -t na opsyon). Kung itinakda, magtatagal nang matagal
tumatakbong query. Mapa sa $query_timeout variable
Halimbawa:
sqsh -SASE1502 -Usa -P -Q30
ASE1502.sa.master.1> cd tix
ASE1502.sa.tix.1> piliin ang bilang(*) mula sa E_TIX;
Buksan ang Mensahe ng Kliyente
Layer 1, Origin 2, Severity 2, Number 63
ct_results(): user api layer: panloob na Client Library error:
Nag-time out ang pagbabasa mula sa server.
ASE1502: Natukoy ang timeout ng query o command, nakansela ang command/batch
ASE1502: Natukoy ito ng koneksyon ng kliyente ng 1 (mga) beses.
Tingnan din ang $max_timeout variable, na kumokontrol sa dami ng beses na maaaring mag-timeout
mangyari sa kasalukuyang koneksyon bago i-abort ang session.
-r [sqshrc]
Tinutukoy ang isang kahalili .sqshrc file na ipoproseso, sa halip na ang default. Kung hindi
sqshrc ay ibinibigay kasunod -r, pagkatapos ay walang mga initialization file ang naproseso. Ang watawat na ito
dapat maging ang unang argument na ibinigay sa command line, ang lahat ng iba pang mga pagkakataon ay magiging
hindi pinansin
-R server_principal
Suporta sa Kerberos: Tinutukoy ang a server pangunahin gamitin para sa network (Kerberos)
pagpapatunay, kung ang pangalan ng server sa file ng mga interface ay naiiba sa tunay na server
pangalan.
Tingnan ang seksyong Suporta ng Kerberos sa ibaba para sa mga detalye.
-s colsep
Nagdudulot ng string colsep na gagamitin upang limitahan ang mga column ng output ng SQL column, ito
default sa " ".
-S server
Ang pangalan ng Sybase server para kumonekta, ang default nito ay ang panlabas
variable ng kapaligiran na $DSQUERY. Kung wala man -S o ang $DSQUERY ay nakatakda pagkatapos ay nagde-default sa
"SYBASE". Ang halagang ito ay maaari ding itakda sa pamamagitan ng panloob na variable na $DSQUERY.
-t [filter]
Pinapagana ang pag-filter ng mga command batch sa pamamagitan ng isang panlabas na programa, filter, at bago ang
ipinapadala sa SQL Server. Kung filter ay hindi ibinibigay, pagkatapos ay ginagamit ang $filter_prog
(Ang default ay 'm4 -'). Ang halagang ito ay maaari ding itakda sa pamamagitan ng $filter at $filter_prog
mga variable.
-T halaga
Tinutukoy ang timeout sa pag-log in (katulad ng -l flag ng isql). Kung ang set ay tumutukoy sa numero
ng mga segundo sqsh maghihintay bago mag-time out ng kahilingan sa pag-login. Mapa sa
$login_timeout variable
-U username
Ang Sybase username upang kumonekta sa database bilang, ito ay nagde-default sa username ng
tumatakbo ang gumagamit sqsh. ang username maaari ding itakda sa pamamagitan ng variable na $username.
-v Ipinapakita ang numero ng bersyon, $bersyon, at paglabas.
-V [bcdimoqru]
Suporta sa Kerberos: Tukuyin ang mga opsyon sa seguridad na gagamitin.
Tingnan ang seksyong Suporta ng Kerberos sa ibaba para sa mga detalye.
-w lapad
Ang maximum na output lapad ng isang ipinapakitang set ng resulta, ito ay nagde-default sa lapad ng iyong screen
sa interactive na mode.
-X Sinisimulan ang koneksyon sa pag-log in sa server gamit ang client-side na password encryption (kung
suportado). Kung alinman sa SQL Server ay hindi nakikilala ang opsyong ito, o kung ang bersyon ng
Ang CT-Lib ay ginamit upang mag-compile sqsh ay hindi sumusuporta sa opsyong ito, pagkatapos ay hindi ito papansinin.
Ang opsyong ito ay maaari ding itakda gamit ang $encryption environment variable.
-y direktoryo
Tinutukoy ang isang SYBASE direktoryo na gumamit ng iba kaysa sa halaga ng $SYBASE upang mahanap
ang file ng mga interface.
-z wika
Tinutukoy ang isang kahalili wika upang ipakita ang mga sqsh prompt at mensahe. Kung wala ang -z
flag, gagamitin ang default na wika ng server. Maaari rin itong itakda gamit ang
$variable ng wika.
-Z [secmech|default|wala]
Suporta sa Kerberos: Tukuyin ang mekanismo ng seguridad na gagamitin.
Tingnan ang seksyong Suporta ng Kerberos sa ibaba para sa mga detalye.
args...
Kung ang sqsh ay pinapatakbo gamit ang -i flag na tumutukoy sa isang input file na ipoproseso (sa halip na
pagsisimula ng interactive na session), ang mga argumento ay maaaring ibigay sa command line sa
ipapasa sa input file. Maaaring ma-access ang mga argumentong ito gamit ang mga variable na ${0},
${1}, ... (tingnan ang Variable seksyon, sa ibaba, para sa higit pang impormasyon).
Pinasimulan
Sa pagsisimula, sinisimulan ng sqsh ang lahat ng mga variable, command, at alias ng panloob na kapaligiran
sa kanilang mga default na halaga, pagkatapos ay tumingin ito sa file ng pagsasaayos sa buong system, /etc/sqshrc,
na sinusundan ng lokal na configuration file na $HOME/.sqshrc (maaaring ma-override ito sa pamamagitan ng
variable ng panlabas na kapaligiran ng SQSHRC). Kung ang file na ito ay natagpuan ito ay pinaandar tulad ng a
gagamitin ng script ang -i bandila.
Ang .sqshrc Ang file ay maaaring maglaman ng anumang bagay na karaniwang maaaring i-type sa prompt, gayunpaman
dapat tandaan na sa oras na ang file na ito ay basahin ang sqsh ay hindi pa nakakapagtatag ng isang
koneksyon sa database, gayunpaman karamihan sa mga utos na nagsasagawa ng aktibidad sa database, tulad ng
\pumunta ay susubukang magtatag ng koneksyon sa database kapag naisakatuparan (maaari din itong mag-prompt sa iyo
para sa isang password kung kinakailangan). Gayundin, kung kinakailangan ang aktibidad ng database sa loob ng startup na ito
file, ang \kunekta utos (tingnan UTOS, sa ibaba) ay maaaring isagawa.
Pagkatapos ng .sqshrc ang file ay naisakatuparan, sqsh pagkatapos ay i-parse ang anumang mga pagpipilian sa command line (kaya
anumang mga variable na itinakda sa iyong .sqshrc Maaaring ma-override ang file ng mga opsyon sa command line).
Kasunod nito, kung sqsh ay tumatakbo sa interactive na mode (ibig sabihin, walang -i at kung ang stdin ay
naka-attach sa isang tty), pagkatapos ay hinahanap nito .sqsh_history at nilo-load ang mga nilalaman ng file na iyon
sa history buffer na ito (tingnan MGA BUFFER, sa ibaba).
Kaagad bago magtatag ng isang koneksyon sa database (alinman sa panahon ng pagsisimula, o
sa pamamagitan ng isang tahasang \kunekta or \kunekta muli command), ang file na $HOME/.sqsh_session ay pinaandar.
Maaaring ma-override ang pangalan ng file na ito gamit ang variable na $session.
Utos linya
Kapag ang isang linya ay unang binasa ni sqsh, ang unang salita ay nakahiwalay sa linya. Itong salita
pagkatapos ay pinalawak ng lahat ng mga variable (tingnan Paiba-iba Paghalili, sa ibaba), na sinusundan ng utos
pagpapalawak (tingnan Utos Paghalili, sa ibaba). Ang unang salita ng nagresultang string ay
pagkatapos ay sinuri upang makita kung ito ay wasto sqsh utos o alyas.
Ang sqsh Ang command line ay sumusunod sa marami sa parehong mga patakaran tulad ng Bourne shell, na nagpapahintulot sa file
redirection, pipelining, command substitution, at back-grounding sa pamamagitan ng parehong syntax.
Comments
Anumang linya na nagsisimula sa a # sinusundan ng isang hindi alphanumeric na character (anumang character na iba pa
kaysa sa 0-9, az, AZ, at _) ay nagiging sanhi ng pagbalewala sa buong linya. Dahil sa posible
banggaan sa T-SQL session tiyak na mga pangalan ng temp-table, ang linya ay hindi papansinin kung
ang unang karakter na sumusunod sa #, ay alphanumeric.
Pag-quote
Ginagamit ang pagsipi upang maiwasan ang interpretasyon ng mga espesyal na keyword o character sa sqsh,
gaya ng white-space, variable expansion, o command substitution. May tatlong uri ng
pagsipi, makatakas, single-quotes, at double-quotes.
Ang paglalagay ng mga character sa iisang quote ay nagpapanatili ng literal na interpretasyon ng bawat isa
karakter na nakapaloob sa loob ng mga quote. Maaaring hindi lumitaw ang isang quote sa loob ng mga solong quote,
kahit na naunahan ng pagtakas. Halimbawa:
1> \echo Hindi ko mapalawak ang '$username'
output
Hindi ko mapalawak ang $username
Ang mga character na \\ ay ginagamit upang takasan ang kahulugan (at sa gayon ay maiwasan ang interpretasyon) ng
ang karakter kaagad na sumusunod sa kanila. Ang \ character mismo ay maaaring makatakas. Para sa
halimbawa:
1> \echo Hindi ko mapalawak ang '$username'
output
Hindi ko mapalawak ang $username
Ang escape character ay maaari ding gamitin upang makatakas sa isang bagong linya upang magsagawa ng isang linya
pagpapatuloy, sa kasong ito ang bagong linya ay itatapon at ang patuloy na linya ay
awtomatikong idinagdag sa nakaraang linya, halimbawa:
1> \echo Hello \\
--> Mundo!
Hello World!
Ang paglalagay ng mga character sa dobleng panipi ay nagpapanatili ng literal na kahulugan ng lahat ng mga character
sa loob ng mga ito maliban sa $, ', at \\. Ang isang dobleng quote ay maaaring nilalaman sa loob
dobleng panipi sa pamamagitan ng pagtakas dito.
1> \echo "\\"Hindi ko maitatanggi, gusto ko ang $username\\", sabi niya"
nagpi-print out
"I can't deny it, I like grey", she said
Paglawak
Matapos basahin ang isang linya ng input, sqsh sumusubok na palawakin ang linya ng anumang mga alias (tingnan
Pagbabawas, sa ibaba), kasunod na sinusubukan nitong tukuyin kung ang linya ay nagsisimula sa a
keyword ng command. Kapag ang isang linya ay natukoy na naglalaman ng isang pangalan ng command mayroon itong dalawa
mga uri ng pagpapalawak na isinagawa nito: nagbabago paghalili, na sinusundan ng utos
paghalili ayon sa pagkakabanggit. Kasunod ng pagpapalawak na ito, ang command line ay nahahati sa
mga salita at ang utos ay naisakatuparan.
Paiba-iba Paghalili
Ang character na $ ay ginagamit upang ipahiwatig ang variable na pagpapalit o pagpapalawak sa loob ng isang salita.
Ang mga variable na ito ay maaaring italaga ng mga halaga ng \itakda utos na ganito:
1> \set name=value
pangalan maaaring character o underscore na sinusundan ng anumang kumbinasyon ng mga character, digit,
o salungguhit, at maaaring hindi naglalaman ng anumang mga espesyal na character, gaya ng (') at ("). Ang
Ang paghihigpit sa unang karakter bilang isang digit ay ipinakilala dahil pinapayagan ng SQL ang
representasyon ng mga uri ng data ng pera bilang $nn.nn kung saan ang n ay isang digit.
halaga maaaring maglaman ng kahit ano, gayunpaman kung ito ay upang isama ang white-space, kung gayon ito ay dapat na
sinipi (tingnan Mga salita & Pag-quote, sa itaas). Tandaan na upang maiwasan ang paglawak ng a
variable ay gumagamit ng alinman sa mga solong quote, o dalawang \'s, tulad ng ganito:
1> \echo \\$pangalan
$pangalan
Maaaring i-reference ang mga variable sa isa sa dalawang paraan:
$variable Sa ganitong paraan ang lahat ng character, digit, at underscore ay itinuturing bilang ang pangalan
ng variable hanggang sa maabot ang isa pang uri ng karakter (alinman sa isang espesyal na karakter, o
isang puting espasyo). ${variable} Ang mga braces ay kinakailangan lamang kapag nagbabago ay sinusundan ng a
titik, digit, o underscore na hindi dapat bigyang-kahulugan bilang bahagi ng pangalan nito. Tandaan na
ang parehong epekto ay maaaring makamit gamit ang double quotes.
Dapat tandaan na dahil ang mga variable ay pinalawak bago masira ang utos
linya sa mga salita, kung ang mga nilalaman ng variable ay naglalaman ng mga puting espasyo, ang mga ito ay itinuturing bilang
makabuluhan ng parser. Sa sumusunod na halimbawa:
1> \set x="1 2 3"
1> \echo $x
ang \echo Ang command ay tumatanggap ng tatlong argumento, "1", "2", at "3", kahit na parang
isang argumento lang ang naipasa dito. Ang pag-uugali na ito ay pare-pareho sa karamihan ng mga shell (tulad ng
csh, bourne shell, atbp.).
Utos Paghalili
Sqsh sumusuporta sa pangalawang paraan ng pagpapalawak na tinatawag na utos paghalili. Ang form na ito ng
Pinapalitan ng pagpapalawak ang isang command sa command line na may output ng panlabas na UNIX
utos. Maaaring makamit ang pagpapalawak na ito sa pamamagitan ng paglalagay ng command line na isasagawa
back-quotes (`). Halimbawa:
1> \set password=`/sybase/bin/getpwd $DSQUERY`
1> \echo $password
ilikepickles
Ang halimbawang ito, ang panlabas na programa /sybase/bin/getpwd ay pinaandar kasama ang kasalukuyang
mga nilalaman ng $DSQUERY environment variable, ang buong expression ay papalitan ng
ang output ng getpwd (ilikepickles) bago isagawa ang \itakda utos. Bilang default, ang
ang output ng substituted command ay unang pinaghiwa-hiwalay sa mga salita ayon sa nilalaman ng
ang variable na $ifs bago ang pagsasama-sama pabalik sa command line. Kaya, sa pamamagitan ng
pag-override sa mga nilalaman ng $ifs maaari mong maapektuhan ang pag-uugali ng proseso ng pagpapalit.
Halimbawa:
1> \set ifs=":"
1> \echo `echo hello:how:are:you`
hello kumusta
Ang mekanismong ito ay madalas na kapaki-pakinabang para sa pag-parse ng mga input file, gaya ng / etc / passwd sa
field.
Input / Output Pag-redirect
Tulad ng karaniwang Bourne shell (at karamihan sa iba pang mga shell, sa bagay na iyon), isang input ng command
at ang output ay maaaring i-redirect gamit ang isang espesyal na notasyon na binibigyang kahulugan ng shell. Ang
Ang sumusunod ay maaaring lumitaw kahit saan sa command line, ngunit ang pag-redirect lamang ang tinukoy
bago sa isang pipe (|) ay talagang may anumang epekto sa pag-uugali ng mga panloob na sqsh command
(sumangguni sa Pipa, sa ibaba).
<salita
Gamitin ang file salita bilang karaniwang input para sa utos. Karaniwang napakakaunti sqsh
Ang mga utos ay talagang nagbabasa ng anuman mula sa stdin, kaya karaniwan itong walang epekto (tingnan
ang \loop utos).
[n]> salita
Iugnay ang output ng file descriptor n (stdout, bilang default) na may file salita. Kung ito
file ay hindi umiiral ito ay nilikha; kung hindi, ito ay pinutol sa zero na haba.
[n]>>salita
Idagdag ang output ng file descriptor n (stdout, bilang default) sa file salita, paglikha nito
kung wala ito.
[m]>&n
I-redirect ang output ng file descriptor m (stdout bilang default), sa parehong output bilang file
deskriptor n. Ang pagkakasunud-sunod kung saan ang mga pag-redirect ay tinukoy sa command line ay
makabuluhan, dahil sinusuri ang mga pag-redirect mula kaliwa-pakanan. Halimbawa:
1> piliin ang * mula sa piling /* error sa syntax */
2> \go >/tmp/output 2>&1
Ang pahayag na ito ay unang nagre-redirect sa karaniwang output ng \pumunta utos sa file
/tmp/output, pagkatapos ay nire-redirect ang stderr sa parehong file. Kaya, kapag nabigo ang mga utos,
ang output ng error ay makikita sa file /tmp/output.
Gayunpaman, sa pamamagitan ng pagbabago ng pagkakasunud-sunod ng pag-redirect, maaari mong ganap na baguhin ang kahulugan:
1> piliin ang * mula sa pili
2> \go 2>&1 >/tmp/output
Msg 156, Level 15, State 1
Server 'SQSH_TEST', Linya 1
Maling syntax malapit sa keyword na 'piliin'.
Sa kasong ito, ang output ng error ay ipapadala sa stdout, habang kung ano ang napunta sa
Ang stdout ay na-redirect sa /tmp/output (sa kasong ito /tmp/output magiging walang laman).
Mangyaring basahin ang seksyon sa likuran Trabaho, sa ibaba, para sa detalyadong impormasyon sa pakikipag-ugnayan
sa pagitan ng pag-redirect ng file at mga trabaho sa background.
Pipa
A padaanin sa tubo ay isang pagkakasunod-sunod ng isa o higit pang mga utos na pinaghihiwalay ng isang '|', bawat utos ay gumagamit
ang stdout ng naunang programa para sa sarili nitong stdin. Gayunpaman ang unang utos sa
padaanin sa tubo dapat ay isang sqsh command, at lahat ng iba pang command ay dapat na panlabas (o UNIX)
mga programa. Anumang sqsh command ay maaaring patakbuhin sa pamamagitan ng isang pipeline, bagaman para sa marami sa kanila (tulad ng
bilang \itakda command) wala talagang saysay na gawin ito. Ang sumusunod ay isang
halimbawa ng a padaanin sa tubo:
1> piliin ang * mula sa mga syslogin
2> \go | higit pa
Ang utos na ito ay nagiging sanhi ng set ng resulta na nabuo ng \pumunta utos na ipadala sa mas marami pang (1)
program, na pagkatapos ay ipapadala ito sa iyong screen, na humihinto sa bawat screen na puno ng data (ito ay
ang pangunahing dahilan kung bakit ako sumulat ng sqsh).
Mayroong ilang mga kakaiba sa paraan ng pagharap sa sqsh pipelines sa halip
sa paraan kung saan tinatrato sila ng karaniwang Bourne shell.
Lahat ng bagay kasunod ng unang paglitaw ng isang pipe (|) na character ay nahahati sa puti-
space delimited na mga salita, kabilang ang mga espesyal na shell command gaya ng '2>&1' at iba pa
mga paglitaw ng mga tubo. Kung mayroong anumang mga variable na nakapaloob sa mga salitang ito
pinalawak na sumusunod sa parehong mga panuntunan sa pagsipi tulad ng inilarawan sa Mga salita & Pag-quote, sa itaas, kasama ang
isang pagbubukod na ang lahat ng mga panipi ay naiwan sa lugar. Ang mga salitang ito ay muling pinagsama-sama sa isang
isang string at ipinadala sa / Bin / SH para sa pagpoproseso.
Sa madaling salita, hindi sinusubukan ng sqsh na bigyang-kahulugan kung ano ang sumusunod sa unang pipe, sa halip ito ay
ipinadala sa isang "tunay" na shell upang gawin ang gawain. Ang katwiran sa likod nito ay tamad ako
at hindi ko gustong isulat ang lahat ng parehong kakaibang paghawak ng variable, &&'ing, ||'ing,
pagpapangkat, at mga panuntunan sa pagpapalawak ng variable na sinusuportahan ng Bourne shell, at sa halip ay hinayaan ko
Bourne ang maruming gawain.
Ang bentahe ng pamamaraang ito ay magagawa mo ang ilang napaka-komplikadong bagay pagkatapos ng
pipeline, tulad ng:
1> piliin ang * mula sa mga syscolumn
2> \go | (cd / Tmp; compress -c > sysolumns.Z)
Hindi sa naiisip ko ang anumang tunay na dahilan para gawin ito...ngunit magagawa mo kung gusto mo.
likuran Trabaho
Nagbibigay ang backgrounding ng mekanismo kung saan maaari kang magpatakbo ng anumang sqsh command bilang background
proseso at magpatuloy sa pagtatrabaho habang ito ay tumatakbo. Nag-aalok ang Sqsh ng dalawang uri ng backgrounding:
Ipinagpaliban
Sa mode na ito, nire-redirect ng sqsh ang lahat ng output ng trabaho sa background sa isang pansamantalang file
(matatagpuan sa direktoryo na $tmp_dir) habang tumatakbo ang trabaho, upang ang output ay
hindi nahahalo sa kasalukuyan mong ginagawa. Kapag natapos ang trabaho ikaw ay
naabisuhan tungkol sa pagkumpleto ng proseso at ang output ay maaaring matingnan gamit ang \ipakita
utos.
Hindi ipinagpaliban
Ito ay tumutugma sa karaniwang ideya ng isang proseso sa background sa ilalim ng UNIX. Sa ganitong mode
ang output ng trabaho ay hindi basta-basta na-redirect para sa iyo, at sa gayon ay maaaring maging
nakikihalo sa iyong kasalukuyang ginagawa. Ang pinili mong mode ay
mapipili sa pamamagitan ng $defer_bg variable (na nagde-default sa '1', o 'On'). Karaniwan ang
tanging dahilan para hindi gamitin ipinagpaliban mode ay upang maiwasan ang malalaking set ng resulta mula sa pagpuno
iyong file system.
Upang tukuyin na ang isang trabaho ay tatakbo sa background, idagdag lang ang isang & sa dulo ng
command line, bilang:
1> sp_long_arduous_proc 1, 30
2> \go &
Trabaho #1 tumatakbo [xxxx]
1>
Kapag nakatagpo ng sqsh ang & sa dulo ng command line, nagdudulot ito ng proseso ng bata (na may
isang Unix process id ng xxxx) pagkatapos ay tinatawag ng proseso ng bata ang \pumunta. \pumunta utos noon
nagtatatag ng bagong koneksyon sa database (gamit ang kasalukuyang mga halaga ng $DSQUERY,
$username, $password variable) at isinasagawa ang ipinakitang query. Habang isinasagawa ang trabaho
ang mga utos \mga trabaho \maghintay at \pumatay maaaring gamitin upang subaybayan o baguhin ang kasalukuyang tumatakbong trabaho
(tingnan ang seksyon UTOS, sa ibaba). Kapag nakumpleto ang anumang trabaho, ang sqsh ay magpapakita ng isang abiso,
tulad ng:
1> piliin ang bilang (*) mula sa
Tapos na ang trabaho #1 (nakabinbin ang output)
2>
Kapag natapos ang isang trabaho, kung wala itong output, agad itong ituturing na winakasan at
hindi lalabas sa kasalukuyang listahan ng mga tumatakbong trabaho. Gayunpaman kung ang kumpletong trabaho ay may
nakabinbing output, ito ay patuloy na ipapakita bilang isang tumatakbong trabaho (na may \mga trabaho utos)
hanggang sa a \ipakita ay ginagamit upang ipakita ang output ng trabaho.
Mayroong isang kilalang bug na may background ng trabaho kapag ginamit kasabay ng mga tubo, mangyaring
sumangguni sa TUMBOK seksyon sa dulo ng manwal.
Buffers
Sa normal isql dalawang buffer lamang ang pinananatili; ang buffer kung saan ka kasalukuyan
pag-type, at isang buffer na naglalaman ng huling batch na naisakatuparan (ito ay pinananatili sa paligid kung kailan
pinapatakbo mo ang 'vi', o 'edit').
Ang Sqsh ay nagpapanatili ng ilang natatanging hanay ng mga buffer:
Trabaho Nagpapahina ng lakas: Ang buffer na ito ay direktang tumutugma sa isql buffer sa trabaho. Ito ay ang buffer
kung saan mo ilalagay ang kasalukuyang batch bago ito ipadala sa database.
kasaysayan Nagpapahina ng lakas: Ito ay talagang isang chain ng 0 o higit pang mga buffer (ma-configure ng
$histsize variable) ng huling $histsize batch na pinatakbo. Ang buffer na ito ay lamang
pinananatili kapag ang sqsh ay pinapatakbo sa interactive na mode; ibig sabihin, ang mga batch ay isinagawa gamit ang -i
flag, o isinagawa sa pamamagitan ng pag-redirect mula sa UNIX prompt ay hindi pananatilihin sa kasaysayan
(pagkatapos ng lahat, sila ay nasa isang file sa isang lugar).
Kung ang variable na $histsave ay True (tingnan ang seksyon ESPESYAL MGA VARIABLE), at ang sqsh ay nasa
interactive na mode, pagkatapos ay isusulat ang kasalukuyang buffer ng kasaysayan sa $HOME/.sqsh_history kapag
lumabas ka. Ang file na ito ay babasahin muli sa sqsh sa susunod na pagsisimula nito sa interactive
mode.
Pinangalanan Buffers: Sa anumang oras sa isang sesyon ang Trabaho Nagpapahina ng lakas, o alinman sa kasaysayan Buffers
maaaring kopyahin sa isang pinangalanang buffer gamit ang \buf-copy utos (tingnan ang seksyon UTOS,
sa ibaba). Ang mga buffer na ito ay nawala kapag lumabas ka (gayunpaman maaari mong gamitin ang \buf-save utos kay
i-save ang pinangalanang buffer sa isang file).
Nagpapahina ng lakas Maikling-kamay
Maraming mga utos ang nagpapahintulot sa lahat ng mga buffer na ito na mai-reference sa maikling paraan, napaka
katulad ng paraan na iyon csh(1) tumutukoy sa kasaysayan ng mga utos nito. Alinman sa mga shorthand na ito
maaaring gamitin para sa anumang nagpapahina ng lakas parameter na inilarawan sa UTOS seksyon:
!. Ang kasalukuyang buffer ng trabaho.
!! Ang huling utos na naisakatuparan (tandaan, hindi ito available sa non-interactive na mode dahil ito
hindi nagpapanatili ng isang kasaysayan).
!+ Ang susunod na magagamit na entry sa kasaysayan. Isa itong write-only buffer, kaya kadalasan lang
nalalapat sa mga utos tulad ng \buf-copy.
!n Tumutukoy sa kasaysayan #n. Sa bawat oras na ang isang entry ay isinulat sa kasaysayan ito ay itinalaga ng isang
tumataas na bilang mula sa huling entry, gamit ang maikling-kamay na ito maaari kang sumangguni sa anuman
ibinigay na kasaysayan.
!buf_name
Para lamang sa pagkakapare-pareho ito ay ibinibigay bilang isang sanggunian sa pinangalanang buffer buf_name, gayunpaman
buf_name nang walang nangunguna '!' ay itinuturing ding tama.
buf_name
Tumutukoy sa pinangalanang buffer buf_name.
Variable
Ang mga variable ay maaari ding nasa loob ng mga buffer ng trabaho. Sa ilalim ng mga pangyayaring ito ang
ang mga variable ay nananatiling hindi lumalawak hanggang sa maipadala ang buffer sa database (sa pamamagitan ng \pumunta
command), sa panahong ito ay pinalawak at pinapalitan sa loob ng buffer. Ito
maaaring mabago ang pag-uugali sa pamamagitan ng $expand variable. (tingnan espesyal Variable, sa ibaba).
Ang sumusunod ay isang halimbawa ng paggamit ng mga variable sa loob ng isang buffer:
1> \set table_name=syscolumns
1> piliin ang bilang(*) mula sa $table_name
2> \go
Ito ang katumbas ng pagsasagawa ng query:
1> piliin ang bilang (*) mula sa mga syscolumn
2> \go
direkta. Karaniwan ang feature na ito ay kapaki-pakinabang para sa muling paggamit ng malaking complex saan mga sugnay, o
mahabang pangalan ng column.
Ang mga panuntunan sa pagsipi ay nalalapat sa parehong mga buffer ng SQL tulad ng ginagawa nila sa mga linya ng command. Ibig sabihin, kahit ano
ang mga variable na nasa loob ng double quotes (") ay pinalawak at ang mga variable ay nasa loob
Ang mga solong panipi (') ay hindi ginalaw. kaya:
1> piliin ang "$username", '$username'
2> \go
nagbubunga ng mga resulta
---- ---------
kulay abong $username
Utos Paghalili
Tulad ng command line, ang output ng UNIX command ay maaari ding palitan sa loob ng isang SQL
buffer sa panahon ng pagpapatupad (muli, kung ang $expand variable ay nakatakda sa 1, o true). Sa
sa sitwasyong ito, ang utos na nasa likod ng mga panipi (`) ay pinapalitan ng output nito
bago ipasa ang buffer sa SQL server. Halimbawa:
1> piliin ang count(*) mula sa `echo syscolumns`
2> \go
Nagiging sanhi ng mga string na 'echo syscolumns' na mapalitan ng salita syscolumns bago
pagsasagawa ng utos. Dapat pansinin na ang mga nilalaman ng ipinalit na utos ay
naisakatuparan lamang sa oras ng \pumunta command, hindi kapag ang linya ng SQL ay input.
Daloy-ng-Kontrol
Bago sa bersyon 2.0 ng sqsh, ay ang kakayahang magsagawa ng pangunahing daloy-ng-kontrol at
mga function gamit ang \kung, \habang, \gawin, at \func utos.
Bloke & SQL Buffers
Ang lahat ng sqsh flow-of-control command ay nakabatay sa block. Iyon ay, kung ang pagsubok na pagpapahayag ng
natugunan ang utos, pagkatapos ay isasagawa ang isang bloke ng sqsh-script. Halimbawa, ang kahulugan
ng \kung ang utos ay:
\kung ekspresyon
harangan ang
\fi
ito harangan ang maaaring anumang bilang ng mga linya ng sqsh command, SQL, o flow-of-control na mga pahayag
ipapatupad kung ang pagpapahayag sinusuri sa isang kondisyon ng tagumpay (0).
bawat harangan ang ay may sariling SQL buffer para sa tagal na ang harangan ang ay pinaandar. Yan ay,
ang mga sumusunod na pahayag:
1> /*
2> ** HINDI TAMANG PAGGAMIT NG IF BLOCK
3> */
4> piliin ang bilang (*) mula sa
5> \if [ $x -gt 10 ]
6> sysobjects
7> \iba pa
8> mga sysindex
9> \fi
5> pumunta ka
magbubunga:
Msg 102, Level 15, State 1
Server 'bps_pro', Linya 1
Maling syntax malapit sa 'mula sa'
dahil ang string na 'sysobjects' o 'sysindexes' ay ipinasok sa sarili nilang mga SQL buffer.
Ang mga buffer na ito ay itatapon sa sandaling maabot ang dulo ng bloke, at dahil a \pumunta
command ay hindi nakapaloob sa loob ng block, walang karagdagang mga error na nabuo.
Kaya, ang tamang paraan upang isulat ang expression sa itaas ay:
1> /*
2> ** TAMANG PAGGAMIT NG IF BLOCK
3> */
4> \if [ $x -gt 10 ]
5> piliin ang bilang (*) mula sa sysobjects
6> pumunta ka
7> \iba pa
8> piliin ang count(*) mula sa sysindexes
9> pumunta ka
10> \fi
o, kahit na:
1> /*
2> ** TAMANG PAGGAMIT NG IF BLOCK
3> */
4> \if [ $x -gt 10 ]
5> \set table_name=sysobjects
6> \iba pa
7> \set table_name=sysindexes
8> \fi
4> piliin ang * mula sa $table_name
5> pumunta ka
Gayundin, tandaan na ang numero ng linya na ipinapakita sa sqsh prompt ay nagre-reset sa kasalukuyang
posisyon sa panlabas na SQL buffer pagkatapos maabot ang \fi terminator.
expression
Ang lahat ng flow-of-control na pahayag sa sqsh ay tumatagal ng isang pagpapahayag upang matukoy kung alin harangan ang ng code
upang isagawa. Katulad ng Bourne Shell ng UNIX, ito pagpapahayag ay isang operating system lamang
program na pinaandar ng sqsh. Kung ang utos ay nagbabalik ng katayuan ng tagumpay (mga tawag lumabas(0)),
pagkatapos ito ay itinuturing na matagumpay.
Halimbawa, kasama ang sumusunod na pahayag:
\habang sinusubok ang $x -lt 10
harangan ang
\tapos na
ay isasakatuparan ang mga nilalaman ng harangan ang habang ang kasalukuyang halaga ng $x ay mas mababa sa 10. Tandaan
ang 'pagsubok' na iyon ay isang karaniwang programa ng UNIX upang magsagawa ng pangunahing string o mga paghahambing ng numero
(Bukod sa iba pang mga bagay). Gayundin, hindi tulad ng maraming mga shell, ang sqsh ay walang built-in na bersyon ng 'pagsubok'.
Gayunpaman, sinusuportahan ng Sqsh ang karaniwang maikling anyo ng 'pagsubok':
\habang [ $x -lt 10 ]
harangan ang
\tapos na
Gamit ang expression na ito ang open brace ('[') ay pinalitan ng sqsh parser na may 'test', at
ang malapit na brace (']') ay itinapon.
Hindi suportado expression
Sa kasalukuyan, hindi sinusuportahan ng sqsh ang karaniwang shell predicate operator na '&&' at '||'.
Ang mga ito ay maaaring isagawa tulad nito:
\if sh -c "cmd1 && cmd2"
harangan ang
\tapos na
\kung pahayag
Ang \kung Ang command ay gumaganap ng kondisyon na pagpapatupad ng isang sqsh harangan ang batay sa kinalabasan ng a
ibinigay na expression:
\kung expr1
block1
\elif expr2
block2
\iba
block3
\fi
Sa halimbawang ito, kung expression expr1 sinusuri sa true, pagkatapos ay ang block block1 is
sinusuri. Kung hindi, kung ang expression expr2 sinusuri sa true, pagkatapos ay i-block block2 is
sinusuri. Sa wakas, kung mabibigo ang lahat ng iba pang pagsubok block3 ay sinusuri.
Tandaan na, hindi katulad ng Bourne Shell, bawat \kung utos ay dapat na sinamahan ng isang trailing \fi
pahayag. Gayundin ang sqsh parser ay hindi masyadong matalino: Ang \iba at \fi pahayag
dapat ang mga nilalaman lamang sa linya kung saan lumalabas ang mga ito, at maaaring hindi naalyas ang mga ito
isa pang pangalan.
\habang pahayag
Ang \habang nagsasagawa ng utos a harangan ang ng sqsh code para sa habang isang ibinigay na expression
ay nananatiling totoo.
\habang ang expr
harangan ang
\tapos na
Sa halimbawang ito, habang ang expression ipahayag sinusuri sa true, pagkatapos ay ang block harangan ang is
sinuri
Ang \pahinga pahayag ay maaaring gamitin upang lumabas sa pinaka-inner-most \habang or \para sa loop (higit pa
on \para sa sa ibaba).
\para sa pahayag
Ang \para sa nagsasagawa ng utos a harangan ang ng sqsh code para sa bawat isa salita ibinigay:
\para sa var sa salita ...
harangan ang
\tapos na
Para sa bawat salita ibinibigay, ang halaga ng variable $var ay nakatakda sa salita at ang harangan ang of
ang code ay naisakatuparan. Nagtatapos ang pagpapatupad kapag wala nang mga salita sa listahan.
Tulad ng \habang ang \pahinga ang pahayag ay maaaring gamitin upang lumabas sa pinakaloob na pagpapatupad
loop.
\do utos
Ang \gawin Ang utos ay uri ng isang krus sa pagitan ng isang pahayag at isang utos.
Ito ay isang anyo ng \pumunta (tingnan sa ibaba para sa mga detalye sa \pumunta utos) kung saan a harangan ang ng sqsh
maaaring isagawa ang code para sa bawat hilera ng data na ibinalik mula sa query. Kapag ang harangan ang is
naisakatuparan, ang mga espesyal na sqsh variable #[0-9]+ (isang hash na sinusundan ng isang numero) ay maaaring gamitin upang
sumangguni sa mga halaga sa ibinalik na query. Halimbawa ang sumusunod na utos:
piliin ang id, pangalan mula sa master..sysdatabases
\gawin
\echo "Pagsusuri sa database #2, dbid #1"
gamitin ang #2
go
checkpoint
go
\tapos na
ay magiging sanhi ng isang CHECKPOINT command na maibigay sa bawat database sa server.
Mga pagpipilian sa linya ng utos
Ang \gawin Ang command ay nagtatatag ng bagong koneksyon na gagamitin ng harangan ang ng code kapag
pinaandar. Bilang default, ang koneksyon na ito ay itinatag sa kasalukuyang server (ang kasalukuyang
setting ng $DSQUERY), gamit ang kasalukuyang username ($ username) at ang kasalukuyang password
($password). Gayunpaman, ang pag-uugaling ito ay maaaring ma-override gamit ang mga opsyon sa command line:
-D database
Itinatatag ang koneksyon sa database bilang ang ibinigay database.
-U username
Itinatatag ang koneksyon sa server bilang ang ibinigay username.
-P password
Itinatatag ang koneksyon sa server gamit ang ibinigay password (na
sana valid password para sa binigay username).
-S server
Itinatatag ang koneksyon sa ibinigay server.
-n Huwag lumikha ng isang koneksyon para sa paggamit ng \gawin loop. Ang watawat na ito ay kapwa eksklusibo
kasama ang mga watawat sa itaas. Kapag pinagana ang flag na ito, sumusubok na magsagawa ng mga command sa database
sa loob ng harangan ang ay bubuo ng mga pagkakamali ng CT-Library.
Mga variable ng column
Gaya ng nabanggit sa itaas, maaaring matukoy ang mga halaga ng mga column sa kasalukuyang hanay ng resulta
gamit ang espesyal na #[0-9]+ na mga variable. Kaya, ang variable #1 ay maglalaman ng halaga ng
column number one ng kasalukuyang set ng resulta, at ang #122 ay maaaring maglaman ng halaga ng
Ika-122 na column (nagsisimula ang mga numero ng column sa 1).
Sa kaso ng nested \gawin loops, ang mga value sa nakaraang nesting level ay maaaring i-refer ng
pagdaragdag lang ng '#' para sa bawat nakaraang antas ng nesting, tulad nito:
piliin ang id, pangalan mula sa sysobjects
\gawin
piliin ang pangalan, indid mula sa sysindexes kung saan id = #1
\gawin
\echo "Ang Talahanayan ##2 (objid ##1) ay may index #1"
\tapos na
\tapos na
malinaw naman, hindi ito ang paraan na gagawin mo ang query na ito sa totoong buhay, ngunit nakukuha mo ang ideya.
Kapag nagpapalawak ng mga column na may mga NULL na halaga, lalawak ang variable ng column sa isang walang laman
string (''). Gayundin, ang mga reference sa mga hindi umiiral na column, gaya ng #0, ay magreresulta sa isang walang laman
string ('').
Tulad ng mga regular na variable ng sqsh (mga tinutukoy na may '$'), hindi magiging ang mga variable ng column
pinalawak kapag nakapaloob sa loob ng mga solong panipi.
aborting
Kung ang \pahinga or \balik Ang mga utos ay ibinibigay sa panahon ng pagproseso ng a \gawin loop, ang
Kakanselahin ang kasalukuyang query, isasara ang koneksyon na ginamit ng loop (maliban kung ang
-n flag ay ibinigay) at ang \gawin loop ay abort.
\func command
Ang \func Ang command ay ginagamit upang tukuyin ang isang magagamit muli na bloke ng sqsh code bilang isang function. Mga pag-andar
ay tinukoy tulad nito:
\func stats
\kung [ $# -ne 1 ]
\echo "use: stats [on | off]"
\ibalik 1
\fi
itakda ang mga istatistika io ${1}
itakda ang oras ng istatistika ${1}
go
\tapos na
Sa halimbawang ito isang bagong function ay itinatag na tinatawag na stats na umaasa ng isang argumento,
alinman sa "on" o "off". Gamit ang argumentong ito, stats ay paganahin o hindi paganahin ang batay sa oras at
I/O-based na mga istatistika.
Sa sandaling naitatag, ang function ay maaaring tawaging tulad nito:
\tumawag sa mga istatistika
Nagiging sanhi ng lahat ng pagkakataon ng ${1} na mapalitan ng unang command line argument sa
stats.
Mga pagpipilian sa linya ng utos
Sa kasalukuyan, isang argumento lamang ng command line ang magagamit sa \func utos.
-x Nagiging sanhi upang ma-export ang function bilang a sqsh utos. Iyon ay, ang pag-andar ay maaaring
direktang hinihingi nang hindi nangangailangan ng \tawag utos. Ang pag-uugali na ito ay opsyonal
dahil ang mga pangalan ng command ay maaaring potensyal na sumalungat sa mga keyword na T-SQL. Kapag ginagamit ito
i-flag inirerekumenda na maglagay ka ng backslash (\) sa iyong pangalan ng function.
Mga variable ng function
Tulad ng ipinapakita sa halimbawa sa itaas, maraming mga espesyal na variable ang magagamit para magamit sa loob ng
katawan ng function. Ito ay:
$# Lumalawak sa bilang ng mga argumentong ibinibigay sa function o script kapag na-invoke.
$* Lumalawak sa kumpletong listahan ng mga argumento na ibinigay sa function o script kung kailan
hinihingi.
${0}..${N}
Lumalawak sa mga positional na argumento sa function. ${0} ang pangalan ng function
ini-invoke, ${1} ang unang argumento, ${2} ang pangalawa at iba pa, hanggang sa argumento
N. Tandaan na, hindi tulad ng karamihan sa mga shell, ang sqsh ay nangangailangan na ang mga argumento ng function ay tinutukoy
gamit ang espesyal na curly brace syntax (${1}, sa halip na $1). Ang dahilan nito ay
na ang $1 ay isang wastong halaga ng PERA at ang paggamit ng mga kulot na braces ay nakakaalis sa kalabuan na ito.
$? Pagkatapos ng invocation ng isang function, maglalaman ito ng return value nito (tingnan sa ibaba).
Halaga ng pagbabalik
Ang isang halaga ay maaaring ibalik mula sa isang function sa pamamagitan ng \balik utos.
Tulad nito:
\ibalik ang N
Saan N ay isang positibong halaga. Ang return value na ito ay available sa tumatawag ng function
sa pamamagitan ng $? variable. Bilang convention, ang isang return value na 0 ay ginagamit upang ipahiwatig ang isang tagumpay.
If \balik ay hindi tahasang tinatawag, ang default na halaga ng pagbabalik ay ang kasalukuyang halaga ng
$? variable (na nakatakda sa 0 sa pagpasok ng function). Kaya, kung mayroong anumang mga pahayag ng SQL
ay invoked sa loob ng function, ang default na return value ng $? magiging huling pagkakamali
ibinalik ang code sa panahon ng pagproseso ng SQL statement.
Kerberos Suporta
Simula sa bersyon 2.1.6, sqsh nagbibigay ng parehong mga opsyon sa command line bilang isql hawakan
Kerberos network authentication.
Sa bersyon 2.1.5 pang-eksperimentong suporta sa Kerberos ay idinagdag gamit ang -K at -R na mga opsyon. -K
ay switch lang para i-on ang Kerberos. Sa sqsh 2.1.6 isang mas advanced na pagpapatupad ng
ipinakilala ang pagpapatunay ng network, bagama't eksperimento pa rin.
Sa pamamagitan ng paggamit ng mga parameter -K, -R, -V, -Z maaari mong gamitin ang iyong tinukoy na seguridad sa network
mga setting (libtcl.cfg). Ang mga pinangalanang opsyon ay magkapareho sa mga tinukoy para sa isql.
-K keytab_file
Pangalan ng keytab_file para sa DCE.
-R server_principal
Ang pangunahing pangalan ng server kapag ang servername na tinukoy sa mga interface ay naiiba sa tunay
pangalan ng server.
-V [bcdimoqru]
Tukuyin ang mga opsyon sa seguridad na gagamitin sa mekanismo ng seguridad. Ang bawat karakter ay pinaninindigan
isang partikular na serbisyo sa seguridad.
-Z [secmech|default|wala]
Humiling ng mekanismo ng seguridad na tinukoy para sa Kerberos, DCE o PAM sa iyong libtcl.cfg file.
paggamit secmech upang tukuyin ang pangalan ng isang entry sa SECURITY o default para sa unang magagamit
entry sa libtcl.cfg. Wala dapat na tukuyin upang huwag paganahin ang pagpapatunay o pag-reset ng network
posibleng umiiral na mga halaga sa mga variable $secmech or $secure_options.
Halimbawa, ang pagkonekta sa isang server gamit ang Kerberos (na kung saan ay ang default, ibig sabihin
unang entry sa tab na libtcl.cfg [SECURITY] sa halimbawang ito):
~> sqsh -SSYB1502 -Uuser1 -RFC6A1502 -Z
\connect: Network authenticated session ay mag-e-expire sa:
16 Peb 2010 15:28:39 (11764 segundo)
SYB1502.user1.master.1> piliin ang @@servername,@@authmech,
show_sec_services();
-------------------------- ----------------------- -----------
FC6A1502 kerberos unifiedlogin delegation mutualauth
pagiging kompidensiyal ng integridad
detectreplay detectseq
Tandaan na ang tunay na pangalan ng server (@@servername) ay naiiba sa pangalan ng server sa
interfaces file, kaya kailangan nating tukuyin ang pangunahing pangalan sa pamamagitan ng -R parameter. Kailan
hindi mo tinukoy ang -V parameter kasama ng -Z, lahat ng magagamit na opsyon sa seguridad ay
paganahin. Kailan -V ay tinukoy nang walang anumang mga opsyon sa serbisyo ng seguridad, tanging opsyon u para
Ang Network Authentication ay tahasang itatakda at ang default na mekanismo ng seguridad ay magiging
ginagamit kung -Z ay hindi tinukoy.
[user1@linux-fc6a ~]$ sqsh -SFC6A1502 -Uuser1 -V
Buksan ang Mensahe ng Kliyente
Layer 7, Origin 9, Severity 5, Number 1
ct_connect(): layer ng serbisyo ng seguridad: kontrol sa panloob na seguridad
error sa layer:
Internal na error sa security service provider -1765328352
naganap.
[user1@linux-fc6a ~]$ kinit
Password para sa user1@LOCALDOMAIN:
[user1@linux-fc6a ~]$ sqsh -SFC6A1502 -Uuser1 -V
\connect: Network authenticated session ay mag-e-expire sa:
16 Peb 2010 15:28:39 (10964 segundo)
FC6A1502.user1.master.1>
Kapag nagtagumpay ang koneksyon, sqsh ay mag-iimbak ng tunay na pangalan ng mekanismo ng seguridad sa
ang variable $secmech. Halimbawa: "\echo $secmech" ay maaaring lumabas csfkrb5. Ang parameter -V
kumukuha ng listahan ng mga character mula sa mga posibleng halaga ng bcdimoqru. Ang pagpipilian u Binibigyang-daan
Network Authentication, ay ang default at palaging itatakda kapag ginagamit -V or -Z,
tinukoy o hindi.
b - chanbinding : Channel binding
c - confidentiality : Serbisyong confidentiality ng data
d - delegation : Payagan ang mga nakatalagang kredensyal
i - integridad : Serbisyo sa integridad ng data
m - mutualauth : Mutual authentication para sa koneksyon
pagtatatag
o - dataorigin : Serbisyo ng stamping ng pinagmulan ng data
q - detectseq : Out-of-sequence detection
r - detectreplay : Deteksyon ng replay ng data
u - unifiedlogin : Network Authentication
Pakitingnan ang master.dbo.syssecmechs para sa mga available na serbisyo. Wala o hindi suportado
mga serbisyong ibinibigay sa -V ay tahimik na hindi pinapansin. Kung tinukoy mo -V at / o -Z, sqsh ipinapalagay
ang network authentication ay sinubukan at walang password na kailangan.
Kung mayroon kang network authenticated na koneksyon at gusto mong \reconnect gamit ang normal na ASE
authentication gamit ang username at password, kailangan mong i-reset ang network authentication
mga variable sa pamamagitan ng pagtukoy -Znone
Halimbawa:
[user1@linux-fc6a ~]$ sqsh -SFC6A1502 -Uuser1 -V
\connect: Network authenticated session ay mag-e-expire sa:
16 Peb 2010 15:28:39 (10764 segundo)
FC6A1502.user1.master.1> \echo $secmech csfkrb5
FC6A1502.user1.master.1> \reconnect -SASE1502 -Usa -Psybase
Buksan ang Mensahe ng Kliyente
Layer 7, Origin 9, Severity 5, Number 8
ct_connect(): layer ng serbisyo ng seguridad: kontrol sa panloob na seguridad
error sa layer:
Nabigo ang mga pagsusuri sa pagkakapare-pareho na isinagawa sa kredensyal
(minor status 0).
FC6A1502.user1.master.1> \reconnect -SASE1502 -Usa -Psybase -Znone
ASE1502.sa.master.1>
Nabigo ang unang \reconnect dahil gusto pa ring subukan ng sqsh ang network authentication.
Gayunpaman, walang punong-guro ng gumagamit para sa 'sa' na umiiral at walang tiket na nakatakda at sa gayon ay ang koneksyon
nabigo. Ang ikalawa \kunekta muli nagtagumpay habang ang pagpipiliang -Znone ay nag-reset ng naaangkop na mga variable.
Kung ang tiket ng Kerberos ay na-renew sa napag-alaman o anumang iba pang tool ng kliyente, ang sqsh Sesyon
dapat magsagawa ng a \kunekta muli upang i-refresh ang mga kredensyal at upang maiwasan ang isang napaaga na sesyon
ipalaglag. Gamit ang utos \snace maaari kang humiling ng agwat ng pag-expire ng session.
Depende sa mga serbisyong panseguridad na nakatakda, ang koneksyon sa database ay maaaring sarado
nang walang babala sa sandaling mag-expire ang tiket.
Tingnan ang kabanata 16 "External Authentication" mula sa Sybase System Administration Guide
volume 1 para sa higit pang impormasyon sa Kerberos network authenticationi, ea
UTOS
Read-Eval-Print
Ang read-eval-print loop ay ang puso ng sqsh system at responsable para sa pag-prompt
isang user para sa input at pagtukoy kung ano ang dapat gawin dito. Kadalasan ang loop na ito ay para sa
panloob na paggamit lamang, gayunpaman, ang mga ito ay bukas sa gumagamit dahil may ilang malikhain
mga bagay na maaaring gawin sa kanila.
\loop [-i] [-n] [-e sql] [file]
Ang \loop Ang command ay nagbabasa ng input alinman mula sa isang file, isang ibinigay na SQL statement, o mula sa isang
user (tingnan ang mga opsyon sa ibaba), pagtukoy kung ang kasalukuyang linya ay bahagi ng a
TSQL statement o isang sqsh command, at gumaganap ng naaangkop na aksyon. Kapag tumakbo papasok
isang interactive na mode \loop ay responsable din sa pagpapakita ng kasalukuyang prompt (tingnan
$prompt sa ibaba).
\loop makukumpleto kapag ang lahat ng input ay naubos (end-of-file ay nakatagpo) o kapag
isang utos, tulad ng \lumabas hinihiling na \loop lumabas.
-i Karaniwan, kung file ay ibinibigay at hindi umiiral, \loop babalik na may error
kundisyon, kadalasang nagiging sanhi ng paglabas ng sqsh. Sa pamamagitan ng pagbibigay ng -i bandila, magiging kontrol
bumalik sa calling loop na parang naabot na ang end-of-file (iyon ay, na may no
kondisyon ng error).
-n Bilang default, \loop ay awtomatikong susubukang kumonekta sa database kung a
ang koneksyon ay hindi pa naitatag sa pamamagitan ng \kunekta utos Ang -n bandila
hindi pinapagana ang pagpapahintulot sa gawi na ito \loop upang iproseso ang mga utos na hindi nangangailangan
suporta sa database.
-e sql
Sanhi \loop upang iproseso ang mga nilalaman ng SQL na parang nai-type ito ng gumagamit sa
prompt at isang implicit na tawag sa \pumunta ay awtomatikong idinagdag sa pahayag. Kung
maraming pagkakataon ng -e ay ibinibigay, lahat sila ay ipinadala bilang isang batch sa
SQL Server para sa pagproseso. Maaaring hindi gamitin ang opsyong ito kasama ng a file
pangalan din.
file
Tinutukoy ang pangalan ng a file na gagamitin bilang input sa halip na basahin ang input mula sa
ang gumagamit o mula sa -e bandila.
Database daan
Dahil sa laki at pagiging kumplikado ng sqsh (tingnan lang ang haba ng man page na ito), ito ay
kamangha-mangha kung gaano kakaunti ang mga utos sa pagmamanipula ng database na mayroon talaga. Ang mga sumusunod ay
mga command na nakakaapekto o gumagamit ng kasalukuyang koneksyon sa database:
\connect [-c] [-D db] [-S srv] [-U user] [-P pass] [-I ifile] [-K keytab] [-R
server_principal] [-n] [-N appname] [-Q query_timeout] [-T login_timeout] [-V [bcdimoqru]]
[-Z [secmech|default|wala]]
Ang utos na ito ay pangunahing ginagamit para sa panloob na paggamit upang magtatag ng isang koneksyon sa a
database. Kung ang isang koneksyon ay naitatag na ito ay walang epekto, gayunpaman kung a
koneksyon ay hindi naitatag at $password ay hindi naibigay, pagkatapos ay ang
hinihiling ang password at isang koneksyon ay naitatag. \kunekta tumatanggap ng mga sumusunod
mga parameter:
-c Bilang default, ang \kunekta utos ay gumagamit ng mga nilalaman ng $database upang matukoy ang
konteksto ng database na dapat gamitin sa pagtatatag ng koneksyon (ito ay
ginamit ni \kunekta muli upang mapanatili ang kasalukuyang konteksto ng database sa muling pagkakakonekta).
Ang -c pinipigilan ng flag ang gawi na ito at ang default na konteksto ng database ng pag-login ay
ginamit na naman.
-D db
Sanhi \kunekta upang subukang awtomatikong ilipat ang konteksto ng database sa db
pagkatapos itatag ang koneksyon.
Ang paggamit ng flag na ito ay kapareho ng pagtatakda ng $database variable bago ang
pagtatatag ng koneksyon.
-S srv
Ang pangalan ng Sybase server para kumonekta, ito ang default sa $DSQUERY kung hindi
ibinibigay.
-U user
Ang Sybase gumagamit upang kumonekta sa database bilang, ito ay default sa $ username nagbabago
kung hindi ibinibigay.
-P pass
Ang password para gumagamit kinakailangan upang kumonekta sa server. Nagde-default ito sa $password if
hindi binigay.
-I file
Ang buong landas ng isang kahaliling Sybase interface file na gagamitin.
-K keytab_file
Ginagamit para sa pagpapatunay ng gumagamit ng DCE.
-R principal_name
Gamitin para sa pagpapatunay ng gumagamit ng Kerberos upang tukuyin ang pangalan ng punong-guro ng server
kapag ang pangalan ay naiiba sa $DSQUERY halaga.
Tingnan din ang talakayan sa suporta ng Kerberos.
-n Tinutukoy na ang koneksyon ay dapat gumamit ng ANSI compliant chained mode.
-N appname
Tukuyin ang pangalan ng application na gagamitin ng server para sa program_name sa
talahanayan ng sysprocesses.
-Q query_timeout
Magtakda ng panahon ng pag-timeout ng query sa mga segundo.
-T login_timeout
Tinutukoy ang maximum na oras ng paghihintay para sa pag-setup ng session.
-V [bcdimoqru]
Mga serbisyo sa seguridad na ginagamit para sa suporta ng Kerberos at iba pang mekanismo ng seguridad.
-Z [secmech|default|wala]
Tinutukoy ang mekanismo ng seguridad na gagamitin para sa pagpapatunay ng user. Halimbawa
csfkrb5 para sa suporta ng Kerberos.
\reconnect [-c] [-D db] [-S srv] [-U user] [-P pass] [-I ifile] [-K keytab] [-R
server_principal] [-n] [-N appname] [-Q query_timeout] [-T login_timeout] [-V [bcdimoqru]]
[-Z [secmech|default|noe]]
Ang \kunekta muli Maaaring gamitin ang command upang pilitin ang muling pagkonekta sa database gamit ang bago
username, pangalan ng server, o password (kung ninanais). Kung nabigo ang utos na ito, ang kasalukuyang
nananatili ang koneksyon (kung mayroon man), gayunpaman kung magtagumpay ito, ang kasalukuyang
ang koneksyon ay sarado at ang bagong koneksyon ay naging ang tanging aktibo.
Lahat ng mga argumento na tinatanggap ng \kunekta ay tinatanggap din ng \kunekta muli (Sa katunayan
\kunekta muli Gumagamit \kunekta upang maitatag ang bagong koneksyon).
\snace
Ipapakita ang agwat ng pag-expire ng session para sa isang session na napatotohanan ng network, gamit
Mga tiket sa Kerberos, halimbawa.
\go [mga opsyon] [xacts]
Ipinapadala ang mga nilalaman ng Trabaho Nagpapahina ng lakas sa database, na nagtatatag ng bagong koneksyon
sa database kung wala pang isa (sa pamamagitan ng pagtawag sa \kunekta sa itaas). Ito sa kanila
ipinapakita ang mga resulta ng query pabalik sa stdout at nagbabalik, na nagiging sanhi ng Trabaho Nagpapahina ng lakas
upang linisin at ilipat sa dulo ng kasaysayan Nagpapahina ng lakas.
Kung ang Trabaho Nagpapahina ng lakas ay walang laman at ang $repeat_batch nakatakda ang variable sa "On", \pumunta habilin
subukang muling patakbuhin ang huling utos na naisakatuparan (ito ay gagana lamang sa interactive na mode
kung pinagana ang suporta sa kasaysayan).
\pumunta tinatanggap ang mga sumusunod na argumento:
-d display
Kung ang suporta ng X11 ay pinagsama-sama sa sqsh, at X display mode ang ginagamit (tingnan ang -x,
sa ibaba), pagkatapos magpakita ay gagamitin bilang X display area para sa set ng resulta. Sa pamamagitan ng
default ang variable ng kapaligiran $DISPLAY ay ipinapalagay.
-f Pinapatay ang pagpapakita ng mensahe ng footer na "(%d row ang apektado)". Mga mensahe sa footer
maaari ring i-off sa pamamagitan ng $footers variable
-h Ino-off ang lahat ng header ng column. Ang mga ito ay maaari ding i-off sa pamamagitan ng $headers
variable
-m style
Pansamantalang binabago ang istilo ng pagpapakita sa estilo sa tagal ng utos.
Ang mga kasalukuyang sinusuportahang istilo ay horiz (O paghamak or pahalang), vert (O patayo),
bcp, csv, html, meta, medyo at wala. Maaaring permanenteng itakda ang istilo ng pagpapakita
sa pamamagitan ng $estilo variable o ang -m bandila ng command line.
-n Pinapatay ang variable expansion sa Trabaho Nagpapahina ng lakas bago ipadala ito sa server,
ito ay maaari ding i-off sa pamamagitan ng $palawakin variable
-p Ino-on ang output ng mga istatistika ng pagganap kapag ang set ng resulta ay naging
matagumpay na naibalik mula sa server. Maaari rin itong i-on sa pamamagitan ng -p
argumento ng command line sa sqsh, o ang $istatistika variable
-s sec
Kung ang halaga ng xacts ay mas malaki sa 1, nagiging sanhi ito ng sqsh sa pagtulog tuyo segundo
bago isagawa ang susunod na transaksyon. Tandaan na ang oras na ginugol sa pagtulog ay
hindi kasama sa istatistikal na impormasyon na ipinapakita kasama ng -p bandila.
-t [filter]
Sinasala ang command batch sa pamamagitan ng isang panlabas na programa, filter, at bago maging
ipinadala sa SQL Server. Kung filter ay hindi ibinibigay, kung gayon $filter_prog Ginagamit
(default ay 'm4 -'). Ang halagang ito ay maaari ding itakda sa pamamagitan ng $filter at $filter_prog
mga variable.
-w lapad
Ino-override ang halaga ng $lapad para sa buhay ng query (tingnan $lapad sa ibaba).
-x [xgeom]
Ino-on ang X11 display filter (kung ang suporta ng X11 ay pinagsama-sama sa sqsh), na
nagiging dahilan upang maipadala ang set ng resulta sa isang hiwalay na window. Kung xgeom ay ibinibigay, kung gayon
ang halagang ito ay gagamitin bilang $xgeom para sa buhay ng query (tingnan $xgeom sa ibaba).
-T xwin_title
Tukuyin ang pangalan ng pamagat ng window ng resulta ng X na gagawin. Ito ay pansamantalang
i-override ang halaga ng $xwin_title. Kapaki-pakinabang lamang na tukuyin ang -T kasabay ng
-x.
xacts
Tinutukoy kung ilang beses ang mga nilalaman ng Trabaho Nagpapahina ng lakas dapat isagawa.
Tandaan na, katulad ng isql, ang isang set ng resulta ay ipapakita lamang sa panahon ng final
pagpapatupad ng batch. Gayundin, ang mga nilalaman ng Trabaho Nagpapahina ng lakas ay pinalawak lamang
isang beses, bago ang unang pagpapatupad, kaya ang mga nilalaman ng buffer ay hindi magbabago
sa pagitan ng mga kasunod na pagbitay.
\bcp [bcp_options] na talahanayan
Ang \bcp Ang mga utos ay gumaganap bilang isang uri ng pinahusay \pumunta utos na nagre-redirect sa resulta
set (s) ng batch sa isa pang server sa pamamagitan ng bcp protocol. Habang ito ay posible na
\bcp ang resulta ay ibinalik sa kasalukuyang server (ang $DSQUERY variable), ito ay
mas madaling nakakamit sa pamamagitan ng isang SELECT INTO.
Ang mga nitty-gritty na detalye ng \bcp pumunta tulad nito: Una ang kasalukuyang SQL batch ay pinalawak
(maliban kung ang $palawakin variable ay nakatakda sa 0) at ipinadala sa database para sa
pagpoproseso. Kung magiging maayos ang lahat, magkakaroon ng bagong koneksyon sa destinasyon
database (tulad ng tinukoy sa pamamagitan ng $DSQUERY o ang -S flag) upang ilipat ang set ng resulta gamit ang
bcp. Pagkatapos, ang output ng source database connection ay nakatali sa bagong bcp
ang koneksyon at paglilipat ng data ay isinasagawa. \bcp kayang humawak ng maramihang set ng resulta
nang walang anumang problema (kabilang ang mga set ng resulta na ibinalik mula sa mga nakaimbak na pamamaraan, atbp.)
sa kondisyon na ang lahat ng mga set ng resulta ay wasto para sa talahanayan ng patutunguhan.
Ang katumbas ng isang "bcp out" ay maaaring isagawa gamit ang bcp setting ng istilo ng pagpapakita at
pag-redirect ng file (tingnan ang $estilo variable).
-Isang pakete
Tinutukoy ang laki ng TDS packet na ginamit upang makipag-ugnayan sa patutunguhang server. Kung
hindi ibinigay ito ay nagde-default sa halaga na $packet_size variable, o (kung iyon ay
hindi nakatakda), ang default na laki ng packet ng server (karaniwang 512 bytes).
-b batch_size
Ang bilang ng mga talaan na inilipat sa iisang transaksyon sa pagitan ng mga server. Tandaan
na ang pag-abot sa dulo ng isang resulta ay nagiging sanhi ng paglipat ng batch, anuman
ng halaga ng batch_size. Ang default ay ang buong set ng resulta.
-I file
Ang buong landas ng isang kahaliling Sybase interface file na gagamitin.
-J charset
Tinutukoy ang default charset ginamit upang makipag-usap sa SQL Server. Ito
default sa kasalukuyang set ng character (ang halaga ng $charset variable).
-m maxer
Ang maximum na bilang ng mga batch na maaaring mabigo bago \bcp sumusuko ang multo
(Ang default ay 10). Tandaan na ito ay tumutukoy lamang sa mga pagkabigo sa loob ng isang partikular na batch.
Kapag nagsasagawa ng bcp ng maramihang mga set ng resulta sa isang server, kung nakatakda ang isang naibigay na resulta
ay, sabihin, masyadong maraming mga column o masamang uri ng data, kung gayon ang buong proseso ng bcp ay
aborted anuman ang halaga ng maxer.
-N Isinasaad na ang halaga para sa isang column ng pagkakakilanlan sa destination table ay ginagawa
ibinibigay sa loob ng set ng resulta.
-P password
Ang password para gumagamit kinakailangan upang kumonekta sa server. Nagde-default ito sa $password if
hindi binigay.
-S server
Ang pangalan ng Sybase server para kumonekta, ito ang default sa $DSQUERY kung hindi
ibinibigay.
-U user
Ang Sybase gumagamit upang kumonekta sa database bilang, ito ay default sa $ username nagbabago
kung hindi ibinibigay.
-X Nagiging sanhi ng negosasyon ng password sa patutunguhang server na isasagawa gamit
pag-encrypt sa panig ng kliyente.
-z wika
Tinutukoy ang setting ng wika na gagamitin.
mesa
Gaya ng regular bcp, mesa maaaring isang ganap o bahagyang tinukoy na pangalan ng talahanayan
sa patutunguhang server. Tandaan na dahil ang isang bagong koneksyon sa database ay
itinatag sa panahon ng mga proseso ng bcp na ang konteksto ng database ng koneksyon
maaaring hindi pareho sa kasalukuyang konteksto, kaya kadalasan ito ay pinakaligtas hanggang sa ganap
tukuyin ang pangalan ng talahanayan sa form na database.owner.table.
\rpc [rpc_opt] rpc_name [[parm_opt] [@var=]value ...]
Ang \rpc Ang command ay ginagamit upang direktang mag-invoke ng naka-imbak na procedure call sa konektado
server. Ang utos na ito ay partikular na kapaki-pakinabang para sa pakikipag-usap sa isang Open Server na
ay hindi direktang sumusuporta sa mga tawag sa wika.
\rpc hinihikayat ang malayong pamamaraan rpc_name na may isa o higit pang mga parameter na maaaring
pinangalanan (gamit @var) o anonymous (sa pamamagitan ng hindi pagbibigay ng pangalan). Sa kasamaang palad, dahil sa
katotohanan na ang pagpapatupad ng Sybase ng RPC's, ay hindi direktang sumusuporta sa pinaka-implicit
mga conversion ng uri ng data (pangunahin sa pagitan ng VARCHAR (ang string na ibinibigay mo sa command
linya) at ang karamihan sa iba pang mga uri ng data (na inaasahan ng malayong pamamaraan), ang
syntax para sa \rpc ang utos ay medyo kumplikado. Gayunpaman, sa madaling salita narito kung paano ang mga bagay
trabaho:
Bilang \rpc ang command line ay na-parse, sqsh sinusubukang hulaan ang uri ng data ng
parametro halaga batay sa format (halimbawa kung naglalaman lamang ito ng mga digit, ito ay
ipinapalagay na isang integer), sqsh pagkatapos ay nagsasagawa ng isang tahasang conversion ng uri ng data bago
sa pagtawag sa remote procedure call. Kung sqsh mali ang hula, maraming flag ang
ibinigay upang pilitin itong gawin ang tamang conversion ng uri ng data (tingnan ang parm_opt).
display Options
Ang mga sumusunod na opsyon ay maaaring ibigay saanman sa command line at ginagamit upang makaapekto
ang paraan kung saan ang (mga) set ng resulta na bumabalik mula sa remote procedure call
ipinakita:
-d display
Kung ang suporta sa X ay pinagsama-sama sa sqsh, ang halaga ng magpakita ay ginagamit bilang X windows
DISPLAY variable. Tandaan, ito ay karaniwang ibinibigay kasama ng -x bandila, sa ibaba.
-f Pinapatay ang pagpapakita ng mensahe ng footer na "(%d row ang apektado)". Maaaring ang mga mensahe ng footer
i-off din sa pamamagitan ng $footers variable
-h Ino-off ang lahat ng header ng column. Ang mga ito ay maaari ding i-off sa pamamagitan ng $headers variable
-m style
Pansamantalang binabago ang istilo ng pagpapakita sa estilo sa tagal ng utos.
Ang mga kasalukuyang sinusuportahang istilo ay horiz (O paghamak or pahalang), vert (O patayo), bcp,
csv, html, meta, medyo at wala. Ang istilo ng pagpapakita ay maaaring permanenteng itakda sa pamamagitan ng
$estilo variable o ang -m bandila ng command line.
-r Kahilingan na muling i-compile ang pamamaraan bago ang pagpapatupad.
-w lapad
Pansamantalang itinatakda ang lapad ng output sa lapad. Maaaring permanenteng itakda ang lapad ng output
sa pamamagitan ng $lapad variable
-x [xgeom]
Nagpapadala ng output sa isang hiwalay na X window. Kung xgeom ay ibinibigay, pagkatapos ay ginagamit ito ng X window
geometry (tingnan $xgeom para sa mga detalye).
-T xwin_title
Tukuyin ang pangalan ng pamagat ng window ng resulta ng X na gagawin. Ito ay pansamantalang
i-override ang halaga ng $xwin_title. Kapaki-pakinabang lamang na tukuyin ang -T kasabay ng -x.
Parametro Options
Ang mga sumusunod na opsyon ay maaaring ibigay kaagad bago tukuyin ang isang parameter halaga
at ginagamit upang makaapekto sa paraan kung saan sqsh binibigyang-kahulugan ang mga nilalaman ng halaga bago
pagtawag sa malayong pamamaraan. Bagaman sqsh papayagan ang anumang kumbinasyon ng mga parameter na ito
pagsama-samahin, makatuwiran lang talaga na pagsamahin ang -x bandila kasama ng anumang iba pang bandila.
-b Nagsasaad na ang halaga na tinukoy ay dapat i-convert sa VARbinARY bago
pagtatawag rpc_name. Ang watawat na ito ay implicit (ibig sabihin, hindi mo ito kailangang ibigay) kung halaga pagsisimula
na may "0x" at naglalaman lamang ng mga digit.
-c Nagsasaad na ang halaga na tinukoy ay dapat ma-convert sa VARCHAR bago ang
pagtatawag rpc_name. Ang watawat na ito ay implicit kung halaga hindi tumutugma sa alinman sa implicit
mga conversion para sa iba pang mga uri ng data.
-d Nagsasaad na ang halaga na tinukoy ay dapat i-convert sa double (float)
bago tumawag rpc_name. Ang watawat na ito ay implicit kung halaga ay nasa wastong floating point
notasyon (hal. 0.1, .1, 1.4e10, o 4e10).
-i Nagsasaad na ang halaga na tinukoy ay dapat na ma-convert sa integer (int) bago
pagtatawag rpc_name. Ang watawat na ito ay implicit kung halaga naglalaman lamang ng mga digit (at,
opsyonal, isang nangungunang tanda).
-y Nagsasaad na ang halaga na tinukoy ay dapat i-convert sa pera bago tumawag
rpc_name. Ang watawat na ito ay implicit kung halaga nagsisimula sa isang "$", at naglalaman lamang ng mga digit
at, opsyonal, isang decimal.
-n Nagsasaad na ang halaga na tinukoy ay dapat i-convert sa numeric bago
pagtatawag rpc_name. Ang watawat na ito ay hindi kailanman implicit, bilang halaga ay palaging tumutugma sa alinman sa int
(-i) o lumutang (-d); gayunpaman, ang parehong mga uri na ito ay tahasang mako-convert sa a
numeric kung kinakailangan sa pamamagitan ng procedure call.
-u Nagpapahiwatig na halaga dapat balewalain at ituring bilang isang NULL na halaga, Ang bandilang ito ay
implicit kung halaga ay "".
Buffers
Ang mga sumusunod na command ay maaaring gamitin upang lumikha, sirain, o manipulahin ang iba't ibang buffer
inilarawan sa MGA BUFFER seksyon, sa itaas.
\malinaw
Ang \malinaw Itatapon ng command ang kasalukuyang buffer at salungat sa
\reset command, ay hindi i-save ang kasalukuyang buffer sa kasaysayan. Kapag ang sqsh ay pinagsama-sama
na may suporta sa readline, iki-clear din ng command na ito ang screen. (gaya ng ginagawa ni ^l.) Ang
bansag limasin ay awtomatikong naitatag sa pagsisimula.
\history [-i] [-x count]
Ipinapakita ang huli $histize mga batch na naipadala na sa database sa pamamagitan ng
\pumunta utos o na-clear mula sa Trabaho Nagpapahina ng lakas sa pamamagitan ng \reset utos. May opsyon -i
ipinapakita din ang dami ng beses na ginamit ang buffer at ang huling beses na ginamit ang buffer
ginamit. Maaaring may espesyal na interes ang impormasyong ito kapag ginagamit ang $histunique tampok.
Ang -x Ang opsyon ay maaaring tukuyin ang bilang ng pinakahuling mga entry sa kasaysayan na ipapakita sa halip
ng kabuuang listahan ng mga entry sa kasaysayan.
\hist-load [filename]
Mag-load ng history file at magdagdag ng mga item sa kasalukuyang listahan ng history. Gamitin $kasaysayan kung hindi
Ang filename ay tinukoy bilang isang parameter.
\hist-save [filename]
Ise-save ang kasalukuyang mga buffer ng kasaysayan sa $kasaysayan file o sa filename
tinukoy bilang isang parameter.
\redraw
Ibinabalik ang isang kahilingan pabalik sa kasalukuyang read-eval-print loop para maipakita nitong muli ang
kasalukuyan Trabaho Nagpapahina ng lakas. Kung tumakbo mula sa non-interactive na mode, walang epekto ang command na ito.
\reset
Ang \reset utos ay direktang tumutugma sa isql 'reset' command, nagbabalik ng a
humiling sa read-eval-print loop upang i-clear ang mga nilalaman ng kasalukuyang Trabaho Nagpapahina ng lakas
at, kung tumatakbo ka sa interactive na mode, maglagay ng kopya ng buffer sa
kasaysayan Nagpapahina ng lakas. Ang alias i-reset ang ay awtomatikong naitatag sa pagsisimula ng sqsh para
pabalik na pagkakatugma sa isql.
\buf-append dst-buffer [src-buffer]
Idinaragdag ang mga nilalaman ng src-buffer (default sa !.) sa mga nilalaman ng dst-buffer, Kung
ito ay umiiral na. Kung dst-buffer ay hindi umiiral ito ay nilikha.
\buf-copy dst-buffer [src-buffer]
Kinokopya ang mga nilalaman ng src-buffer (nag-default sa !., ang Trabaho Nagpapahina ng lakas, kung hindi ibinigay),
sa dst-buffer. Sumangguni sa MGA BUFFER para sa impormasyon sa mga kumbensyon sa pagpapangalan ng buffer.
\buf-del [buffer|range]
Mag-alis ng history buffer sa listahan ng history. Maaari ka ring tumukoy ng listahan ng hanay
na binubuo ng una at huling buffer number na pinaghihiwalay ng '-'. Halimbawa:
Tatanggalin ng "\buf-del 1-10" ang unang 10 entry sa kasaysayan. Isa pang halimbawa, "\buf-del
21" ay tatanggalin lamang ang buffer number 21. Tandaan na ang history buffers ay
muling binilang ng magkasunod.
\buf-edit [-r read-buf] [-w write-buf]
Ang \buf-edit Ang command ay ginagamit upang i-edit ang mga nilalaman ng isang buffer at ilagay ang mga pagbabago
sa isa pang buffer. Ang utos na ito ay maaari lamang patakbuhin habang nasa interactive na mode. Kung basahin-
buf ay hindi ibinibigay kung gayon ang buffer na ie-edit ay magiging default sa !., kung ito ay walang laman,
kung hindi, ito ay default sa !!. Kung write-buf ay hindi ibinibigay kung gayon ang na-edit na buffer ay
isinulat pabalik sa !..
Sa pamamagitan ng default, \buf-edit gumagamit ng environment variable $ EDITOR una, sinundan ng $VISUAL
upang matukoy kung aling editor ang gagamitin, na nagde-default sa 'vi' kung hindi nakatakda ang variable.
Mahalagang tandaan na sa paglabas 1.2, \buf-edit ay hindi na magagamit ang
pangalan ng isang alias dito bilang pangalan ng editor na ilulunsad. Pangunahing ito ay dahil sa
ang pagbabago sa pag-uugali ng alias (tingnan ang seksyon Pagbabawas, sa ibaba, para sa mga detalye).
Ang mga utos i-edit vi at emacs ay awtomatikong naitatag sa pagsisimula ng sqsh para
pabalik na pagkakatugma sa isql.
\buf-get buffer
Ang \buf-get Ang command ay ibinibigay bilang isang shorthand na paraan ng pagtakbo \buf-copy Ito ay ang
katumbas ng pagtakbo:
\buf_append !. buffer
\buf-load [-a] filename [dst-buffer]
Kinokopya ang mga nilalaman ng filename in dst-buffer (naka-default sa !.). Kung ang -a bandila ay
ibinibigay, ang mga nilalaman ng filename ay idinagdag sa dst-buffer. Tandaan na ito ay labag sa batas
upang subukang sumulat sa mga nilalaman ng buffer ng kasaysayan.
\buf-save [-a] filename [src-buffer]
Sine-save ang mga nilalaman ng src-buffer (default sa !.) sa filename. Kung ang -a bandila ay
ibinibigay ang mga nilalaman ay idinagdag sa filename sa halip na i-overwrite ang kasalukuyang
nilalaman.
\buf-show [buffer]
Ipinapakita ang mga nilalaman ng pinangalanan nagpapahina ng lakas. Kung nagpapahina ng lakas ay hindi ibinibigay, pagkatapos ay ang
ang mga nilalaman ng lahat ng pinangalanang buffer ay ipinapakita. Ang utos na ito ay bahagyang naiiba sa
ang mga utos sa itaas na legal lamang ang pagbibigay ng a Pinangalanan Nagpapahina ng lakas nagpapahina ng lakas, kasaysayan
Buffers, at ang Trabaho Nagpapahina ng lakas ay walang mga resulta.
Variable
Ang sumusunod na (mga) command ay ginagamit upang manipulahin ang mga nilalaman ng mga panloob na variable at
variable ng kapaligiran.
\set [-x] [name=halaga ...]
Kung walang ibinibigay na argumento sa \itakda kung gayon ang kasalukuyang mga halaga ng lahat ng mga variable ay
ipinapakita. Kung hindi ang variable pangalan ay nakatakda sa halaga. Tandaan na ang ilang panloob
mga variable (tingnan ESPESYAL MGA VARIABLE) ay maaari lamang itakda nang may tiyak halagas, kaya ang pagkilos na ito
maaaring mabigo, na iniiwan ang mga nakaraang nilalaman sa pangalan buo Ang -x watawat sanhi ng
variable na ie-export sa kapaligiran ng anumang mga programang inilunsad sqsh.
Trabaho Kontrolin
Ang mga sumusunod na command ay ginagamit upang tingnan ang katayuan ng, o manipulahin ang mga trabaho sa background na iyon
ay kasalukuyang tumatakbo, ang mga ito ay halos tumutugma sa mga utos na ibinibigay ng mga shell tulad ng
csh(1).
\mga trabaho [-i]
Ipinapakita ang status ng anumang kasalukuyang tumatakbong mga trabaho, kabilang ang mga trabahong ito o hindi
may nakabinbing output, gaano katagal sila tumatakbo, at kailan sila nagsimula. Ang
-i ang opsyon ay magpapakita ng ilang karagdagang impormasyon sa trabaho. Tandaan na ang kabuuang oras ng pagtakbo ng
ang trabaho ay tinutukoy mula sa sandaling ang trabaho ay minarkahan na kumpleto ng read-eval-
print loop kapag polled, hindi kapag ito ay aktwal na natapos at na-flag bilang winakasan ng
tagahawak ng signal.
\wait [job_id]
Magpa-pause hanggang sa trabahong itinalaga ni job_id nakumpleto. Kung job_id ay isang negatibong numero
pagkatapos \maghintay hihinto hanggang anumang natatapos ang mga nakabinbing trabaho. Kung walang mga trabahong nakabinbin,
or job_id ay hindi kabilang sa isang tumatakbong trabaho, pagkatapos ay isang mensahe ng error ay ipinapakita. Tandaan
na kung maraming trabaho ang tumatakbo, at a \maghintay ay ibinibigay para sa isa sa kanila, sa isa pa
ang mga trabaho ay maaaring hindi awtomatikong masenyasan kapag natapos sa loob ng panahon ng paghihintay ng
tiyak na trabaho. Maaaring kailanganin ng ibang mga trabaho na mabigyan ng senyales ng a \maghintay -1 pati na rin
napansin kumpleto ng sqsh.
\kill job_id
Tinatapos ang trabahong tinukoy ni job_id, itinatapon ang anumang output na maaaring ipagpaliban
para sa trabaho. Kung job_id ay hindi tumatakbong trabaho pagkatapos ay ipinapakita ang isang mensahe ng error.
\ipakita ang job_id
Ipinapakita ang ipinagpaliban na output ng natapos na trabaho sa background job_id at inaalis ang trabaho
mula sa listahan ng mga nakabinbing trabaho (inaalis ang defer file sa proseso). Kung job_id is
tumatakbo pa rin, o hindi wastong kumpletong trabaho, pagkatapos ay may ipapakitang mensahe ng error. Ikaw
maaaring kailanganin na mag-isyu ng a \maghintay job_id una, upang maabisuhan ng aktwal na pagkumpleto ng trabaho.
Pagbabawas
Sa paglabas 1.2, sqsh buong suporta csh-style command aliasing. Gamit ang tampok na ito, sqsh
sinusuri ang unang salita ng bawat linya, bago sa anumang anyo of paglawak, para makita kung tumutugma ito
ang pangalan ng isang umiiral na alias. Kung nangyari ito, ang utos ay muling ipoproseso gamit ang alias
kahulugan na pinapalitan ang pangalan nito. Unlike csh, gayunpaman, isang paraan lamang ng pagpapalit ng kasaysayan
ay magagamit sa loob ng isang alias: ang '!*' entry, na nagpapahiwatig ng kasalukuyang linya na pinalawak.
Kung walang hinihiling na pagpapalawak ng kasaysayan, ang mga argumento sa command line ay mananatiling hindi nagbabago.
katulad csh, ang mga alias ay hindi paulit-ulit na pinalawak, kaya perpektong legal na lumikha ng isang
alias na lumalawak sa isang command na may parehong pangalan.
Ang sumusunod na utos ay ginagamit upang lumikha ng isang alias:
\alias [alias_name=alias_body]
Kung walang mga argumentong ibinibigay sa \alias command, pagkatapos ay ang listahan ng mga alias sa kasalukuyan
sa bisa ay ipinapakita. Kung hindi, gagawa ito ng bagong alias na may pangalan ng alias_name
at isang katawan ng alias_body; kung alias_name mayroon na, ang katawan ng umiiral na
alias_name ay pinalitan ng bagong kahulugan.
Pagkatapos tukuyin ang bagong alias, kahit kailan sqsh nakatagpo ng isang linya na nagsisimula sa
alias_name, ang natitira sa linya ay papalitan ng alias_body bago pa man
isinasagawa ang pagproseso.
Kung ang string '!*' ay umiiral kahit saan sa loob alias_body, ang mga argumentong ibinigay sa
ang alyas ay ipinasok sa puntong iyon, kung hindi, ang argumento ay idaragdag sa dulo ng
ang kahulugan ng alias. Halimbawa:
1> \alias hi='\echo !* hello'
1> hi Scott
kumusta naman si Scott
kung saan parang hindi kasama sa alias ang !* keyword, pagkatapos ay kumikilos ito nang ganito:
1> \alias hi='\echo ay nag-hello'
1> hi Scott
sabi ni Scott
Ito ay ganap na legal na isama ang a !* higit sa isang beses sa loob ng ibinigay alias_body.
Sa kasalukuyan ay walang paraan upang makatakas sa string !*, kung talagang kailangan mo ang feature na ito
padalhan ako ng mail.
\unalias alias_name
Tinatanggal alias_name.
sari-sari
Ang natira sa mga utos.
\lumabas [x]
Ang \lumabas hinihiling ng command na huminto sa pagproseso ang kasalukuyang read-eval-print loop. Kailan
bumalik ang huling loop, sqsh lumabas(1)s. Maaari mong tukuyin ang isang exit code bilang parameter na
itatabi sa $exit_value at gagamitin bilang return value sa shell sa paglabas
of sqsh. (0 <= x <= 255).
\abort
Nagiging sanhi ng lahat ng nested na read-eval-print na mga loop upang i-abort ang pagproseso, na nagiging sanhi sqsh para lumabas kasama
isang exit value na 254 (tingnan ang seksyon EXIT STATUS).
\basahin ang [-a] [-n] [-h] var_name
Nagbabasa ng isang linya ng input mula sa user, inilalagay ang text ng linya sa variable
var_name. Kung ang -n ay ginagamit, pagkatapos ay ang sumusunod na bagong linya ay naiwan sa linya ng teksto,
at kung -a ay ibinibigay, pagkatapos ang teksto ng linya ay idinagdag sa umiiral na halaga ng
var_name. ang -h In-off ng flag ang echoing ng mga na-type na character pabalik sa user.
\sleep seconds
Sanhi sqsh masyadong pause para sa segundo. Ito ay kapaki-pakinabang sa loob ng mga script ng mga batch na kailangan
upang i-pause sandali sa pagitan ng mga batch (pangunahing kapaki-pakinabang ito sa akin para sa pagsubok sa background
mga trabaho).
\echo [-n] [args ...]
Parang UNIX lang miss(1), ito ay nagpi-print ng mga argumento nito sa stdout, na sinusundan ng isang bagong-
linya Kung ang -n ang bandila ay ibinigay, ang bagong linya ay tinanggal.
\garantiya
Ipinapakita ang karaniwang warranty ng GNU.
\help [utos]
Nang walang anumang argumento \tulong nagpapakita ng maikling listahan ng lahat ng magagamit na mga utos,
kung hindi, ito ay nagbibigay ng partikular na tulong para sa utos, kung bakante. Kapag humingi ng tulong
sa isang tiyak utos, \tulong hinahanap ang file $help_dir/command.hlp at ipinapakita ito
upang stdout.
\shell [shell command]
If talukap ng alimango utos ay hindi ibinibigay pagkatapos sqsh nagpapatupad $SHELL. Kung ang $SHELL may variable
hindi naitakda, kung gayon, bilang default, / Bin / SH ay pinaandar. Kung hindi, kung talukap ng alimango utos is
ibinibigay pagkatapos ito ay isinasagawa. Ang exit status ng command na naisakatuparan ay naka-imbak sa
espesyal $? read-only na environment variable.
\lock
Ila-lock ang kasalukuyang session hanggang sa ma-type ang tamang password. Bilang default \lock
sinusubukang gamitin ang UNIX password (mula sa / etc / passwd) na nauugnay sa gumagamit na tumatakbo
sqsh, gayunpaman kung ang $lock variable ay nakatakda pagkatapos ay ang mga nilalaman ng iyon ay ginagamit para sa
pagpapatunay sa halip.
Tandaan, sa mga system na gumagamit ng Shadow Passwords (kung saan kahit na ang naka-encrypt na password ay
hindi magagamit), \lock gagana lamang gamit ang $lock variable
Aliases
Ang mga sumusunod na alias ay itinatag sa pagsisimula ng sqsh, at pangunahing ibinibigay para sa
pabalik na pagkakatugma sa isql. Maaaring alisin ang mga ito anumang oras gamit ang \unalias
command (alinman sa prompt, o sa loob ng iyong .sqshrc file).
! Ang ! ibinibigay ang alias bilang a csh(1)-tulad ng mekanismo ng kasaysayan, at isang alias ng
\buf-attach. Sa release 0.7, ang alias na ito ay ibinibigay lamang para sa backwards compatibility
kasama ang mga nakaraang paglabas ng sqsh. Tingnan ESPESYAL MGA VARIABLE, $history_shorthand para sa mga detalye
sa bagong mekanismo ng shorthand (ang bagong shorthand ay mas malapit na kahawig ng sa csh).
limasin
Isang alias para sa \malinaw command, na nagiging sanhi ng mga nilalaman ng kasalukuyang buffer ng trabaho
upang linisin at itapon. Gayundin ang screen ay iki-clear kung ang readline ay pinagsama-sama
sa sqsh.
i-reset ang
Isang alias para sa \reset command, na nagiging sanhi ng mga nilalaman ng kasalukuyang buffer ng trabaho
i-clear at makopya sa kasaysayan (kung nasa interactive na mode).
lumabas [x]
huminto [x]
Isang alias para sa \lumabas [X] command, nagiging sanhi ng kasalukuyang read-eval-print loop sa
kumpleto.
i-edit
vi
emacs
Ang mga ito ay ibinigay bilang mga alias para sa \buf-edit utos. Tingnan mo COMMAND-Buffer para
impormasyon sa mga pakikipag-ugnayan sa pagitan ng \buf-edit at mga alias.
go Ibinigay bilang alyas para sa \pumunta utos (para sa malinaw na mga kadahilanan).
Tulungan
Isang alias para sa \tulong utos.
Nasa linya \pumunta
Kung ang variable $semicolon_hack ay nakatakda sa 1 (on), pagkatapos ay sinusuportahan ng sqsh ang tinatawag na in-
linya \pumunta tampok. Ito ay nagpapahintulot sa kasalukuyang command batch na wakasan at ipadala sa
database sa isang hakbang sa pamamagitan ng pagdaragdag ng ';' sa dulo ng kasalukuyang buffer ng trabaho. Ito
ay nagbibigay-daan sa
1> sp_who;
Upang kumilos sa parehong paraan na parang nag-type ka:
1> sp_who
2> \go
Gayundin, ang anumang sumusunod sa semicolon ay ipinapasa sa \pumunta utos na parang ito
tumakbo bilang isang normal na utos:
1> sp_who ; 2>/dev/null | higit pa
Hindi tulad ng karamihan sa iba pang isql mga kapalit, sqsh sinusubukang maging matalino tungkol sa mga semicolon. Kung ang
Ang semicolon ay nakapaloob sa loob ng isang set ng single o double quotes na hindi ito bibigyang-kahulugan.
Kabilang dito ang maraming quote. Halimbawa:
1> piliin ang "Ito ay maramihang linya
2> quote; ito ay matalino!" ;
Sa halimbawa sa itaas, ang pangalawang tuldok-kuwit lamang (ang nasa dulo ng linya) ang magiging
binibigyang kahulugan.
ESPESYAL MGA VARIABLE
Mayroong ilang mga opsyon na maaaring i-configure sa pamamagitan ng mga opsyon sa command line sa sqsh,
gayunpaman ang mga ito ay hindi kumpleto. Mayroong maraming mga aspeto ng sqshugali ni na maaaring
mababago lamang sa pamamagitan ng pagtatakda ng mga espesyal na variable. (Sa katunayan, ang mga pagpipilian sa command line talaga
itakda lamang ang mga variable na ito para sa iyo).
Paiba-iba data Mga uri
Sa tabi ng lahat ng sumusunod na variable ay ang uri ng data kung saan maaaring itakda ang mga ito.
Mabibigo ang anumang pagtatangkang itakda ang variable na may uri ng data na hindi nito tinatanggap.
pisi
Anumang sequence character.
boolean
Isang positibong boolean ang halaga ay maaaring kinakatawan bilang alinman sa "True", "Yes", "1", o "On"
(case insensitive) at isang negatibong boolean value ay maaaring kinakatawan bilang "False", "No",
"0", o "Off" (case insensitive). Gayunpaman, panloob ang halaga ng variable ay
palaging kinakatawan bilang alinman sa "1" o "0".
landas
Dapat ay ang landas pangalan na nababasa ng sqsh programa.
int Dapat isa o higit pang mga digit. Tandaan na pinaghihigpitan din ng ilang variable ang saklaw ng
integer
petsa-spec
Ito ay isang string ng format na ginamit upang tukuyin ang mga petsa at oras para sa petsa(1)
utos, o ang strftime(3C) at cftime(3C) karaniwang C library function. Halimbawa
Tinutukoy ng '%H:%M:%S' ang isang oras ng mga oras sa 24 na oras na format, na sinusundan ng isang colon, na sinusundan
sa pamamagitan ng minuto, na sinusundan ng isang colon, na sinusundan ng mga segundo.
float-format
Isang string ng format ps, Kung saan p ay ang kabuuang katumpakan ng isang floating point value
(ang kabuuang bilang ng mga digit na ipapakita, kabilang ang mga sumusunod sa decimal)
at s ay ang sukat ng halaga (ang kabuuang bilang ng mga digit kasunod ng decimal hanggang
ipapakita).
Variable
Ang mga sumusunod na variable ay may mga espesyal na kahulugan sa loob sqsh at ang tagpuan ng mga ito
binabago ng mga variable ang pag-uugali ng shell.
$? (int)
Ang read-only na variable na ito ay maaaring maglaman ng sumusunod na return value:
· Ang pinakahuling numero ng error na ibinalik mula sa SQL Server (@@errno) ng kalubhaan >
10 (sa itaas ng mga mensaheng nagbibigay-kaalaman).
· Ang exit value ng isang dating pinaandar na pipe command.
· Ang return value ng pinakakamakailang naisakatuparan na sqsh function.
$$? (int)
Ang variable na ito ay maaaring maglaman ng resulta ng huling naisakatuparan na \if na pahayag:
- 0 -
Ang pagsusulit ay nasuri sa Mali.
- 1 -
Ang pagsusulit ay nasuri sa True.
- 2 -
Nagkaroon ng error sa detalye ng pagsubok.
$# (int)
Naglalaman ng bilang ng mga argumento na ipinasa sa sqsh function o script.
$* (listahan ng string)
Lumalawak sa kumpletong listahan ng mga argumento na ibinigay sa function o script kung kailan
hinihingi.
${0}...${N} (int)
Ginagamit upang i-reference ang positional function arguments. Ang argumentong ${0} ay ang pangalan ng
function na tinatawag, ${1} ang unang argumento, atbp.
$$ Lumalawak sa process ID ng kasalukuyang tumatakbong sqsh session.
DISPLAY
Maaaring naglalaman ng pangalan ng DISPLAY na ginagamit ng X-server upang ilagay ang resulta ng XWindows
window kapag ginagamit \pumunta -x. Default sa $DISPLAY kapaligiran ng shell.
appname
Naglalaman ng pangalan sqsh ginagamit sa pagkakakilanlan mismo sa server. Mga Default sa sqsh-2.1.7.
Ang pangalan ng application ay maaaring makuha mula sa sysprocesses table tulad ng:
piliin ang program_name mula sa master.dbo.sysprocesses kung saan spid=@@pid;
autouse (string)
Tandaan: ang kahulugan ng variable na ito ay hindi na ginagamit.
If $autouse ay nakatakda, at ang $database variable ay hindi pa naitakda, pagkatapos ang variable na ito
sanhi \kunekta upang magsagawa ng "paggamit $autouse" kapag ang isang koneksyon ay naitatag.
Ang variable na ito ay maaari ding itakda gamit ang -D opsyon na command line.
banner (boolean)
Ino-off ang banner message na ipinapakita sa startup, ang variable na ito ay nagde-default sa 1 at maaaring
i-off din gamit ang -b argumento ng command line.
batch_failcount (int)
Ang panloob na variable na ito ay ginagamit upang subaybayan ang bilang ng mga batch na nabigo
upang maisagawa (talaga, ang dami ng beses na tinawag ang tagapangasiwa ng error).
Ang isang batch ay itinuturing na nabigo sa tuwing may error sa kalubhaan $thresh_fail is
nakatagpo. Kailan $batch_failcount umabot $thresh_exit sqsh paglabas na may exit value
ng kabuuang bilang ng mga batch na nabigo. Setting $batch_failcount sa
string "" ay magiging sanhi ng pag-reset nito sa zero, ang anumang iba pang halaga ay maaaring hindi mahuhulaan
resulta.
Tingnan EXIT STATUS para sa mga detalye.
batch_pause (boolean)
Nagiging sanhi ng isang "Naka-pause. Pindutin ang enter para magpatuloy..." na mensaheng ipapakita pagkatapos ng bawat batch
ay pinaandar. Ang variable na ito, kasabay ng $echo ay mabuti para sa pag-debug ng SQL
mga script na tinukoy kasama ang -i pagpipilian.
bcp_colsep (string)
Ginamit bilang isang separator sa pagitan ng mga column sa panahon ng BCP style output (tingnan ang $estilo
configuration variable at ang -m opsyon sa \pumunta utos). Ang default na setting ay
"|".
bcp_rowsep (string)
Ginamit bilang isang separator sa pagitan ng mga row sa panahon ng BCP style output (tingnan ang $estilo configuration
variable at ang -m opsyon sa \pumunta utos). Tandaan na, ang isang bagong linya ("\n") ay
awtomatikong idinagdag ang halagang ito at hindi dapat ibigay. Ang default na setting ay
"|".
bcp_trim (boolean)
Kinokontrol kung ang output ng istilo ng BCP ay pumuputol ng mga trailing space mula sa nakapirming haba
mga hanay. Ang default ay "True".
nakakadena (boolean)
Kung nakatakda, gagamitin ng sqsh ang "chained" transaction mode (aka "AutoCommit off"). Setting
ito ay WALANG epekto sa kasalukuyang koneksyon. Maaari itong itakda sa pamamagitan ng command line
argumento -n.
charset (string)
Kung ang variable na ito ay nakatakda bago magtatag ng isang koneksyon sa SQL Server, kung gayon
sa panahon ng koneksyon sqsh hihilingin na ang server ay mag-transform papunta at mula sa
hiniling charset. Pagkatapos magtatag ng koneksyon, awtomatikong itatakda ang variable na ito
sa kasalukuyang set ng character na ginagamit.
clear_on_fail (boolean)
Karaniwan, sa tuwing ang \pumunta pinapatakbo ang utos, sqsh nililinis ang kasalukuyang buffer ng trabaho nito
nilalaman, inilipat ang mga ito sa kasaysayan. Setting $clear_on_fail sa 0, umalis sa kasalukuyang gawain
buffer buffer kung ang isang pagkabigo ay nakatagpo habang ipinapadala ang mga nilalaman sa database.
Ang default na value ay 1, o on.
colsep (kuwerdas)
Nagdudulot ng string colsep na gagamitin upang limitahan ang mga column ng output ng SQL column, ito
default sa " ", maaari rin itong itakda sa pamamagitan ng argumento ng command line -s.
colwidth (int)
Ginagamit upang kontrolin ang maximum na lapad ng column na ipinapakita ng medyo istilo ng pagpapakita (tingnan
$estilo sa ibaba). Kung ang isang hilera ng isang column ay lumampas sa lapad na ito, ito ay ibalot sa a
medyo kaakit-akit na paraan sa $colwidth mga karakter. Tandaan, gayunpaman, na kung
may sapat na lapad ng screen para hawakan ang lahat ng column $colwidth maaaring lumampas hanggang sa
naabot ang lapad ng screen.
database (string)
Kung ang variable na ito ay nakatakda bago magtatag ng isang koneksyon sa SQL Server, ang a
"gamitin $database" ay isinasagawa kaagad pagkatapos maitatag ang koneksyon. Kapag a
naitatag na ang koneksyon ang variable na ito ay awtomatikong itatakda sa kasalukuyang
konteksto ng database.
petsa (petsa-spec)
Maaaring itakda ang variable na ito na may format ng petsa (tingnan ang man page para sa petsa(1)), at ang
lumalawak ang variable sa kasalukuyang petsa sa ibinigay na format. Ang default na format para sa
ang variable na ito ay %d-%b-%y (hal. 02-Feb-1996).
datetime (date-spec)
Maaaring itakda ang variable na ito gamit ang format ng petsa na katulad ng $date at $ oras at nakasanayan na
kontrolin ang display format ng lahat ng SQL Server DATETIME at SMALLDATETIME column.
Tandaan na ang mga tampok na ito ay umaasa sa partikular na impormasyon ng lokal na operating system
para sa pagtukoy ng mga bagay tulad ng pangalan ng buwan at araw, sa halip na pumunta
sa pamamagitan ng impormasyon sa lokal na CT-Lib. Nangangahulugan ito na ang format ng petsa ay maaaring
posibleng hindi tumugma sa locale gaya ng hiniling gamit ang -z bandila. Halimbawa, kung sqsh
ay tumatakbo sa isang operating system na na-configure para sa US English, ngunit humihiling ng French bilang ang
wikang pinili gamit -z, Ang paggamit ng mga $datetime ay magiging sanhi ng lahat ng impormasyon ng petsa
ipapakita sa US English sa halip na French.
Ang mga ordinaryong character na tinukoy sa variable ay iniiwan sa lugar nang walang anumang conversion.
Ang mga character na ipinakilala ng isang '%' na character ay pinapalitan habang ipinapakita ang isang halaga ng column
tulad ng sumusunod:
[] Anumang nakapaloob sa pagitan ng isang pares ng braces ('[' at ']') ay aalisin kapag
nagpapakita ng mga column ng SMALLDATETIME. Ang tampok na ito ay partikular na kapaki-pakinabang para sa pag-alis
ang mga halaga ng segundo at millisecond na hindi naaangkop sa SMALLDATETIME
sabagay. Para sa mga column ng DATETIME, ang mga aktwal na brace lang ang aalisin.
%a Ang pinaikling pangalan ng weekday ayon sa kasalukuyang lokal na operating system.
%A Ang buong pangalan ng karaniwang araw ayon sa kasalukuyang lokal na operating system.
%b Ang pinaikling pangalan ng buwan ayon sa kasalukuyang lokal na operating system.
%B Ang buong buwan na pangalan ayon sa kasalukuyang lokal na operating system.
%c Ang gustong representasyon ng petsa at oras para sa kasalukuyang operating system
lokal na lugar
%d Ang araw ng buwan bilang isang decimal na numero (hanay 0 hanggang 31).
%D Ang petsa sa format ng US (mm/dd/yy).
%H Ang oras bilang isang decimal na numero gamit ang isang 24 na oras na orasan (hanay 00 hanggang 23)
%I Ang oras bilang isang decimal na numero gamit ang 12-oras na orasan (hanay 01 hanggang 12)
%j Ang araw ng taon bilang isang decimal na numero (hanay 001 hanggang 366).
%m Ang buwan bilang isang decimal na numero (hanay 10 hanggang 12).
%M Ang minuto bilang isang decimal na numero.
%p Alinman sa 'am' o 'pm' ayon sa ibinigay na halaga ng oras, o ang katumbas
mga string para sa kasalukuyang lokal na operating system.
%r Ang oras sa 12-oras na format (hh:mm:ss [AM|PM]).
%s Segundo mula noong epoc (1970-01-01 00:00:00 UTC) (hindi ito suportado sa lahat
mga system).
%S Ang pangalawa bilang isang decimal na numero.
%T Ang kasalukuyang oras sa 24 na oras na format (hh:mm:ss).
%u Ang millisecond bilang isang decimal na numero.
%U Ang numero ng linggo ng kasalukuyang taon bilang isang decimal na numero, simula sa una
Linggo bilang unang araw ng unang linggo.
%W Ang numero ng linggo ng kasalukuyang taon bilang isang decimal na numero, simula sa una
Lunes bilang unang araw ng unang linggo.
%w Ang araw ng linggo bilang isang decimal, ang Linggo ay 0.
%x Ang ginustong representasyon ng petsa para sa kasalukuyang lokal na walang oras.
%X Ang ginustong representasyon ng oras para sa kasalukuyang lokal na walang petsa.
%y Ang taon bilang isang decimal na numero na walang siglo (saklaw 00 hanggang 99).
%Y Ang taon bilang isang decimal na numero kasama ang siglo.
%Z Ang time zone (hal., EDT), o wala kung hindi time zone ay matutukoy.
%% Isang literal na '%' na character.
debug (string)
If sqsh ay pinagsama-sama sa pag-debug na pinagana (-DDEBUG), maaaring gamitin ang variable na ito
upang kontrolin ang dami ng ipinapakitang output ng pag-debug. $debug maaaring itakda sa isang tubo (|)
delimited (lohikal O) set ng mga sumusunod na salita upang i-on ang iba't ibang piraso ng
pag-debug: Bansag, AVL, BCP, DISPLAY, ENV, ERROR, Palawakin ang, FD, Trabaho, BASAHIN ANG LINYA (abbr. RL),
RPC, SCREEN, SIG, SIGCHLD (O SIGCLD) O LAHAT.
defer_bg (boolean)
Karaniwan, kapag ang isang trabaho ay pinapatakbo sa background (sa pamamagitan ng '&' sa command line), ang
ang output ng trabaho ay ipinagpaliban sa isang pansamantalang file (na matatagpuan sa $tmp_dir) hanggang sa gumagamit
hinihiling ang output na ipapakita gamit \ipakita walang trabaho. Sa ganitong paraan ang mga resulta ng trabaho
ay hindi makagambala sa kung ano ang ginagawa ng gumagamit. Itakda ang variable na ito sa false will
magreresulta sa walang ipinagpaliban na mga output file na nilikha at output na ipinadala sa screen
agad
echo (boolean)
Pagtatakda ng $echo sa sa (1) nagiging sanhi ng bawat utos na isinumite sa database sa pamamagitan ng \pumunta
command na ipapakita bago ang output. Nagde-default ang variable na ito sa 0 (o naka-off), at
maaari ding itakda gamit ang -e opsyon na command line.
pag-encrypt (boolean)
Pagtatakda ng $encryption variable bago magtatag ng koneksyon sa kalooban ng server
maging sanhi ng pagsisimula ng koneksyon sa pag-log in gamit ang client-side na password encryption. Ito
variable ay maaari ding itakda gamit ang -X opsyon na command line.
exit_failcount (boolean)
Itinatakda ang value na ito sa 1 dahilan sqsh para ibalik ang exit status ng $batch_failcount
sa halip na 0, sa isang hindi-error na pagwawakas. Tingnan mo EXIT STATUS para sa mga detalye. Ang default
ang halaga ay 0.
exit_value (int)
Kapag lumabas ka sa sqsh sa pamamagitan ng pagtukoy ng exit code, tulad ng \lumabas 3 o gamit ang isa sa
alias lumabas or umalis command, pagkatapos ay itinalaga ang value na ito sa $exit_value
variable. Maaari ka ring magtalaga ng halaga gamit ang \itakda utos. Kapag tinutukoy ng sqsh
ang variable na ito ay may hindi zero na halaga sa panahon ng pagwawakas, ang halagang ito ay gagamitin bilang exit
code. Tingnan mo EXIT STATUS para sa mga detalye.
palawakin (boolean)
Bilang default kapag ang \pumunta utos ay naisakatuparan, ang mga nilalaman ng kasalukuyang buffer ng trabaho
ay pinalawak ng lahat ng mga variable ng kapaligiran bago ipadala sa database para sa
pagbitay. Sa pamamagitan ng pagtatakda ng variable na ito sa "0", hindi na mapapalawak ang buffer
bago ipadala sa database. Ito ay kapaki-pakinabang kapag mayroon kang (1) mga string
ang buffer na naglalaman ng '$' at hindi mo gustong palawakin ang mga ito, o (2) para sa
mga kadahilanan sa pagganap; nangangailangan ng oras (at isang karagdagang kopya ng buffer) upang maisagawa ang
variable na pagpapalawak.
filter (boolean)
I-toggle ang pag-filter ng SQL batch sa pamamagitan ng isang panlabas na programa (tinukoy ng
$filter_prog variable, sa ibaba) bago ipadala sa SQL Server. Default ay '0',
o 'off'.
filter_prog (string)
Tinutukoy ang panlabas na programa kung saan sasalain ang SQL batch bago ang
ipinapadala sa SQL Server. Binabalewala ang variable na ito kung $filter ay nakatakda sa '0' o
'off'. Ang default ay 'm4 -'.
lumutang (float-format)
Tinutukoy ang format ng pagpapakita (ang katumpakan at sukat) para sa lahat ng mga halaga ng floating point
ipinapakita ng sqsh. Ang default ay '18.6'. Tandaan na ang mga halaga ay lumampas sa tinukoy
ang katumpakan ay hindi pinutol, kaya ang pagtatakda ng halagang ito ng masyadong mababa ay maaaring magdulot ng mga column sa a
itinakda ang resulta na hindi nakahanay.
footer (boolean)
I-toggle ang "(%d rows affected)" kasunod ng set ng resulta. Ang default para sa variable na ito
ay '1'.
mga header (boolean)
I-toggle ang mga header ng column bago ang isang set ng resulta. Ang default para sa variable na ito ay
'1'.
help_dir (path)
Ito ang lokasyon ng mga help file na ginagamit ng \tulong utos, kadalasan ito
mga default sa isang bagay tulad ng /usr/local/lib/sqsh/help.
hist_auto_save (int)
Kapag variable $histsave ay nasa at ang $hist_auto_save ang variable ay may mas mataas na halaga
kaysa sa 0, pagkatapos ay awtomatikong ise-save ang kasaysayan sa $kasaysayan pagkatapos $hist_auto_save
mga pagbabago sa mga buffer ng kasaysayan. Kapag ang halaga ay 0 (default), pagkatapos ay hindi awtomatiko
isasagawa ang pag-save ng kasaysayan.
histnum (int)
Naglalaman ng numero ng kasaysayan na itatalaga sa kasalukuyang command batch sa lalong madaling panahon
bilang \pumunta naisakatuparan ang utos. Dapat ituring na read-only ang variable na ito. Tingnan din
ang talakayan sa $histunique variable
kasaysayan (landas)
Ito ang lokasyon ng history file na ginamit upang mag-imbak at kumuha ng history ng user
sa panahon ng start-up at shutdown. Nagde-default ito sa $HOME/.sqsh_history. Ang variable na ito ay
pinalawak sa bawat oras na ito ay isinangguni ng sqsh, halos sa parehong paraan na iyon $prompt is
isinangguni sa tuwing ipinapakita ang prompt.
history_shorthand (boolean)
Ang variable na ito ay makabuluhan lamang sa loob ng isang interactive na session. Kung nakatakda, ito ay mag-o-on
ang kakayahang magdagdag ng anumang pinangalanang buffer o history buffer sa kasalukuyang buffer ng trabaho
sa isang 'sh' na istilo ng kasaysayan, gaya ng '!40'. Mag-ingat sa tampok na ito, sqsh Hindi
napakatalino sa paghahanap ng shorthand sa kasaysayan, kaya posibleng mangyari ito
malito (bagaman, ito ay sapat na matalino upang huwag pansinin ang !'s sa mga naka-quote na string).
histsave (boolean)
Ang halaga ng variable na ito ay ginagamit ng sqsh upang ipahiwatig kung ang kasaysayan ay dapat na
nai-save sa $kasaysayan bago ang pagwawakas ng sqsh.
histsize (int)
Ang halaga ng variable na ito ay ginagamit upang baguhin ang maximum na bilang ng mga entry sa kasaysayan
pinananatili ng sqsh (ang default ay 10). Tandaan na ang pagpapababa ng halaga nito
variable ay nagiging sanhi ng pagkawala ng ilang mga entry sa kasaysayan.
histunique (boolean)
Kung itinakda, sqsh nagpapanatili ng order ng MRU-LRU ng mga naisagawang buffer at hindi nag-iimbak
mga duplicate na command buffer. Halimbawa, obserbahan ang sumusunod na sitwasyon:
LINUX1502.user1.master.1> \history
(1) sp_sino
(2) bigyan ng role mon_role to sa_role
(3) piliin ang * mula sa monProcessActivity
(4) piliin ang @@authmech,show_sec_services()
(5) piliin ang @@servername,@@authmech,show_sec_services()
LINUX1502.user1.master.1> sp_who
LINUX1502.user1.master.2> go
... inalis ang output
LINUX1502.user1.master.1> \history
(1) bigyan ng role mon_role to sa_role
(2) piliin ang * mula sa monProcessActivity
(3) piliin ang @@authmech,show_sec_services()
(4) piliin ang @@servername,@@authmech,show_sec_services()
(5) sp_sino
sp_sino ay ang huling naisakatuparan na utos at ang buffer - orihinal na huli sa listahan -
ay nasa tuktok na ngayon ng listahan. Kapag ang isang umiiral nang buffer ay muling ginamit, ang halaga ng
$histnum hindi nagbabago ang variable.
hostname (string)
Ginamit sa proseso ng koneksyon upang ipahiwatig sa SQL Server ang pangalan ng host mula sa
alin sqsh ay kumokonekta. Ang variable na ito ay maaari ding itakda gamit ang -H bandila.
kung (string)
Ang listahan ng mga Internal Field Separator.
ignoreeof (boolean)
Sa pamamagitan ng default, sqsh magwawakas kung pinindot ng user ang ^d (control-D) sa isang walang laman na linya at
Ang suporta sa readline ay pinagsama-sama. Kung $ignoreeof ay nakatakda sa sqshrc file na makukuha mo a
mensahe ng babala sa halip:
CTRL-D: Gamitin ang "exit" o "quit" para umalis sa sqsh shell.
Ito ay katumbas ng paggamit ng "set -o ignoreeof" sa bash shell.
interactive (boolean)
Isa itong variable na ginagamit sa loob at malamang na hindi dapat baguhin ng user. Kung
$interactive ay '0', kung gayon ang prompt ay hindi ipinapakita, ang kasaysayan ay hindi binabasa o hindi rin
nakasulat at pinigilan ang ilang mensahe ng user.
mga interface (landas)
Ito ang buong pangalan ng path ng file ng mga interface, ito ang default sa $SYBASE/mga interface.
keytab_file (string)
Ginagamit sa mga mekanismo ng seguridad sa pagpapatunay ng user ng Kerberos at DCE. Naaayon sa
-K opsyon sa pagsisimula.
Tingnan din ang talakayan sa Kerberos Support.
keyword_completion (int/string)
Nalalapat lang ang variable na ito kung ang suporta ng GNU Readline ay naipon sa sqsh.
$keyword_completion ay ginagamit upang kontrolin ang tampok na pagkumpleto ng keyword ng TSQL sa
readline, at maaaring itakda gamit ang alinman sa isang integer sa pagitan ng 0 at 4, o isa sa
string wala, ibaba, itaas, matalino, O eksakto. Kung ito ay nakatakda sa alinman sa 0 o wala, tapos hindi
isinagawa ang pagkumpleto ng keyword (ito ang default). ibaba o 1, sanhi sqsh sa
kumpletuhin ang keyword sa maliit na titik, anuman ang kaso na bahagyang nakumpleto
na-type ang keyword. itaas o 2 pwersang pagkumpleto na isasagawa sa upper case, matalino,
o 3, ibinabatay ang desisyon sa kaso sa unang character ng bahagyang keyword, at
eksakto kinukumpleto ang keyword sa eksaktong parehong kaso tulad ng tinukoy sa .sqsh_words
(para sa built-in na TSQL na mga keyword, ito ay magiging lower case).
keyword_file (string)
Kung ang suporta sa readline ay pinagsama-sama sa sqsh, at sqsh ay pinapatakbo sa interactive
mode, ang mga nilalaman ng file na ito ay ginagamit para sa pagkumpleto ng tab ng keyword sa pamamagitan ng readline sa halip
kaysa sa default na hanay ng TSQL syntactical na mga keyword. Ang default ay $HOME/.sqsh_words.
wika (string)
Ang $wika variable ay ginagamit habang nagtatatag ng isang koneksyon sa server sa
tukuyin ang wikang pambansa na ginagamit upang ipakita ang mga prompt at mensahe ng system. Ang
Awtomatikong susubaybayan ng variable ang kasalukuyang setting ng wika ng server. Ito ay maaaring
itakda din sa pamamagitan ng -z bandila.
lineno (int)
Ito ay isang panloob na variable at hindi dapat baguhin ng user. Nakasanayan na nito
panatilihin ang numero ng linya na tina-type sa loob ng kasalukuyang buffer ng trabaho.
linesep (kuwerdas)
Ginagamit upang i-configure ang line separator para sa pahalang na istilo ng pagpapakita, ito ay nagde-default
sa "\n\t".
lock (string/write-only)
Tinutukoy ang password na gagamitin ng \lock utos. Kung hindi nakatakda o nakatakda sa string
"NULL", pagkatapos ay ang UNIX password ng gumagamit na tumatakbo sqsh ay ginagamit sa halip (kung maaari).
Tandaan na ang $lock ay palaging lalawak sa string na "*lock*" kung tinutukoy.
login_timeout (int)
Ang bilang ng mga segundong maghihintay kapag sinusubukang gumawa ng bagong koneksyon sa isang data
server. Default ay 0 (walang katapusang paghihintay). Tingnan din ang -T opsyon na command line.
max_timeout (int)
Kinokontrol ang dami ng beses na kailangan ng query na maabot ang time-out value nito bago ang
na-abort ang session. Tingnan mo $query_timeout at ang -Q bandila ng command line. Ang mga sumusunod
ipapakita ang mga mensahe at lalabas ang sqsh na may halagang 255 kapag ang $max_timeout limitasyon
naabot.
May nakitang timeout ng query o command, na-abort ang session
Natukoy ng koneksyon ng kliyente ang (mga) oras na ito.
Ipinaabort sa max_timeout na limitasyon
maxlen (int)
Kinokontrol ang maximum na dami ng data na ipapakita (sa anumang display mode) sa a
iisang hanay. Awtomatikong puputulin ng setting na ito ang output ng partikular
malalaking uri ng data (gaya ng TEXT) sa ibinigay na halaga. Ang default na setting ay 8192
byte (8KB).
newline_go (boolean)
Ang watawat na ito ay ginagamit bilang isang kakila-kilabot na kludge upang suportahan ang isang "walang laman" na alyas para sa \pumunta
command, iyon ay, ang katumbas ng pagbibigay ng "-c ''" o "-c" lang sa command
linya. Kapag naka-on, ang isang walang laman na linya ay binibigyang kahulugan bilang isang tawag sa \pumunta utos. Ang tampok na ito
ay hindi inirerekomenda ngunit ibinibigay para sa pagkakumpleto.
output_parms (boolean)
Flag na ginagamit upang paganahin o huwag paganahin ang pagpapakita ng mga set ng resulta ng parameter ng output mula sa nakaimbak
mga pamamaraan. Ang default ay upang paganahin ang display.
packet_size (int)
Tinutukoy ang laki ng mga TDS packet na ginamit upang makipag-ugnayan sa SQL. Pagbabago ng halaga
ng variable ay hindi makakaapekto sa kasalukuyang koneksyon ngunit magkakabisa sa
susunod \kunekta muli utos. Ang pagtukoy ng halaga ng NULL ay nagpapahiwatig na ang default na packet
laki ang nais.
password (string/write-only)
Ito ang kasalukuyang password ng user. Ang isang NULL na password ay maaaring italaga gamit ang isang tahasang
"NULL" na string. Para sa mga kadahilanang pangseguridad, kapag tinukoy ang $password variable na kalooban
laging lumawak sa string na "*password*".
password_retry (boolean)
Kapag naka-on ang variable at nagsimula ang sqsh sa interactive mode, hihilingin ng sqsh ang
password muli kung nabigo ang pag-login. Kapag naka-set sa 'off', wawakasan kaagad ang sqsh.
Ang default ay nakabukas.
punong-guro (string)
Ginagamit sa pagpapatunay ng gumagamit ng Kerberos bilang pangunahing pangalan ng Server kapag naiiba ito
ang $DSQUERY pangalan. Naaayon sa -R opsyon sa pagsisimula.
Tingnan din ang talakayan sa Kerberos Support.
prompt (string)
Ang variable na ito ay ginagamit ng sqsh upang buuin ang iyong kasalukuyang prompt. Anumang mga variable na nakapaloob
sa loob ng $prompt ay pinalawak sa tuwing ipinapakita ang prompt. Ang default na halaga para sa
ito ay '${lineno}> '. Tingnan din ang talakayan sa suporta sa kulay sa ibaba.
prompt2 (string)
Ang mga nilalaman ng prompt na ito ay pinalawak at ipinapakita sa panahon ng interactive na paggamit kapag
sqsh nangangailangan ng karagdagang input, tulad ng sa panahon ng pagpapatuloy ng linya. Ang default na halaga
ay '-->'.
query_timeout (int)
Bilang ng mga segundo upang maghintay para sa isang query na magbalik ng data. Kung naabot ang timeout sa
na-abort ang query (nakansela). Tingnan din $max_timeout at ang -Q opsyon na command line.
rcfile (path)
Naglalaman ng colon (:) delimited list ng sqsh resource (sqshrc) file. Ang default
Ang setting ay /etc/sqshrc na sinusundan ng $HOME/.sqshrc).
readline_history (string)
Kung ang suporta sa readline ay pinagsama-sama sa sqsh, ang mga nilalaman ng readline na linya-by-
ang kasaysayan ng linya ay isusulat sa file na tinukoy ng $readline_history variable
Ang default ay $HOME/.sqsh_readline.
readline_histsize (int)
Kung ang suporta sa readline ay pinagsama-sama sa sqsh, ang halaga ng $readline_histsize
ay tumutukoy sa bilang ng mga linya na naka-save sa readline na linya-by-line na kasaysayan.
Ang pagtatakda nito sa halagang 0 ay nagiging sanhi ng pag-save ng bawat linya. Ang default na halaga ay 100.
tunay (float-format)
Tinutukoy ang format ng pagpapakita (ang katumpakan at sukat) para sa lahat ng tunay na halaga na ipinakita ni
sqsh. Ang default ay '18.6'. Tandaan na ang mga halaga na lumalampas sa tinukoy na katumpakan ay hindi
pinutol, kaya ang pagtatakda ng halagang ito ng masyadong mababa ay maaaring maging sanhi ng mga hanay sa isang set ng resulta na mawalan ng-
nakahanay
repeat_batch (boolean)
Kapag itinakda sa On or TotooSa \pumunta pinaandar na may walang laman SQL Nagpapahina ng lakas Magdudulot ang
ang nakaraang batch ay muling isasagawa.
secmech (kuwerdas)
Ang pangalan ng mekanismo ng seguridad na ginagamit para sa pagpapatunay ng user. Halimbawa csfkrb5.
Kapag ginagamit ang -Z opsyon, maaaring tukuyin ang pangalan ng mekanismo ng seguridad, o kung kailan
walang secmech na ibinigay, gagamitin ng OpenClient ang default, ibig sabihin, ang unang seguridad
entry mula sa $SYBASE/$SYBASE_OCS/config/libtcl.cfg file. Tandaan na ang pangalan na ginamit
dapat tumugma sa pangalan ng kaukulang secmech entry sa tumutol.dat file. Kailan
ang koneksyon sa server ay setup, ang aktwal na pangalan ng secmech ay maiimbak sa
$secmech variable
secure_options (string)
Ilarawan ang mga opsyon sa seguridad na ginagamit para sa mga mekanismo ng seguridad sa pagpapatunay ng user.
Tumutugon sa -V opsyon sa pagsisimula.
Tingnan din ang talata sa Kerberos Support.
script (string)
If sqsh ay tumatakbo gamit ang -i flag, pagkatapos ang variable na ito ay naglalaman ng pangalan ng script
pinapatay.
semicolon_cmd (string)
Kailan $semicolon_hack (tingnan sa ibaba) ay pinagana, ang mga nilalaman ng variable na ito ay naisakatuparan
kapag nakatagpo ng semicolon sa SQL Nagpapahina ng lakas. Nagde-default ang variable na ito sa
string '\pumunta'.
semicolon_hack (boolean)
I-toggle ang kakayahang gumamit ng ';' bilang isang in-line command terminator. Ang tampok na ito ay
hindi inirerekomenda at narito lamang dahil maraming mga gumagamit ang nagreklamo. Tingnan ang seksyon
MGA UTOS, Nasa linya Go.
session (string)
Ang lokasyon ng session file na ipoproseso bago kumonekta sa a
server. Palalawakin ang variable kaya maaaring maglaman ito ng mga variable ng kapaligiran.
SHELL (string)
Ang pangalan ng shell na gagamitin sa pag-execute ng mga tubo at gagamitin ng \shell utos
(default '/ Bin / SH').
mga istatistika (boolean)
Pagtatakda ng $istatistika sa 1 nagiging sanhi ng pagpapakita ng mga istatistika ng timing kapag nagtagumpay
pagpapatupad ng bawat batch ng SQL. Ang variable na ito ay maaari ding itakda sa pamamagitan ng -t command line
bandila, o sa pamamagitan ng pagbibigay -t sa \pumunta utos. $istatistika default sa 0.
estilo (string)
Pinipili ang istilo ng pagpapakita ng set ng resulta. Sa kasalukuyan, walong istilo ang sinusuportahan. Ang horiz
(na maaaring tukuyin din bilang paghamak or pahalang), malapit na kahawig ng output ng
isql, na may tradisyonal na columnar output.
Ang vert (O patayo) style ay umiikot sa output, upang ang bawat linya ay kinakatawan ng
pangalan ng column na sinusundan ng value ng column. Ito ay magandang tingnan lalo na
malawak na output.
Ang bcp style ay nagpapakita ng mga resulta sa isang format na pumapayag sa bcp'ing ang resulta na ibinalik
sa ibang table. Ibig sabihin, ang bawat halaga ng column ay pinaghihiwalay ng $bcp_colsep sa
huling hanay na pinaghihiwalay ng $bcp_rowsep sinusundan ng isang bagong linya (\n). Kung $bcp_colsep or
$bcp_rowsep ay hindi tinukoy pagkatapos ay '|' ay ginagamit bilang default na separator. Tandaan na ito
hindi gumagana nang maayos ang output sa mga column ng COMPUTE, at ginagamit ang default na conversion
pamamaraan para sa lahat ng uri ng data (iyon ay, datime maaaring putulin ng mga column ang millisecond).
Ang csv pinalalabas ng istilo ng display ang lahat ng set ng resulta sa anyo ng pinaghihiwalay ng kuwit
bumuo. Ang mode na ito ay mainam na mag-import ng mga set ng resulta sa mga programa ng spreadsheet, para sa
halimbawa.
Ang html ipinapakita ng istilong output ang lahat ng set ng resulta sa anyo ng isang HTML
bumuo. Ang mode na ito ay perpekto para sa paggamit ng sqsh bilang isang CGI application.
Ang meta Ang istilo ng pagpapakita ay naglalabas lamang ng impormasyon ng meta-data na nauugnay sa
resulta at itinatapon ang aktwal na mga resulta ng row. Ang mode na ito ay kapaki-pakinabang para sa pag-debug ng
resulta set na nabuo mula sa isang buong passthru Open Server gateway, o para sa mga iyon
interesado sa kung ano talaga ang babalik mula sa server.
Ang medyo ang istilo ng pagpapakita ay bumubuo ng isang malambot na output na tulad ng talahanayan gamit ang regular na ASCII
mga character para sa mga hangganan. Ang mode na ito ay hindi nagsasagawa ng anumang tahasang pambalot ng column, tulad ng
ang horiz display mode. Gayunpaman, ang $colwidth variable ay maaaring gamitin upang kontrolin ang
maximum na lapad ng isang naibigay na column sa screen. Kung lumampas ang column $colwidth
mga character na lapad, ito ay nakabalot sa isang medyo kaakit-akit na paraan. Tandaan na
$colwidth maaaring lumampas kung may sapat na lapad ng screen para hawakan ang mga column nang wala
nakabalot.
Ang wala pinipigilan ng istilo ng pagpapakita ang lahat ng mga resulta mula sa pagpapakita (gayunpaman, ginagawa nito
aktwal na kunin ang impormasyon ng resulta mula sa SQL Server). Ito ay partikular na kapaki-pakinabang
kapag ginamit kasama ng -p bandila (o ang $istatistika variable) para sa pagtitipon ng tumpak
istatistika ng pagganap.
term_title (string)
Kapag naitakda ang variable na ito, ire-reset ng sqsh ang pangalan ng kasalukuyang terminal (xterm)
window kung saan ito tumatakbo. Gumagana para sa xterm, rxvt, putty at MS-Windows CMD windows. Ang
Binubuo ang pangalan ng sqsh startup name na nakadugtong sa pinalawak na halaga ng
$term_title variable
thresh_display (int)
Itinatakda ang pinakamababang kalubhaan ng error sa SQL Server na magpapakita ng mensahe sa user,
ang default ay 0 at ang mga wastong hanay ay nasa pagitan ng 0 at 22, kasama.
thresh_exit (int)
Tinutukoy ang maximum na bilang ng mga error sa antas ng kalubhaan $thresh_fail na maaaring
nakatagpo bago i-abort ang sqsh. Ito ay pangunahing kapaki-pakinabang para sa mga hindi interactive na script,
ngunit pinapayagan sa isang interactive na session. Setting $thresh_exit sa halagang 0
hindi pinapagana ang tampok na ito. Tingnan ang seksyon EXIT STATUS para sa mga detalye.
thresh_fail (int)
Itinatakda ang pinakamababang antas ng kalubhaan ng SQL Server na ituring na isang nabigong batch.
Ang minimum para sa halagang ito ay 0 (ibig sabihin, anumang error na hindi isang impormasyon
message), at ang maximum ay 22. Kailanman $thresh_fail ay tumawid, ang variable
$batch_failcount ay incremented ng 1. Tingnan ang seksyon EXIT STATUS para sa mga detalye.
oras (petsa-spec)
Maaaring itakda ang variable na ito na may format ng oras (tingnan ang man page para sa petsa(1)), at ang
lumalawak ang variable sa kasalukuyang oras sa ibinigay na format. Ang default na format para sa
ang variable na ito ay %H:%M:%S (hal. 14:32:58).
tmp_dir (path)
Naglalaman ito ng direktoryo kung saan ginagamit ng mga pansamantalang file ang panloob sqsh ay dapat
nakasulat. Ang mga file na ito ay nabuo alinman sa panahon ng pag-edit ng buffer (ang \buf-edit
command), o upang mapanatili ang output defer file para sa mga background na trabaho. Ang default na halaga
para sa variable na ito ay /tmp.
username (string)
Ang pangalan ng user na kasalukuyang nakakonekta sa database.
bersyon (wala)
Ang read-only na variable na ito ay naglalaman ng kasalukuyang numero ng bersyon. (sqsh-2.1.7)
lapad (int)
Ang kasalukuyang lapad ng output ng SQL.
xgeom (string/int)
Kung ang suporta ng X11 ay pinagsama-sama sa sqsh, ang halagang ito ay ginagamit upang i-configure ang default
laki ng window (sa mga character) ng X display. Ang variable na ito ay dapat na nasa format WxH
o lamang W, Kung saan W ay ang lapad ng bintana at H ay ang taas ng bintana. Kung
ang taas ng window ay hindi ibinibigay, pagkatapos ay 25 linya ay ipinapalagay. Kung $xgeom Hindi
itakda, pagkatapos $lapad ay ginagamit bilang default na lapad at ang taas ay ipinapalagay na 25. Kung
ni nakatakda, pagkatapos ay 80x25 ang ipinapalagay.
xwin_title (string)
Kung ang suporta ng X11 ay pinagsama-sama sa sqsh at isang X11 resulta window ay hinihiling sa pamamagitan ng paggamit
ang -x parameter ng \pumunta or \rpc commands, pagkatapos ang variable na ito ay gagamitin upang itakda
ang pangalan ng pamagat ng window. Maaaring pansamantalang ma-override sa -T opsyon ng
\pumunta at \rpc utos.
Iskrip Pagpapatupad
Tulad ng karamihan sa mga shell, sqsh nagbibigay-daan sa isang file na naglalaman ng SQL at mga script command na maisakatuparan
direkta sa pamamagitan ng mahiwagang UNIX #! kumbensiyon. Sa karamihan ng mga platform ng UNIX, kapag ang operating
nakatagpo ng system ang mga byte #! bilang unang dalawang byte ng isang executable file ay gagawin nito
awtomatikong i-pipe ang file sa pamamagitan ng interpreter na tinukoy kaagad pagkatapos ng #!.
Halimbawa, upang lumikha ng isang maipapatupad sqsh script na tatakbo sp_sino, kailangan mo lang gumawa
isang file na tulad nito:
#!/usr/bin/sqsh -i
sp_sino
go
Kaya, kung ang iyong sp_sino Ang script ay direktang isinasagawa, awtomatiko itong ilulunsad
"/usr/bin/sqsh -i sp_sino" para sa iyo.
At, para gawing mas flexible ang mga bagay, sqsh sumusuporta sa mga positional na parameter, katulad ng
karamihan sa mga shell, sa anyo ${n} na lalawak sa nika argumento sa iyong sqsh script.
Halimbawa:
#!/usr/bin/sqsh -i
sp_who ${1}
go
Magdudulot ang sp_sino naka-imbak na pamamaraan na isasagawa na may argumento ng una
parameter ng command line na ibinigay sa sp_sino script ng shell.
Tandaan na ang mga positional na parameter dapat ay nakapaloob sa pagitan ng mga braces upang maiwasan ang mga salungatan sa
ang TSQL pera uri ng data (nang walang mga braces, hindi lalawak ang variable).
EXIT STATUS
Isa sa mga pangunahing reklamo ng isql ay hindi ito nagbibigay ng pasilidad upang matukoy kung kailan ang isang
naganap ang kundisyon ng error habang nagsasagawa ito ng pagproseso. sqsh nagbibigay ng sa halip
kumplikado, ngunit nababaluktot na mekanismo para sa pagbabalik ng makabuluhang impormasyon tungkol sa dahilan nito
para sa exit sa anyo ng exit status (tingnan lumabas(3)).
Kailan sqsh nagsisimula sa pagpapatupad dalawang humahawak ay nauugnay sa kasalukuyang koneksyon sa
database, ang isa ay isang tagapangasiwa ng mensahe na responsable para sa pagpapakita ng teksto ng anumang SQL
Mga mensahe o error sa server, at ang isa ay isang tagapangasiwa ng error, na siyang may pananagutan
pagtukoy kung ano ang gagawin sa isang kondisyon ng error ( tiisin mo ako, ang mga ito ay maluwag lamang
mga paglalarawan). At, nauugnay sa bawat mensahe at kundisyon ng error ay isang antas ng kalubhaan,
sa pagitan ng 0 at 22 (impormasyon na mensahe sa nakamamatay na kalagayan).
Nauugnay sa dalawang tagapangasiwa ng mensahe na ito ay ilang mga variable na ginagamit sa alinman
kontrolin ang kanilang pag-uugali, o ginagamit bilang mga tagapagpahiwatig ng tagapangasiwa ng mensahe:
$thresh_display
Ang variable na ito ay ginagamit ng tagapangasiwa ng mensahe upang matukoy ang pinakamababang kalubhaan ng error
na magiging sanhi ng pagpapakita ng mensahe. Bilang default, ito ay 0, na ipapakita
lahat ng mensahe (na may ilang mga pagbubukod). Ang pagtatakda nito sa 1, halimbawa, ay gagawin
sugpuin ang mga mensaheng pang-impormasyon tulad ng output ng itakda showplan on.
$thresh_fail
Ang variable na ito ay ginagamit ng tagapangasiwa ng error upang matukoy kung aling kalubhaan ng error
isinasaalang-alang ng sqsh upang maging isang kabiguan. Karaniwan, ito ay nagde-default sa 11 na nagpapahiwatig na
anumang error, maliban sa mga mensaheng nagbibigay-kaalaman, ay isang pagkabigo. Ang susunod na variable ay
ipaliwanag ang kahalagahan ng halagang ito.
$batch_failcount
Dapat ituring na read-only ang variable na ito, at naglalaman ng kabuuang bilang ng beses
na ang mga batch ay nagdulot ng error sa kalubhaan $thresh_fail o higit pang mga. Ang tanging halaga
na wasto upang tahasang itakda ang halagang ito sa, ay "" (ang walang laman na string), na gagawin
i-reset ang halagang ito sa 0, ang anumang iba pang halaga ay maaaring magkaroon ng hindi mahuhulaan na mga resulta.
$thresh_exit
Ang variable na ito ay ginagamit upang matukoy ang limitasyon kung saan $batch_failcount magdudulot sqsh
para lumabas. Kung $thresh_exit ay 0, pagkatapos ay hindi pinagana ang tampok na ito. Sa madaling salita, kung
$batch_failcount = $thresh_exit at $thresh_exit ay mas malaki sa 0, kung gayon sqsh habilin
lumabas, bumabalik $batch_failcount bilang exit status.
Tandaan na, maliban kung $exit_failcount ay nakatakda sa 1, sqsh ay lalabas na may 0 kung ang kabuuan
hindi umabot ang bilang ng mga pagkabigo $thresh_exit.
$exit_failcount
Ang variable na ito ay ginagamit lamang kapag sqsh karaniwang lalabas na may katayuang tagumpay (0),
nagiging sanhi ito upang sa halip ay lumabas na may halaga ng $batch_failcount (na maaaring, mismo, ay
0).
$exit_value
Kapag hindi zero ang variable na ito, i-override nito ang $exit_failcount at
$batch_failcount mga halaga at lumabas lamang sa halaga ng $exit_value. Ang variable na ito ay maaaring
tahasang itinakda gamit ang \itakda utos, o tuwirang paggamit \lumabas x at ang alyas nito
mga katapat.
Upang recap, narito ang isang listahan ng mga error code na maaaring ibalik ni sqsh sa paglabas, at ang
dahilan para maibalik sila:
- 0 -
Walang error na naranasan.
- 1...253 -
Sa pagitan ng 1 at 253 batch ay nabigo (kung tumakbo ka ng higit sa 253 batch, ang paglabas
ang katayuan ng sqsh ay hindi natukoy...maaari kong ayusin ito sa hinaharap).
- 254 -
Isang tahasang \abort ay tinawag, o isang SIGINT (^C) ang ibinigay sa panahon ng isang hindi interactive
session.
- 255 -
Ang isang pangkalahatang kondisyon ng error ay naganap, tulad ng isang masamang command line argument sa sqsh,
pagkabigo sa paglalaan ng memorya, error sa pag-access ng file, atbp.
Ang mga sumusunod na seksyon ay nagbibigay ng mga detalyadong halimbawa ng mga kumbinasyon ng mga variable na setting at
ang mga resultang ginawa sa paglabas na may ilang kundisyon ng pagkabigo. Ipinapalagay na ang
$exit_value variable ay naglalaman ng 0 sa mga susunod na halimbawa.
thresh_display=0, thresh_fail=0, thresh_exit=1
Sa kumbinasyong ito, ang lahat ng mga mensahe ng error ay ipapakita habang nangyayari ang mga ito, at bawat isa
ang error ay ituturing na kundisyon ng pagkabigo. Sa pag-abot sa unang error, sqsh
ay abort na may exit status na 1, o ang kabuuang bilang ng mga pagkabigo (ang
$batch_failcount variable). Gayunpaman, kung walang mali sa buong proseso, a
ibinalik ang zero.
thresh_display=0, thresh_fail=0, thresh_exit=3
Ang kumbinasyong ito ay magiging sanhi ng lahat ng kundisyon ng error na maipakita at lahat ng mga ito ay magiging
itinuturing na isang kondisyon ng kabiguan. Sa pag-abot sa tatlong kabuuang nabigong batch, sqsh habilin
exit na may status na 3. Gayunpaman kung nabigo ang 0, 1, o 2 batch, ibabalik ang 0.
thresh_display=22, thresh_fail=0, thresh_exit=3
Ito ay kumikilos katulad ng nakaraang halimbawa, maliban sa lahat ng error
ang mga mensahe ay pipigilan sa pagpapakita. Ito ay partikular na kapaki-pakinabang kung ikaw
mas mahalaga lang ang exit value kaysa sa aktwal na error.
thresh_display=0, thresh_fail=2, thresh_exit=1
Ito ay magiging sanhi ng unang error ng kalubhaan 2 o mas mataas na maipakita at sanhi sqsh
upang lumabas na may kundisyon ng pagkabigo na 1.
thresh_display=0, thresh_fail=0, thresh_exit=3, exit_failcount=1
Ito ay magkapareho sa pangalawang halimbawa, sa itaas, gayunpaman sqsh ibabalik ang kabuuan
bilang ng mga batch na nabigo kahit na $batch_failcount hindi umabot sa 3.
exit_value=nonzero
I-override nito ang lahat ng kundisyong ipinaliwanag sa itaas at lalabas lang sa partikular na halaga.
sari-sari
Pangkulay sqsh mga senyales, at iba pa
Ang mga color code ay ipinakita bilang isang string tulad ng {1;2;3}. Kung makatagpo ang sqsh ng isang { (curly brace)
sa prompt string, ipapalagay nito ang isang color-code na ibinibigay at magsisilbing ganoon. Hindi
isasagawa ang mga pagsusuri sa bisa ng mismong kahulugan ng color-code. Ang kulay
ang kahulugan ay binubuo ng tatlong value na pinaghihiwalay ng semicolon.
Ang unang code ay tumutukoy sa Color Attribute Code na may mga posibleng halaga: 0=wala 1=bold
Tinutukoy ng pangalawang halaga ang Code ng Kulay ng Teksto: 30=itim 31=pula 32=berde 33=dilaw 34=asul
35=magenta 36=cyan 37=puti
Ang pangatlong value ay tumutukoy sa Background Color Code: 40=itim 41=pula 42=berde 43=dilaw
44=asul 45=magenta 46=cyan 47=puti Ang huling color-code para sa background ay maaaring tanggalin.
Hindi lahat ng kumbinasyon ng kulay at katangian ay magpapakita ng magagandang resulta, depende sa iyo
uri ng terminal at scheme ng kulay. Ngunit ang mga sumusunod na halaga ay gumagana nang OK sa isang xterm na may creamy
puting kulay ng background sa Linux pati na rin ang rxvt sa Cygwin na may itim na background na window:
Prompt: Asul na text sa puting background na "{0;34;47}"
Text ng command: Dilaw na text na "{0;33}"
Isasalin ng sqsh ang mga color-code sa isang aktwal na string ng color-code na ipinakita sa
readline: halimbawa "\001\033[0;36;47m\002". Tandaan na kung gusto mong gumamit ng mga kulot na bracket
sa iyong prompt, kailangan mong takasan ang colorization sa pamamagitan ng pagtukoy ng double brace, tulad ng
{{...}}. Halimbawa:
\set prompt_color='{0;34;47}'
\set text_color='{0;33}'
\set prompt='$prompt_color{{$DSQUERY.$username.$database.$lineno}}>$text_color '
Ang suporta sa kulay ay awtomatikong magagamit kung ang sqsh ay pinagsama-sama at naka-link sa readline
pinagana ang suporta.
Gumamit ng sqsh online gamit ang mga serbisyo ng onworks.net