Ini adalah perintah sqsh yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa workstation online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS
PROGRAM:
NAMA
sqsh - Shell basis data interaktif (versi 2.1.7)
RINGKASAN
sqsh [[opsi]] [[args......]]
[ -hitungan ]
[ -ukuran_paket ]
[ -B ]
[ -B ]
[ -c [cmakhir] ]
[ -Csql ]
[ -d keparahan ]
[ -D basis data ]
[-e]
[ -E editor ]
[ -f keparahan ]
[ -G tds_version ]
[ -H ]
[ -H nama host ]
[ -i nama file ]
[ -I antarmuka ]
[ -J rangkaian karakter ]
[ -k kata kunci ]
[ -K tab tombol]
[ -l debug_flags ]
[ -L var=nilai ]
[ -m gaya ]
[ -n hidup|mati ]
[ -N nama aplikasi ]
[ -o nama file ]
[ -P ]
[ -P [kata sandi] ]
[ -Q batas waktu_kueri ]
[ -r [sqshrc] ]
[ -R server utama ]
[ -s colsep ]
[ -S server ]
[ -t [menyaring] ]
[ -T login_timeout ]
[ -U nama pengguna ]
[ -v ]
[ -V [bcdimoqru]]
[ -w lebar ]
[ -X ]
[ -y direktori ]
[ -z bahasa ]
[ -Z [detik | default|tidak ada] ]
DESKRIPSI
Sqsh (diucapkan skwish) adalah kependekan dari SQshelL (diucapkan sq-shell), dan dimaksudkan sebagai
pengganti program 'isql' terhormat yang disediakan oleh Sybase. Itu terjadi karena
tahun frustrasi mencoba melakukan pekerjaan nyata dengan program yang tidak pernah dimaksudkan untuk
melakukan pekerjaan nyata.
Sqsh lebih dari sekadar prompt yang bagus, ini dimaksudkan untuk menyediakan banyak fungsi
disediakan oleh shell yang baik, seperti variabel, aliasing, redirection, pipa, back-grounding,
kontrol pekerjaan, riwayat, substitusi perintah, dan konfigurasi dinamis. Juga, sebagai oleh-
produk desain, sangat mudah untuk memperluas dan menambahkan fungsionalitas.
PILIHAN
Opsi berikut dapat digunakan untuk menyesuaikan beberapa perilaku sqsh, betapapun besarnya
bagian dari opsi konfigurasi hanya tersedia melalui variabel lingkungan
yang dapat diatur saat runtime atau melalui file .sqshrc.
Opsi juga dapat diberikan dalam variabel lingkungan SQSH. Variabel ini diuraikan
sebelum menguraikan baris perintah, jadi dalam banyak kasus baris perintah akan menimpa
isi variabel. Ketahuilah bahwa untuk opsi yang diizinkan untuk diberikan
beberapa kali, seperti -c, memasok keduanya dalam variabel dan baris perintah akan
sama dengan memasoknya beberapa kali di baris perintah.
-hitungan
Tetapkan maksimum menghitung kegagalan (sebagaimana ditentukan oleh variabel $thresh_fail) yang
mungkin terjadi sebelum sqsh akan dibatalkan. Mengatur ini ke 0 menunjukkan bahwa sqsh seharusnya tidak
keluar pada kesalahan. Nilai ini default ke 0 dan juga dapat disetel menggunakan $thresh_exit
variabel. Lihat bagian EXIT STATUS untuk rincian.
-ukuran paket
Menentukan ukuran paket TDS jaringan yang digunakan untuk berkomunikasi dengan server SQL.
Nilai ini harus antara 512 dan 8192, dan merupakan kelipatan 512. Periksa SQL Anda
Konfigurasi server untuk menentukan ukuran paket yang didukung. Nilai ini mungkin juga
ditentukan saat run-time menggunakan variabel $packet_size.
-b Menekan pesan banner saat startup. Ini tidak diperlukan dalam kasus di mana stdout
telah diarahkan ke file. Opsi ini juga dapat disetel melalui variabel $banner.
-B Mematikan semua buffering stdin, stdout, dan stderr. Fitur ini memungkinkan sqsh menjadi
dijalankan dari skrip kontrol interaktif seperti obrolan dan harapan.
-c [cm akhir]
Secara internal sqsh menyediakan perintah \Pergilah untuk mengirim sekumpulan SQL ke database dan
menyediakan satu alias, go untuk perintah ini. Setiap kali cmdend diberikan alias baru
untuk \Pergilah didirikan.
-C sql
Menyebabkan sql perintah yang akan dieksekusi oleh sqsh, mirip dengan perilaku yang sama yang ditunjukkan
oleh bendera -i. Ini sql pernyataan tidak boleh mengandung tanda kutip ganda (pembatasan ini mungkin
diangkat dalam rilis sqsh di masa mendatang).
-d keparahan
Menetapkan tingkat keparahan kesalahan SQL Server minimum yang akan ditampilkan kepada pengguna. NS
defaultnya adalah 0, dan rentang yang valid adalah dari 0 hingga 22. Ini juga dapat diatur menggunakan
variabel $thresh_display. Lihat bagian EXIT STATUS.
-D basis data
Menyebabkan sqsh mencoba memulai dengan konteks basis data Anda diatur ke Database daripada
database default Anda (biasanya master). Ini juga dapat diatur menggunakan $database
variabel.
-e Termasuk setiap perintah yang dikeluarkan ke sqsh untuk dimasukkan dalam output. Opsi ini mungkin
juga diatur melalui variabel $echo (yang tidak terkait dengan \gema memerintah).
-E penyunting
Setel editor default ke editor. Ini juga dapat diatur menggunakan lingkungan UNIX
variabel $EDITOR dengan nama editor yang diinginkan.
-f keparahan
Tetapkan minimum kerasnya tingkat dianggap gagal oleh sqsh. Ini sama dengan
menyetel variabel $thresh_fail. Lihat bagian EXIT STATUS untuk rincian.
-G tds_versi
Setel versi TDS yang akan digunakan. Versi yang valid adalah 4.0, 4.2, 4.6, 4.9.5, 5.0 dan freetds
tambahan mendukung versi 7.0 dan 8.0. Nilai yang ditentukan diberikan ke
variabel $tds_version. Validasi input tidak dilakukan oleh sqsh. Namun, ketika sebuah
versi TDS tidak valid ditentukan, versi default 5.0 akan digunakan. Setelah
sesi diatur, variabel $tds_version akan disetel ke versi TDS yang berlaku.
Variabel tidak akan tersedia jika opsi -G tidak digunakan. Dimaksudkan untuk tes dan
tujuan debugging saja.
TDS adalah singkatan dari Tabular Data Stream dan merupakan protokol komunikasi Sybase dan
Microsoft menggunakan untuk komunikasi Client-Server.
-h Mematikan tajuk kolom dan mengikuti "(# baris terpengaruh)" dari keluaran batch.
-H nama host
Menetapkan nama host klien seperti yang dilaporkan dalam sysprocesses. Ini juga dapat diatur melalui
$variabel nama host.
-i nama file
Baca semua masukan dari nama file bukan dari stdin.
-Saya antarmuka
Ketika koneksi dibuat ke database, interface file digunakan untuk memutar
nilai $DSQUERY ke dalam nama host dan port tempat koneksi akan dibuat,
secara default ini terletak di $SYBASE/interfaces. Bendera ini memungkinkan default ini menjadi
diganti.
-J rangkaian karakter
Menentukan set karakter yang akan digunakan di sisi klien untuk berkomunikasi dengan SQL
Server. Ini juga dapat diatur menggunakan variabel lingkungan $charset.
-k kata kunci
Menentukan file yang berisi daftar kata kunci yang akan digunakan untuk penyelesaian tab kata kunci,
jika dukungan readline telah dikompilasi menjadi sqsh. File ini juga dapat diatur melalui
variabel $keyword_file, yang defaultnya adalah $HOME/.sqsh_words.
-K tombol
dukungan Kerberos. Tentukan nama file keytab untuk DCE.
Lihat bagian Dukungan Kerberos di bawah untuk detailnya.
-l debug_flags
Jika sqsh telah dikompilasi dengan -DDEBUG, opsi ini dapat digunakan untuk menghidupkan dan mematikan
opsi debug. Lihat variabel $debug, di bawah.
-L var=nilai
Tetapkan nilai $var ke nilai. Ini dapat digunakan untuk mengatur nilai sqsh . apa pun
variabel bahkan jika variabel baris perintah eksplisit disediakan untuk mengatur
variabel. NS -L flag dapat digunakan untuk mengatur nilai variabel non-konfigurasi sebagai
baik.
-m gaya
Mengubah gaya tampilan saat ini menjadi gaya. Gaya yang saat ini didukung adalah cakrawala,
belukar, bcp, csv, html, meta, cukup dan tak satupun. Gaya tampilan saat ini juga dapat diatur
menggunakan variabel $style atau melalui -m bendera ke \Pergilah perintah.
-n hidup|mati
Mengaktifkan mode transaksi berantai saat terhubung (jika disetel ke aktif). Mode transaksi berantai
juga dikenal sebagai mode "AutoCommit off".
-N nama aplikasi
Tetapkan nama aplikasi yang digunakan sqsh untuk mengidentifikasi dirinya ke server SQL. NS
nama aplikasi dapat diambil dari server menggunakan kolom nama program dari
tabel proses master.dbo.sys. Default untuk sqsh-2.1.7.
-o nama file
Mengarahkan semua output ke nama file daripada stdout.
-p Menampilkan statistik kinerja setelah menyelesaikan setiap kumpulan SQL. Opsi ini mungkin
juga diaktifkan melalui variabel $statistics, atau dengan menyediakan -p bendera ke \Pergilah
perintah.
-P [kata sandi]
Sybase kata sandi untuk nama pengguna diperlukan untuk terhubung ke Server (default, NULL). NS
kata sandi juga dapat diatur melalui $password. Memberikan kata sandi '-' menyebabkan
kata sandi untuk dibaca dari baris pertama stdin.
sqsh bersusah payah untuk menyembunyikan kata sandi dari pengguna mana pun yang mencoba melihat baris perintah
digunakan untuk meluncurkan sqsh, jadi gunakan -P seharusnya tidak merupakan lubang keamanan.
Atau, Anda dapat menyimpan kata sandi default Anda di file .sqshrc yang bukan
dapat dibaca oleh siapa pun selain Anda sendiri. (chmod 600 .sqshrc)
-nilai Q
Nilai batas waktu kueri (setara dengan opsi -t isql). Jika disetel, akan habis waktu lama
menjalankan kueri. Peta ke $query_timeout variabel.
Sebagai contoh:
sqsh -SASE1502 -AS -P -Q30
ASE1502.sa.master.1> cd tix
ASE1502.sa.tix.1> pilih count(*) dari E_TIX;
Buka Pesan Klien
Lapisan 1, Asal 2, Tingkat Keparahan 2, Nomor 63
ct_results(): lapisan api pengguna: kesalahan Perpustakaan Klien internal:
Waktu baca dari server telah habis.
ASE1502: Permintaan atau batas waktu perintah terdeteksi, perintah/batch dibatalkan
ASE1502: Koneksi klien telah mendeteksi ini 1 kali.
Lihat juga $ batas waktu_maks variabel, yang mengontrol berapa kali batas waktu dapat
terjadi pada koneksi saat ini sebelum sesi dibatalkan.
-r [sqshrc]
Menentukan alternatif .sqsrc file yang akan diproses, bukan default. Jika tidak
sqsrc disediakan berikut -r, maka tidak ada file inisialisasi yang diproses. Bendera ini
harus menjadi argumen pertama yang diberikan pada baris perintah, semua contoh lainnya akan menjadi
diabaikan.
-R server_prinsipal
Dukungan Kerberos: Menentukan a Server utama untuk digunakan untuk jaringan (Kerberos)
otentikasi, jika nama server dalam file antarmuka berbeda dari server asli
Nama.
Lihat bagian Dukungan Kerberos di bawah untuk detailnya.
-s colsep
Penyebab string colsep untuk digunakan untuk membatasi kolom output kolom SQL, ini
default ke " ".
-S server
Nama Sybase Server untuk menghubungkan, defaultnya adalah eksternal
variabel lingkungan $DSQUERY. Jika tidak -S atau $DSQUERY disetel kemudian default ke
"SIBASE". Nilai ini juga dapat disetel melalui variabel internal $DSQUERY.
-t [penyaring]
Memungkinkan penyaringan kumpulan perintah melalui program eksternal, menyaring, dan sebelum
sedang dikirim ke SQL Server. Jika menyaring tidak diberikan, maka $filter_prog digunakan
(defaultnya adalah 'm4 -'). Nilai ini juga dapat disetel melalui $filter dan $filter_prog
variabel.
-nilai T
Menentukan batas waktu login (mirip dengan flag -l isql). Jika set menentukan nomor
detik sqsh akan menunggu sebelum waktu permintaan login habis. Peta ke
$login_timeout variabel.
-U nama pengguna
Sybase nama pengguna untuk terhubung ke database sebagai, default ini adalah nama pengguna dari
pengguna berjalan sqsh. itu nama pengguna juga dapat diatur melalui variabel $username.
-v Menampilkan nomor versi, $version, dan exit.
-V [bcdimoqru]
Dukungan Kerberos: Tentukan opsi keamanan yang akan digunakan.
Lihat bagian Dukungan Kerberos di bawah untuk detailnya.
-w lebar
keluaran maksimum lebar dari set hasil yang ditampilkan, ini default ke lebar layar Anda
dalam mode interaktif.
-X Memulai koneksi login ke server dengan enkripsi kata sandi sisi klien (jika
didukung). Jika SQL Server tidak mengenali opsi ini, atau jika versi
CT-Lib digunakan untuk mengkompilasi sqsh tidak mendukung opsi ini, maka itu akan diabaikan.
Opsi ini juga dapat diatur menggunakan variabel lingkungan $encryption.
-y direktori
Menentukan SYBASE direktori untuk menggunakan selain nilai $SYBASE untuk menemukan
file antarmuka.
-z bahasa
Menentukan alternatif bahasa untuk menampilkan perintah dan pesan sqsh. Tanpa -z
bendera, bahasa default server akan digunakan. Ini juga dapat diatur menggunakan
$variabel bahasa.
-Z [detik | default | tidak ada]
Dukungan Kerberos: Tentukan mekanisme keamanan yang akan digunakan.
Lihat bagian Dukungan Kerberos di bawah untuk detailnya.
argumen...
Jika sqsh dijalankan dengan -i flag yang menentukan file input yang akan diproses (daripada
memulai sesi interaktif), argumen dapat diberikan pada baris perintah untuk
diteruskan ke file input. Argumen ini dapat diakses menggunakan variabel ${0},
${1}, ... (lihat Variabel bagian, di bawah, untuk informasi lebih lanjut).
Inisialisasi
Saat startup, sqsh menginisialisasi semua variabel lingkungan internal, perintah, dan alias
ke nilai defaultnya, kemudian terlihat di file konfigurasi seluruh sistem, /etc/sqshrc,
diikuti oleh file konfigurasi lokal $HOME/.sqshrc (ini dapat diganti melalui
variabel lingkungan eksternal SQSHRC). Jika file ini ditemukan maka akan dieksekusi seperti
skrip akan menggunakan -i bendera.
.sqsrc file mungkin berisi apa pun yang biasanya dapat diketik pada prompt, namun
perlu dicatat bahwa pada saat file ini dibaca sqsh belum membuat
koneksi ke database, namun sebagian besar perintah yang melakukan aktivitas database, seperti:
\Pergilah akan mencoba membuat koneksi database saat dijalankan (mungkin juga akan meminta Anda
untuk kata sandi jika perlu). Juga, jika aktivitas basis data diperlukan dalam startup ini
file, file \Menghubung perintah (lihat PERINTAH, di bawah) dapat dieksekusi.
Setelah .sqsrc file telah dieksekusi, sqsh kemudian mem-parsing opsi baris perintah apa pun (dengan demikian
variabel apa pun yang disetel di Anda .sqsrc file mungkin ditimpa oleh opsi baris perintah).
Setelah itu, jika sqsh dijalankan dalam mode interaktif (yaitu tanpa -i dan jika stdin adalah
dilampirkan ke tty), kemudian mencari .sqsh_history dan memuat konten file itu
ke dalam buffer sejarah ini (lihat BUFFER, di bawah).
Segera sebelum membuat koneksi ke database (baik saat startup, atau
secara eksplisit \Menghubung or \sambungkan kembali perintah), file $HOME/.sqsh_session dieksekusi.
Nama file ini dapat diganti menggunakan variabel $session.
perintah line
Ketika sebuah baris pertama kali dibaca oleh sqsh, kata pertama dipisahkan dari baris. Dunia ini
kemudian diperluas dari semua variabel (lihat Variabel Substitusi, di bawah), diikuti dengan perintah
ekspansi (lihat perintah Substitusi, di bawah). Kata pertama dari string yang dihasilkan adalah
kemudian dianalisis untuk melihat apakah itu valid sqsh perintah atau alias.
sqsh baris perintah mengikuti banyak aturan yang sama seperti Bourne shell, memungkinkan file
redirection, pipelining, substitusi perintah, dan back-grounding melalui sintaks yang sama.
komentar
Setiap baris yang dimulai dengan a # diikuti oleh karakter non-alfanumerik (karakter apa pun selain
dari 0-9, az, AZ, dan _) menyebabkan seluruh baris diabaikan. Karena kemungkinan
bertabrakan dengan nama tabel temp khusus sesi T-SQL, baris tidak akan diabaikan jika
karakter pertama setelah #, adalah alfanumerik.
Mengutip
Mengutip digunakan untuk mencegah interpretasi kata kunci atau karakter khusus ke sqsh,
seperti spasi, ekspansi variabel, atau substitusi perintah. Ada tiga jenis
mengutip, melarikan diri, kutipan tunggal, dan tanda kutip ganda.
Melampirkan karakter dalam tanda kutip tunggal mempertahankan interpretasi literal masing-masing
karakter yang terkandung dalam tanda kutip. Kutipan tunggal mungkin tidak muncul dalam tanda kutip tunggal,
bahkan ketika didahului oleh pelarian. Sebagai contoh:
1> \echo Saya tidak dapat memperluas '$username'
output
Saya tidak dapat memperluas $username
Karakter \\ digunakan untuk menghindari makna (dan dengan demikian mencegah interpretasi) dari
karakter segera mengikuti mereka. Karakter \ itu sendiri dapat diloloskan. Untuk
contoh:
1> \echo Saya tidak dapat memperluas '$username'
output
Saya tidak dapat memperluas $username
Karakter escape juga dapat digunakan untuk keluar dari baris baru untuk melakukan baris
kelanjutan, dalam hal ini baris baru dibuang dan baris lanjutan adalah
otomatis ditambahkan ke baris sebelumnya, misalnya:
1> \echo Halo \
-> Dunia!
Halo Dunia!
Melampirkan karakter dalam tanda kutip ganda mempertahankan arti literal dari semua karakter
di dalamnya dengan pengecualian $, ', dan \. Kutipan ganda mungkin terkandung di dalam
tanda kutip ganda dengan menghindarinya.
1> \echo "\\"Saya tidak bisa menyangkalnya, saya suka $username\\", katanya"
mencetak
"Aku tidak bisa menyangkalnya, aku suka abu-abu", katanya
Perluasan
Setelah baris input telah dibaca, sqsh mencoba untuk memperluas garis alias apa pun (lihat
Mengasingkan, di bawah), setelah itu ia mencoba untuk menentukan apakah garis itu dimulai dengan a
kata kunci perintah. Setelah sebuah baris ditentukan untuk memuat nama perintah, ia memiliki dua
jenis ekspansi yang dilakukan sampai itu: variabel substitusi, Diikuti oleh Command
substitusi masing-masing. Setelah ekspansi ini, baris perintah dipisahkan menjadi
kata-kata dan perintah dijalankan.
Variabel Substitusi
Karakter $ digunakan untuk menunjukkan substitusi variabel atau ekspansi dalam sebuah kata.
Variabel-variabel ini dapat diberi nilai oleh \mengatur perintah seperti ini:
1> \set nama=nilai
nama dapat berupa karakter atau garis bawah diikuti oleh kombinasi karakter, angka,
atau garis bawah, dan tidak boleh mengandung karakter khusus, seperti (') dan (")
pembatasan karakter pertama menjadi digit diperkenalkan karena SQL memungkinkan
representasi tipe data uang sebagai $nn.nn di mana n adalah angka.
nilai boleh berisi apa saja, namun jika ingin menyertakan spasi, maka harus
dikutip (lihat Kata-kata & Mengutip, di atas). Perhatikan bahwa untuk mencegah perluasan a
variabel menggunakan tanda kutip tunggal, atau dua \, seperti berikut:
1> \echo \\$nama
$nama
Variabel dapat direferensikan dengan salah satu dari dua cara:
$variable Dengan cara ini semua karakter, angka, dan garis bawah diperlakukan sebagai nama
variabel sampai tipe karakter lain tercapai (baik karakter khusus, atau
ruang putih). ${variable} Tanda kurung hanya diperlukan jika variabel diikuti oleh a
huruf, angka, atau garis bawah yang tidak boleh ditafsirkan sebagai bagian dari namanya. Perhatikan bahwa
efek yang sama dapat dicapai dengan menggunakan tanda kutip ganda.
Perlu dicatat bahwa karena variabel diperluas sebelum melanggar perintah
baris menjadi kata-kata, jika isi variabel mengandung spasi putih, mereka diperlakukan sebagai
signifikan oleh parser. Dalam contoh berikut:
1> \set x="1 2 3"
1> \echo $x
itu \gema perintah menerima tiga argumen, "1", "2", dan "3", meskipun tampaknya
hanya satu argumen yang diberikan padanya. Perilaku ini konsisten dengan sebagian besar shell (seperti
csh, bourne shell, dll.).
perintah Substitusi
persegi mendukung bentuk ekspansi kedua yang disebut Command substitusi. Bentuk ini
ekspansi menggantikan perintah pada baris perintah dengan output dari UNIX eksternal
memerintah. Perluasan ini dapat dicapai dengan menempatkan baris perintah yang akan dieksekusi di
tanda kutip kembali (`). Sebagai contoh:
1> \set password=`/sybase/bin/getpwd $DSQUERY`
1> \echo $kata sandi
suka acar
Contoh ini, program eksternal /sybase/bin/getpwd dieksekusi dengan arus
isi variabel lingkungan $DSQUERY, seluruh ekspresi kemudian diganti dengan
keluaran dari dapatkanpwd (seperti acar) sebelum melaksanakan \mengatur memerintah. Secara default,
output dari perintah yang diganti pertama-tama dipecah menjadi kata-kata sesuai dengan isi
variabel $ifs sebelum dirakit kembali ke baris perintah. Jadi, oleh
mengesampingkan konten $jika Anda dapat memengaruhi perilaku proses substitusi.
Sebagai contoh:
1> \set ifs=":"
1> \echo `echo hello:how:are:you`
Halo apa kabarmu
Mekanisme ini sering berguna untuk mem-parsing file input, seperti: / etc / passwd ke
bidang.
Input / Output Redirection
Seperti shell Bourne standar (dan kebanyakan shell lainnya, dalam hal ini), input perintah
dan output dapat diarahkan menggunakan notasi khusus yang ditafsirkan oleh shell. NS
berikut mungkin muncul di mana saja di baris perintah, tetapi hanya pengalihan yang ditentukan
sebelumnya ke pipa (|) sebenarnya memiliki efek pada perilaku perintah sqsh internal
(mengacu pada Pipa, di bawah).
<kata
Gunakan file kata sebagai input standar untuk perintah. Biasanya sangat sedikit sqsh
perintah sebenarnya membaca apa pun dari stdin, jadi ini biasanya tidak berpengaruh (lihat
itu \lingkaran memerintah).
[n]>kata
Kaitkan output dari deskriptor file n (stdout, secara default) dengan file kata. Jika ini
file tidak ada itu dibuat; jika tidak maka dipotong menjadi nol panjang.
[n]>>kata
Tambahkan output dari deskriptor file n (stdout, secara default) ke file kata, menciptakannya
jika tidak ada.
[m]>&n
Arahkan ulang output dari deskriptor file m (stdout secara default), ke output yang sama dengan file
deskriptor n. Urutan pengalihan ditentukan pada baris perintah adalah
signifikan, karena pengalihan dievaluasi dari kiri ke kanan. Sebagai contoh:
1> pilih * dari pilih /* kesalahan sintaks */
2> \go >/tmp/output 2>&1
Pernyataan ini pertama-tama mengarahkan ulang output standar dari \Pergilah perintah ke file
/tmp/keluaran, lalu mengarahkan stderr ke file yang sama. Jadi, ketika perintah gagal,
output kesalahan akan ditemukan di file /tmp/keluaran.
Namun, dengan mengubah urutan pengalihan, Anda dapat sepenuhnya mengubah artinya:
1> pilih * dari pilih
2> \go 2>&1 >/tmp/output
Msg 156, Level 15, Negara 1
Server 'SQSH_TEST', Jalur 1
Sintaks salah di dekat kata kunci 'pilih'.
Dalam hal ini, keluaran kesalahan akan dikirim ke stdout, sedangkan apa yang akan pergi ke
stdout dialihkan ke /tmp/keluaran (pada kasus ini /tmp/keluaran akan kosong).
Silakan baca bagian di Latar Belakang Jobs, di bawah, untuk info detail tentang interaksi
antara pengalihan file dan pekerjaan latar belakang.
Pipa
A pipa saluran adalah urutan dari satu atau lebih perintah yang dipisahkan oleh tanda '|', setiap perintah menggunakan
stdout dari program sebelumnya untuk stdinnya sendiri. Namun perintah pertama di
pipa saluran harus berupa perintah sqsh, dan semua perintah lainnya harus eksternal (atau UNIX)
program. Perintah sqsh apa pun dapat dijalankan melalui pipa, meskipun untuk banyak dari mereka (seperti
sebagai \mengatur perintah) tidak masuk akal untuk melakukan ini. Berikut ini adalah
contoh dari a pipa saluran:
1> pilih * dari syslogins
2> \pergi | lagi
Perintah ini menyebabkan kumpulan hasil yang dihasilkan oleh \Pergilah perintah untuk dikirim ke lebih(1)
program, yang kemudian mengirimkannya ke layar Anda, berhenti sejenak di setiap layar yang penuh dengan data (ini adalah
alasan utama saya menulis sqsh).
Ada beberapa kekhasan dalam cara menangani sqsh pipa sebagai lawan
dengan cara di mana shell Bourne standar memperlakukan mereka.
Segala sesuatu yang mengikuti kemunculan pertama karakter pipa (|) dipecah menjadi putih-
kata yang dibatasi spasi, termasuk perintah shell khusus seperti '2>&1' dan lainnya
kejadian pipa. Jika ada variabel yang terkandung dalam kata-kata ini, mereka adalah
diperluas mengikuti aturan kutipan yang sama seperti yang dijelaskan dalam Kata-kata & Mengutip, di atas, dengan
satu pengecualian bahwa semua tanda kutip dibiarkan di tempatnya. Kata-kata ini kemudian disusun kembali menjadi
string tunggal dan dikirim ke / Bin / sh untuk diproses.
Singkatnya, sqsh tidak berusaha menafsirkan apa yang mengikuti pipa pertama, melainkan
dikirim ke shell "nyata" untuk melakukan pekerjaan itu. Alasan di balik ini adalah karena saya malas
dan tidak ingin menulis semua penanganan variabel aneh yang sama, &&'ing, ||'ing,
pengelompokan, dan aturan ekspansi variabel yang didukung oleh Bourne shell, dan sebagai gantinya saya biarkan
Bourne melakukan pekerjaan kotor.
Keuntungan dari metode ini adalah Anda dapat melakukan beberapa hal yang sangat kompleks setelah
pipa, seperti:
1> pilih * dari syscolumns
2> \pergi | (CD / Tmp; kompres -c > sysolumns.Z)
Bukannya saya bisa memikirkan alasan sebenarnya untuk melakukan ini...tetapi Anda bisa melakukannya jika Anda mau.
Latar Belakang Jobs
Latar belakang menyediakan mekanisme di mana Anda dapat menjalankan perintah sqsh sebagai latar belakang
proses dan terus bekerja saat itu berjalan. Sqsh menawarkan dua jenis latar belakang:
Ditangguhkan
Dalam mode ini sqsh mengalihkan semua output dari pekerjaan latar belakang ke file sementara
(terletak di direktori $tmp_dir) saat pekerjaan sedang berjalan, sehingga outputnya adalah
tidak bercampur dengan apa yang sedang Anda kerjakan. Ketika pekerjaan selesai, Anda
diberitahu tentang penyelesaian proses dan hasilnya dapat dilihat menggunakan: \menunjukkan
perintah.
Tidak Ditangguhkan
Ini sesuai dengan ide umum dari proses latar belakang di bawah UNIX. Dalam mode ini
output pekerjaan tidak secara implisit diarahkan untuk Anda, dan dengan demikian dapat menjadi
berbaur dengan apa yang Anda kerjakan saat ini. Pilihan mode yang Anda pilih adalah
dapat dipilih melalui variabel $defer_bg (yang defaultnya adalah '1', atau 'On'). Biasanya
satu-satunya alasan untuk tidak menggunakan tangguhan mode adalah untuk mencegah set hasil besar terisi
sistem berkas Anda.
Untuk menentukan bahwa pekerjaan dijalankan di latar belakang, cukup tambahkan & di akhir
baris perintah, sebagai:
1> sp_long_arduous_proc 1, 30
2> \pergi &
Pekerjaan #1 berjalan [xxxx]
1>
Ketika sqsh menemukan & di akhir baris perintah, ia memunculkan proses anak (dengan
id proses Unix dari xxxx) kemudian proses anak memanggil \Pergilah. \Pergilah perintah kemudian
membuat koneksi baru ke database (menggunakan nilai $DSQUERY saat ini,
$username, $password variabel) dan mengeksekusi kueri yang ditampilkan. Saat pekerjaan sedang dijalankan
perintah \pekerjaan \tunggu dan \membunuh dapat digunakan untuk memantau atau mengubah pekerjaan yang sedang berjalan
(lihat bagian PERINTAH, di bawah). Ketika pekerjaan apa pun selesai, sqsh akan menampilkan pemberitahuan,
seperti:
1> pilih jumlah (*) dari
Pekerjaan #1 selesai (keluaran tertunda)
2>
Ketika suatu pekerjaan selesai, jika tidak ada keluaran, itu segera dianggap dihentikan dan
tidak akan muncul dalam daftar pekerjaan yang sedang berjalan saat ini. Namun jika pekerjaan lengkap memiliki
keluaran tertunda, itu akan terus ditampilkan sebagai pekerjaan yang sedang berjalan (dengan \pekerjaan perintah)
sampai a \menunjukkan digunakan untuk menampilkan hasil pekerjaan.
Ada bug yang diketahui dengan latar belakang pekerjaan saat digunakan bersama dengan pipa, tolong
mengacu kepada BUG bagian di akhir manual.
Buffer
Secara normal isql hanya dua buffer yang dipertahankan; buffer tempat Anda berada saat ini
pengetikan, dan buffer yang berisi batch terakhir yang dieksekusi (ini disimpan untuk saat
Anda menjalankan 'vi', atau 'edit').
Sqsh memelihara beberapa set buffer yang berbeda:
Kerja Penyangga: Buffer ini berhubungan langsung dengan isql penyangga kerja. Itu buffernya
di mana Anda memasukkan batch saat ini sebelum mengirimnya ke database.
Sejarah Penyangga: Ini sebenarnya adalah rantai 0 atau lebih buffer (dapat dikonfigurasi oleh
$histsize variable) dari $histsize batch terakhir yang telah dijalankan. Penyangga ini hanya
dipertahankan ketika sqsh dijalankan dalam mode interaktif; yaitu, kumpulan yang dieksekusi menggunakan -i
flag, atau dieksekusi melalui pengalihan dari prompt UNIX tidak akan dipertahankan dalam riwayat
(Lagi pula, mereka sudah ada di file di suatu tempat).
Jika variabel $hissave bernilai True (lihat bagian KHUSUS VARIABEL), dan sqsh ada di
mode interaktif, maka buffer riwayat saat ini ditulis ke $HOME/.sqsh_history ketika
Anda keluar. File ini kemudian dibaca kembali ke sqsh saat berikutnya dimulai secara interaktif
mode.
Bernama Buffer: Setiap saat selama sesi Kerja Penyangga, atau salah satu dari Sejarah Buffer
dapat disalin ke buffer bernama menggunakan \buf-salin perintah (lihat bagian PERINTAH,
di bawah). Buffer ini hilang saat Anda keluar (namun Anda dapat menggunakan \buf-simpan perintah untuk
simpan buffer bernama ke file).
Penyangga Steno
Banyak perintah memungkinkan semua buffer ini direferensikan secara singkat, sangat
mirip dengan cara itu csh(1) referensi sejarah perintahnya. Salah satu dari singkatan ini
bisa digunakan untuk apa saja penyangga parameter yang dijelaskan dalam PERINTAH bagian:
!. Buffer kerja saat ini.
!! Perintah terakhir dieksekusi (perhatikan, ini tidak tersedia dalam mode non-interaktif karena
tidak menyimpan riwayat).
!+ Entri riwayat berikutnya yang tersedia. Ini adalah buffer tulis saja, jadi biasanya hanya
berlaku untuk perintah seperti \buf-salin.
!n Mengacu pada sejarah #n. Setiap kali sebuah entri ditulis ke dalam sejarah, entri tersebut diberi
jumlah yang meningkat dari entri terakhir, dengan tulisan singkat ini Anda dapat merujuk apa saja
diberikan sejarah.
!buf_nama
Hanya untuk konsistensi ini disediakan sebagai referensi ke buffer bernama nama_buf, Namun
nama_buf tanpa awalan '!' juga dianggap benar.
nama_buf
Mengacu pada buffer bernama nama_buf.
Variabel
Variabel juga dapat terkandung dalam buffer kerja. Dalam keadaan ini
variabel tetap tidak diperluas sampai buffer dikirim ke database (melalui \Pergilah
perintah), selama waktu itu mereka diperluas dan diganti dalam buffer. Ini
perilaku dapat diubah melalui variabel $expand. (Lihat Khusus Variabel, di bawah).
Berikut ini adalah contoh penggunaan variabel dalam buffer:
1> \set table_name=syscolumns
1> pilih count(*) dari $table_name
2> \pergi
Ini setara dengan melakukan kueri:
1> pilih count(*) dari syscolumns
2> \pergi
secara langsung. Biasanya fitur ini berguna untuk menggunakan kembali kompleks besar dimana klausa, atau
nama kolom panjang.
Aturan mengutip berlaku sama di buffer SQL seperti yang mereka lakukan di baris perintah. Artinya, apapun
variabel yang terkandung dalam tanda kutip ganda (") diperluas dan variabel yang terkandung di dalam
tanda kutip tunggal (') tidak tersentuh. Dengan demikian:
1> pilih "$username", '$username'
2> \pergi
membuahkan hasil
---- ---------
abu-abu $namapengguna
perintah Substitusi
Seperti baris perintah, output dari perintah UNIX juga dapat diganti dalam SQL
buffer pada saat eksekusi (sekali lagi, hanya jika variabel $expand disetel ke 1, atau true). Di dalam
keadaan ini perintah yang terkandung dalam tanda kutip kembali (`) diganti dengan outputnya
sebelum meneruskan buffer ke SQL server. Sebagai contoh:
1> pilih count(*) dari `echo syscolumns`
2> \pergi
Menyebabkan string 'echo syscolumns' diganti dengan kata syscolumn sebelum
menjalankan perintah. Perlu dicatat bahwa isi dari perintah yang diganti adalah
hanya dieksekusi pada saat \Pergilah perintah, bukan ketika baris SQL dimasukkan.
Aliran Kontrol
Baru dengan sqsh versi 2.0, adalah kemampuan untuk melakukan flow-of-control dasar dan
fungsi menggunakan \jika, \ketika, \melakukan, dan \ func perintah.
Blok & SQL Buffer
Semua perintah flow-of-control sqsh berbasis blok. Artinya, jika ekspresi uji dari
perintah terpenuhi, maka blok skrip sqsh akan dieksekusi. Misalnya definisi
dari \jika perintahnya adalah:
\jika ekspresi
blok
\fi
Kredensial mikro blok dapat berupa sejumlah baris perintah sqsh, SQL, atau pernyataan flow-of-control
akan dieksekusi jika ekspresi mengevaluasi ke kondisi sukses (0).
Masing-masing blok memiliki buffer SQL sendiri selama blok dieksekusi. Itu adalah,
pernyataan berikut:
1> /*
2> ** PENGGUNAAN JIKA BLOK YANG TIDAK BENAR
3> */
4> pilih jumlah (*) dari
5> \jika [ $x -gt 10 ]
6> sysobjects
7> \lainnya
8> sysindexes
9> \fi
5> pergi
akan menghasilkan:
Msg 102, Level 15, Negara 1
Server 'bps_pro', Jalur 1
Sintaks salah di dekat 'dari'
karena string 'sysobjects' atau 'sysindexes' dimasukkan ke dalam buffer SQL mereka sendiri.
Buffer ini dibuang segera setelah akhir blok tercapai, dan karena a \Pergilah
perintah tidak terkandung di dalam blok, tidak ada kesalahan tambahan yang dihasilkan.
Jadi, cara yang benar untuk menulis ekspresi di atas adalah:
1> /*
2> ** PENGGUNAAN YANG BENAR JIKA BLOK
3> */
4> \jika [ $x -gt 10 ]
5> pilih count(*) dari sysobjects
6> pergi
7> \lainnya
8> pilih count(*) dari sysindexes
9> pergi
10> \fi
atau bahkan:
1> /*
2> ** PENGGUNAAN YANG BENAR JIKA BLOK
3> */
4> \jika [ $x -gt 10 ]
5> \set table_name=sysobjects
6> \lainnya
7> \set table_name=sysindexes
8> \fi
4> pilih * dari $table_name
5> pergi
Juga, perhatikan bahwa nomor baris yang ditampilkan di prompt sqsh diatur ulang ke saat ini
posisi di buffer SQL luar setelah mencapai \fi penghenti.
Ekspresi
Semua pernyataan flow-of-control di sqsh mengambil dan ekspresi untuk menentukan blok dari kode
untuk mengeksekusi. Sama seperti Bourne Shell UNIX, ini ekspresi hanyalah sebuah sistem operasi
program yang dijalankan oleh sqsh. Jika perintah mengembalikan status sukses (panggilan keluar(0)),
maka dianggap berhasil.
Misalnya dengan pernyataan berikut:
\sementara menguji $x -lt 10
blok
\selesai
akan mengeksekusi isi dari blok sedangkan nilai $x saat ini kurang dari 10. Catatan
bahwa 'test' adalah program UNIX standar untuk melakukan perbandingan string atau numerik dasar
(antara lain). Juga, tidak seperti banyak shell, sqsh tidak memiliki versi 'test' bawaan.
Sqsh, bagaimanapun, mendukung bentuk pendek standar 'test':
\sementara [ $x -lt 10 ]
blok
\selesai
Dengan ekspresi ini kurung kurawal terbuka ('[') digantikan oleh parser sqsh dengan 'test', dan
kurung kurawal (']') dibuang.
Tidak didukung Ekspresi
Saat ini sqsh tidak mendukung operator predikat shell standar '&&' dan '||'.
Ini dapat dilakukan seperti:
\jika sh -c "cmd1 && cmd2"
blok
\selesai
\jika pernyataan
\jika perintah melakukan eksekusi bersyarat dari sqsh blok berdasarkan hasil
ekspresi yang disediakan:
\jika expr1
block1
\elif expr2
block2
\lain
block3
\fi
Dalam contoh ini, jika ekspresi expr1 bernilai benar, maka blok block1 is
dievaluasi. Jika tidak, jika ekspresi expr2 mengevaluasi ke true, lalu blok block2 is
dievaluasi. Akhirnya, jika semua tes lainnya gagal block3 dievaluasi.
Perhatikan bahwa, tidak seperti Bourne Shell, setiap \jika perintah harus disertai dengan trailing \fi
penyataan. Juga pengurai sqsh tidak terlalu cerdas: The \lain dan \fi Laporan
harus menjadi satu-satunya konten pada baris di mana mereka muncul, dan mereka tidak boleh di-alias ke
nama lain.
\sementara pernyataan
\ketika perintah mengeksekusi a blok kode sqsh untuk sementara ekspresi yang disediakan
tetap benar.
\sementara expr
blok
\selesai
Dalam contoh ini, sementara ekspresi cepat bernilai benar, maka blok blok is
dievaluasi.
\merusak pernyataan dapat digunakan untuk keluar dari yang paling dalam \ketika or \untuk lingkaran (lebih
on \untuk bawah).
\untuk pernyataan
\untuk perintah mengeksekusi a blok kode sqsh untuk masing-masing kata dipasok:
\untuk var di Word ...
blok
\selesai
Untuk setiap kata disediakan, nilai variabel $var diatur ke kata dan blok of
kode dieksekusi. Eksekusi berakhir ketika tidak ada lagi kata dalam daftar.
Seperti \ketika itu \merusak pernyataan dapat digunakan untuk keluar dari eksekusi paling dalam
Loop.
\lakukan perintah
\melakukan perintah adalah jenis persilangan antara pernyataan dan perintah.
Ini adalah bentuk \Pergilah (lihat di bawah untuk detail tentang \Pergilah perintah) di mana a blok dari sqsh
kode dapat dieksekusi untuk setiap baris data yang dikembalikan dari kueri. Ketika blok is
dieksekusi, variabel sqsh khusus #[0-9]+ (hash diikuti oleh angka) dapat digunakan untuk
referensi nilai dalam kueri yang dikembalikan. Misalnya perintah berikut:
pilih id, nama dari master..sysdatabases
\melakukan
\echo "Database pemeriksaan #2, dbid #1"
gunakan #2
go
pos pemeriksaan
go
\selesai
akan menyebabkan perintah CHECKPOINT dikeluarkan di setiap database di server.
Opsi baris perintah
\melakukan perintah membuat koneksi baru untuk digunakan oleh blok kode kapan
dieksekusi. Secara default, koneksi ini dibuat ke server saat ini (saat ini
pengaturan $DSQUERY), menggunakan nama pengguna saat ini ($ username) dan kata sandi saat ini
($kata sandi). Namun, perilaku ini dapat diganti menggunakan opsi baris perintah:
-D basis data
Menetapkan koneksi ke database sebagai yang disediakan Database.
-U nama pengguna
Menetapkan koneksi ke server sebagai yang disediakan nama pengguna.
-P kata sandi
Membuat koneksi ke server menggunakan yang disediakan kata sandi (yang mana
semoga kata sandi yang valid untuk yang disediakan nama pengguna).
-S server
Menetapkan koneksi ke yang disediakan Server.
-n Jangan membuat koneksi untuk digunakan oleh \melakukan lingkaran. Bendera ini saling eksklusif
dengan bendera di atas. Dengan tanda ini diaktifkan, upaya untuk melakukan perintah basis data
dalam blok akan menghasilkan banyak kesalahan CT-Library.
Variabel kolom
Seperti disebutkan di atas, nilai kolom dalam kumpulan hasil saat ini dapat ditentukan
menggunakan variabel #[0-9]+ khusus. Jadi, variabel #1 akan berisi nilai
kolom nomor satu dari kumpulan hasil saat ini, dan #122 dapat berisi nilai dari
Kolom ke-122 (nomor kolom dimulai dari 1).
Dalam kasus bersarang \melakukan loop, nilai-nilai di tingkat bersarang sebelumnya dapat dirujuk oleh
cukup tambahkan tambahan '#' untuk setiap level bersarang sebelumnya, seperti:
pilih id, nama dari sysobjects
\melakukan
pilih nama, indid dari sysindexes di mana id = #1
\melakukan
\echo "Tabel ##2 (objid ##1) memiliki indeks #1"
\selesai
\selesai
jelas, ini bukan cara Anda melakukan kueri ini dalam kehidupan nyata, tetapi Anda mendapatkan idenya.
Saat memperluas kolom dengan nilai NULL, variabel kolom akan diperluas menjadi kosong
rangkaian (''). Juga, referensi ke kolom yang tidak ada, seperti #0, akan menghasilkan kolom yang kosong
rangkaian ('').
Seperti variabel sqsh biasa (yang direferensikan dengan '$'), variabel kolom tidak akan
diperluas ketika terkandung dalam tanda kutip tunggal.
Aborsi
Jika \merusak or \kembali perintah dikeluarkan selama pemrosesan a \melakukan lingkaran,
kueri saat ini akan dibatalkan, koneksi yang digunakan oleh loop akan ditutup (kecuali jika
-n bendera disediakan) dan \melakukan lingkaran akan dibatalkan.
\func perintah
\ func perintah digunakan untuk mendefinisikan blok kode sqsh yang dapat digunakan kembali sebagai suatu fungsi. Fungsi
didefinisikan seperti ini:
\statistik fungsi
\jika [ $# -ne 1 ]
\echo "gunakan: stats [on | off]"
\kembali 1
\fi
setel statistik io ${1}
setel waktu statistik ${1}
go
\selesai
Dalam contoh ini, fungsi baru dibuat disebut statistik yang mengharapkan satu argumen,
baik "hidup" atau "mati". Dengan menggunakan argumen ini, statistik akan mengaktifkan atau menonaktifkan berbasis waktu dan
Statistik berbasis I/O.
Setelah ditetapkan, fungsi tersebut dapat dipanggil seperti ini:
\statistik panggilan aktif
Menyebabkan semua instance ${1} diganti dengan argumen baris perintah pertama ke
statistik.
Opsi baris perintah
Saat ini hanya satu argumen baris perintah yang tersedia untuk \ func perintah.
-x Menyebabkan fungsi diekspor sebagai a sqsh memerintah. Artinya, fungsinya mungkin
dipanggil langsung tanpa memerlukan \panggilan memerintah. Perilaku ini opsional
karena nama perintah berpotensi bertentangan dengan kata kunci T-SQL. Saat menggunakan ini
flag disarankan agar Anda menambahkan garis miring terbalik (\) ke nama fungsi Anda.
Variabel fungsi
Seperti yang ditunjukkan pada contoh di atas, beberapa variabel khusus tersedia untuk digunakan dalam
tubuh fungsi. Ini adalah:
$# Memperluas jumlah argumen yang diberikan ke fungsi atau skrip saat dipanggil.
$* Memperluas ke daftar lengkap argumen yang diberikan ke fungsi atau skrip ketika
dipanggil.
${0}..${N}
Perluas ke argumen posisi ke fungsi. ${0} adalah nama fungsi
sedang dipanggil, ${1} adalah argumen pertama, ${2} yang kedua dan seterusnya, hingga argumen
N. Perhatikan bahwa, tidak seperti kebanyakan shell, sqsh mengharuskan argumen fungsi dirujuk ke
menggunakan sintaks kurung kurawal khusus (${1}, bukan $1). Alasan untuk ini adalah
bahwa $1 adalah nilai UANG yang valid dan menggunakan kurung kurawal menghilangkan ambiguitas ini.
$? Setelah pemanggilan suatu fungsi, ini akan berisi nilai kembaliannya (lihat di bawah).
Nilai kembali
Suatu nilai dapat dikembalikan dari suatu fungsi melalui \kembali perintah.
Seperti:
\kembali N
Where N adalah nilai positif. Nilai pengembalian ini tersedia untuk pemanggil fungsi
melalui $? variabel. Sebagai konvensi, nilai kembalian 0 digunakan untuk menunjukkan keberhasilan.
If \kembali tidak dipanggil secara eksplisit, nilai pengembalian default adalah nilai saat ini dari
$? variabel (yang diatur ke 0 pada saat masuknya fungsi). Jadi, jika ada pernyataan SQL
dipanggil dalam fungsi, nilai pengembalian default dari $? akan menjadi kesalahan terakhir
kode yang dikembalikan selama pemrosesan pernyataan SQL.
Kerberos Bantuan
Dimulai dengan versi 2.1.6, sqsh menyediakan opsi baris perintah yang sama dengan isql untuk menangani
Otentikasi jaringan Kerberos.
Dalam versi 2.1.5 dukungan Kerberos eksperimental ditambahkan menggunakan opsi -K dan -R. -K
hanyalah sebuah tombol untuk mengaktifkan Kerberos. Dalam sqsh 2.1.6 implementasi yang lebih maju dari
otentikasi jaringan diperkenalkan, meskipun masih eksperimental.
Dengan menggunakan parameter -K, -R, -V, -Z Anda dapat menggunakan keamanan jaringan yang Anda tentukan
pengaturan (libtcl.cfg). Opsi bernama identik dengan yang ditentukan untuk isql.
-K keytab_file
Nama keytab_file untuk DCE.
-R server_prinsipal
Nama utama server ketika nama server yang ditentukan dalam antarmuka berbeda dari aslinya
nama server.
-V [bcdimoqru]
Tentukan opsi keamanan yang akan digunakan dengan mekanisme keamanan. Setiap karakter mewakili
layanan keamanan tertentu.
-Z [detik | default | tidak ada]
Minta mekanisme keamanan yang ditentukan untuk Kerberos, DCE, atau PAM di file libtcl.cfg Anda.
penggunaan detikmech untuk menentukan nama entri KEAMANAN atau kegagalan untuk yang pertama tersedia
entri di libtcl.cfg. None harus ditentukan untuk menonaktifkan otentikasi jaringan atau mengatur ulang
kemungkinan nilai yang ada dalam variabel $detik or $pilihan_aman.
Misalnya, menghubungkan ke server menggunakan Kerberos (yang merupakan default, yaitu
entri pertama di libtcl.cfg tab [SECURITY] dalam contoh ini):
~> sqsh -SSYB1502 -Uuser1 -RFC6A1502 -Z
\connect: Sesi yang diautentikasi jaringan berakhir pada:
16 Feb 2010 15:28:39 (11764 dtk)
SYB1502.user1.master.1> pilih @@namaserver,@@authmech,
show_sec_services();
---------------- ----------- ----------------------- -----------
FC6A1502 kerberos unifiedlogin delegasi mutualauth
kerahasiaan integritas
deteksi ulang deteksi
Perhatikan bahwa nama asli server (@@namaserver) berbeda dari nama server di
antarmuka file, jadi kita harus menentukan nama utama melalui -R parameter. Kapan
Anda tidak menentukan -V parameter bersama-sama dengan -Z, semua opsi keamanan yang tersedia akan
diaktifkan. Kapan -V ditentukan tanpa opsi layanan keamanan apa pun, hanya opsi u untuk
Otentikasi Jaringan akan diatur secara implisit dan mekanisme keamanan default akan
digunakan jika -Z tidak ditentukan.
[pengguna1@linux-fc6a ~]$ sqsh -SFC6A1502 -Pengguna1 -V
Buka Pesan Klien
Lapisan 7, Asal 9, Tingkat Keparahan 5, Nomor 1
ct_connect(): lapisan layanan keamanan: kontrol keamanan internal
kesalahan lapisan:
Kesalahan internal penyedia layanan keamanan -1765328352
terjadi.
[pengguna1@linux-fc6a ~]$ kinit
Kata sandi untuk pengguna1@LOCALDOMAIN:
[pengguna1@linux-fc6a ~]$ sqsh -SFC6A1502 -Pengguna1 -V
\connect: Sesi yang diautentikasi jaringan berakhir pada:
16 Feb 2010 15:28:39 (10964 dtk)
FC6A1502.user1.master.1>
Ketika koneksi berhasil, sqsh akan menyimpan nama asli dari mekanisme keamanan di
variabel $detik. Misalnya: "\echo $secmech" dapat ditampilkan csfkrb5. Parameter -V
mengambil daftar karakter dari kemungkinan nilai bcdimoqru.dll. Pilihan u memungkinkan
Otentikasi Jaringan, adalah default dan akan selalu disetel saat menggunakan -V or -Z,
ditentukan atau tidak.
b - chanbinding : Pengikatan saluran
c - kerahasiaan : Layanan kerahasiaan data
d - delegasi : Izinkan kredensial yang didelegasikan
i - integritas : Layanan integritas data
m - mutualauth : Otentikasi bersama untuk koneksi
pembentukan
o - dataorigin : Layanan stempel asal data
q - detectseq : Deteksi di luar urutan
r - detectreplay : Deteksi pemutaran ulang data
u - unifiedlogin : Otentikasi Jaringan
Silakan periksa master.dbo.syssecmechs untuk layanan yang tersedia. Tidak ada atau tidak didukung
layanan yang disediakan dengan -V diam-diam diabaikan. Jika Anda menentukan -V dan / atau -Z, sqsh mengasumsikan
otentikasi jaringan dicoba dan tidak diperlukan kata sandi.
Jika Anda memiliki koneksi yang diautentikasi jaringan dan ingin \menghubungkan kembali menggunakan ASE biasa
otentikasi dengan nama pengguna dan kata sandi, Anda harus mengatur ulang otentikasi jaringan
variabel dengan menentukan -Znone
Sebagai contoh:
[pengguna1@linux-fc6a ~]$ sqsh -SFC6A1502 -Pengguna1 -V
\connect: Sesi yang diautentikasi jaringan berakhir pada:
16 Feb 2010 15:28:39 (10764 dtk)
FC6A1502.user1.master.1> \echo $secmech csfkrb5
FC6A1502.user1.master.1> \sambungkan kembali -SASE1502 -Usa -Psybase
Buka Pesan Klien
Lapisan 7, Asal 9, Tingkat Keparahan 5, Nomor 8
ct_connect(): lapisan layanan keamanan: kontrol keamanan internal
kesalahan lapisan:
Pemeriksaan konsistensi yang dilakukan pada kredensial gagal
(status kecil 0).
FC6A1502.user1.master.1> \sambungkan kembali -SASE1502 -Usa -Psybase -Znone
ASE1502.sa.master.1>
\reconnect pertama gagal karena sqsh masih ingin mencoba otentikasi jaringan.
Namun, tidak ada prinsip pengguna untuk 'sa' dan tidak ada tiket yang disetel dan dengan demikian koneksi
gagal. Kedua \sambungkan kembali berhasil karena opsi -Znone mengatur ulang variabel yang sesuai.
Jika tiket Kerberos diperbarui dengan kinit atau alat klien lainnya, sqsh Sidang
harus melakukan \sambungkan kembali untuk menyegarkan kredensial dan untuk mencegah sesi prematur
menggugurkan. Dengan perintah \snack Anda dapat meminta interval kedaluwarsa sesi.
Tergantung pada layanan keamanan yang disetel, koneksi database mungkin ditutup
tanpa peringatan segera setelah tiket kedaluwarsa.
Lihat bab 16 "Otentikasi Eksternal" dari Panduan Administrasi Sistem Sybase
volume 1 untuk informasi lebih lanjut tentang otentikasi jaringan Kerberos, ea
PERINTAH
Baca-Eval-Cetak
Loop read-eval-print adalah jantung dari sistem sqsh dan bertanggung jawab untuk mendorong
pengguna untuk input dan menentukan apa yang harus dilakukan dengannya. Biasanya loop ini untuk
penggunaan internal saja, namun terbuka untuk pengguna karena ada beberapa materi iklan
hal-hal yang dapat dilakukan dengan mereka.
\loop [-i] [-n] [-e sql] [berkas]
\lingkaran perintah membaca input baik dari file, pernyataan SQL yang disediakan, atau dari a
pengguna (lihat opsi di bawah), menentukan apakah saluran saat ini adalah bagian dari a
Pernyataan TSQL atau perintah sqsh, dan melakukan tindakan yang sesuai. Saat dijalankan
mode interaktif \lingkaran juga bertanggung jawab untuk menampilkan prompt saat ini (lihat
$cepat bawah).
\lingkaran selesai ketika semua input telah habis (akhir file ditemukan) atau ketika
perintah, seperti \keluar meminta itu \lingkaran keluar.
-i Biasanya, jika fillet disediakan dan tidak ada, \lingkaran akan kembali dengan kesalahan
kondisi, biasanya menyebabkan sqsh keluar. Dengan menyediakan -i bendera, kontrol akan menjadi
kembali ke loop panggilan seolah-olah akhir file telah tercapai (yaitu, tanpa
kondisi kesalahan).
-n Secara default, \lingkaran akan secara otomatis mencoba untuk terhubung ke database jika a
koneksi belum dibuat melalui \Menghubung perintah. Itu -n bendera
menonaktifkan perilaku ini memungkinkan \lingkaran untuk memproses perintah yang tidak memerlukan
dukungan basis data.
-e sql
Global \lingkaran untuk memproses isi dari sql seolah-olah pengguna telah mengetiknya di
prompt dan panggilan implisit ke \Pergilah otomatis ditambahkan ke pernyataan. Jika
beberapa contoh dari -e dipasok, semuanya dikirim sebagai satu batch ke
SQL Server untuk diproses. Opsi ini tidak dapat digunakan dalam kombinasi dengan a fillet
nama juga.
fillet
Menentukan nama a fillet untuk digunakan sebagai input daripada membaca input dari
pengguna atau dari -e bendera.
Basis Data Mengakses
Mengingat ukuran dan kerumitan sqsh (lihat saja panjang halaman manual ini), itu adalah
menakjubkan betapa sedikitnya perintah manipulasi database yang sebenarnya ada. Berikut ini adalah
perintah yang mempengaruhi atau menggunakan koneksi database saat ini:
\koneksi [-c] [-D db] [-S srv] [-U pengguna] [-P pass] [-I file] [-K keytab] [-R
server_principal] [-n] [-N nama aplikasi] [-Q query_timeout] [-T login_timeout] [-V [bcdimoqru]]
[-Z [detik | default|tidak ada]]
Perintah ini digunakan terutama untuk penggunaan internal untuk membuat koneksi ke a
basis data. Jika koneksi sudah dibuat, itu tidak berpengaruh, namun jika a
koneksi belum dibuat dan $kata sandi belum diberikan, maka
kata sandi diminta dan koneksi dibuat. \Menghubung menerima berikut ini
parameter:
-c Secara default, \Menghubung perintah menggunakan isi dari $database untuk menentukan
konteks basis data yang harus digunakan saat membuat koneksi (ini adalah
digunakan oleh \sambungkan kembali untuk mempertahankan konteks basis data saat ini setelah koneksi ulang).
-c flag menekan perilaku ini dan konteks database default untuk login adalah
digunakan sebagai gantinya.
-D db
Global \Menghubung untuk mencoba secara otomatis mengalihkan konteks basis data ke db
setelah membuat koneksi.
Menggunakan bendera ini identik dengan mengatur $database variabel sebelum
membangun koneksi.
-Srv
Nama Sybase Server untuk menghubungkan, ini default ke $DSQUERY jika tidak
disediakan.
-U pengguna
Sybase pemakai untuk terhubung ke database sebagai, defaultnya adalah $ username variabel
jika tidak disediakan.
-P lulus
kata sandi untuk pemakai diperlukan untuk terhubung ke Server. Ini default ke $kata sandi if
tidak disediakan.
-saya file
Jalur lengkap Sybase alternatif interface berkas untuk digunakan.
-K keytab_file
Digunakan untuk otentikasi pengguna DCE.
-R nama_utama
Gunakan untuk otentikasi pengguna Kerberos untuk menentukan nama server principal
ketika namanya berbeda dari $DSQUERY nilai.
Lihat juga diskusi tentang dukungan Kerberos.
-n Menentukan bahwa koneksi harus menggunakan mode berantai yang sesuai dengan ANSI.
-N nama aplikasi
Tentukan nama aplikasi yang akan digunakan server untuk program_name di
tabel proses sistem.
-Q kueri_waktu habis
Tetapkan periode waktu tunggu kueri dalam hitungan detik.
-T waktu masuk_habis
Menentukan waktu tunggu maksimum untuk penyiapan sesi.
-V [bcdimoqru]
Layanan keamanan yang digunakan untuk dukungan Kerberos dan mekanisme keamanan lainnya.
-Z [detik | default | tidak ada]
Menentukan mekanisme keamanan yang akan digunakan untuk otentikasi pengguna. Sebagai contoh
csfkrb5 untuk dukungan Kerberos.
\menghubungkan kembali [-c] [-D db] [-S srv] [-U pengguna] [-P pass] [-I file] [-K keytab] [-R
server_principal] [-n] [-N nama aplikasi] [-Q query_timeout] [-T login_timeout] [-V [bcdimoqru]]
[-Z [detik|default|tidak]]
\sambungkan kembali perintah dapat digunakan untuk memaksa koneksi ulang ke database menggunakan yang baru
nama pengguna, nama server, atau kata sandi (jika diinginkan). Jika perintah ini gagal, arus
koneksi tetap (jika ada), namun jika berhasil maka arus
koneksi ditutup dan koneksi baru menjadi satu-satunya yang aktif.
Semua argumen yang diterima oleh \Menghubung juga diterima oleh \sambungkan kembali (Pada kenyataannya
\sambungkan kembali kegunaan \Menghubung untuk membuat koneksi baru).
\snack
Akan menunjukkan interval kedaluwarsa sesi untuk sesi yang diautentikasi jaringan, menggunakan
Tiket Kerberos, misalnya.
\go [opsi] [tepat]
Mengirimkan konten Kerja Penyangga ke database, membuat koneksi baru
ke database jika belum ada (dengan memanggil \Menghubung di atas). Itu mereka
menampilkan hasil kueri kembali ke stdout dan kembali, menyebabkan Kerja Penyangga
untuk dibersihkan dan dipindahkan ke akhir Sejarah Penyangga.
Jika Kerja Penyangga kosong dan $ulangi_batch variabel diatur ke "Aktif", \Pergilah akan
mencoba menjalankan kembali perintah terakhir yang dieksekusi (ini hanya akan berfungsi dalam mode interaktif
jika dukungan riwayat diaktifkan).
\Pergilah menerima argumen berikut:
-d tampilan
Jika dukungan X11 dikompilasi ke dalam sqsh, dan mode tampilan X sedang digunakan (lihat -x,
bawah), maka pameran akan digunakan sebagai area tampilan X untuk kumpulan hasil. Oleh
default variabel lingkungan $TAMPILAN diasumsikan.
-f Mematikan tampilan pesan footer "(%d baris terpengaruh)". Pesan catatan kaki
juga dapat dimatikan melalui $footer variabel.
-h Mematikan semua header kolom. Ini juga dapat dimatikan melalui $header
variabel.
-m gaya
Ubah sementara gaya tampilan menjadi gaya selama perintah.
Gaya yang saat ini didukung adalah cakrawala (Atau hor or horisontal), belukar (Atau vertikal),
bcp, csv, html, meta, cukup dan tak satupun. Gaya tampilan dapat diatur secara permanen
melalui $gaya variabel atau -m bendera baris perintah.
-n Mematikan ekspansi variabel di Kerja Penyangga sebelum dikirim ke server,
ini juga dapat dimatikan melalui $perluas variabel.
-p Menghidupkan output statistik performa saat hasil yang ditetapkan telah
berhasil dikembalikan dari server. Ini juga dapat diaktifkan melalui -p
argumen baris perintah ke sqsh, atau $statistik variabel.
-s detik
Jika nilai xacts lebih besar dari 1, ini menyebabkan sqsh untuk tidur selama detik detik
sebelum melakukan transaksi berikutnya. Perhatikan bahwa waktu yang dihabiskan untuk tidur adalah
dikecualikan dari informasi statistik yang ditampilkan dengan -p bendera.
-t [penyaring]
Filter kumpulan perintah melalui program eksternal, menyaring, dan sebelum menjadi
dikirim ke SQL Server. Jika menyaring tidak diberikan, maka $filter_prog digunakan
(standarnya adalah 'm4 -'). Nilai ini juga dapat diatur melalui $filter dan $filter_prog
variabel.
-w lebar
Mengganti nilai $lebar untuk kehidupan kueri (lihat $lebar bawah).
-x [xgeom]
Mengaktifkan filter tampilan X11 (hanya jika dukungan X11 dikompilasi ke dalam sqsh), yang
menyebabkan set hasil dikirim ke jendela terpisah. Jika xgeom diberikan, maka
nilai ini akan digunakan sebagai $xgeom untuk kehidupan kueri (lihat $xgeom bawah).
-T xwin_title
Tentukan nama judul jendela hasil X yang akan dibuat. Ini akan sementara
mengesampingkan nilai $xwin_title. Hanya berguna untuk menentukan -T dalam hubungannya dengan
-x.
xacts
Menentukan berapa kali isi dari Kerja Penyangga harus dieksekusi.
Perhatikan bahwa, mirip dengan isql, kumpulan hasil hanya akan ditampilkan selama final
pelaksanaan batch. Juga, isi dari Kerja Penyangga hanya diperluas
sekali, sebelum eksekusi pertama, jadi isi buffer tidak akan berubah
antara eksekusi berikutnya.
\bcp [bcp_options] tabel
\bcp perintah bertindak sebagai semacam peningkatan \Pergilah perintah yang mengarahkan hasil
set batch ke server lain melalui protokol bcp. Meskipun mungkin untuk
\bcp hasilnya diatur kembali ke server saat ini ( $DSQUERY variabel), ini adalah
dicapai lebih mudah melalui SELECT INTO.
Detail seluk beluk dari \bcp pergi seperti ini: Pertama kumpulan SQL saat ini diperluas
(kecuali jika $perluas variabel diatur ke 0) dan dikirim ke database untuk
pengolahan. Jika semuanya berjalan dengan baik, koneksi baru dibuat ke tujuan
database (seperti yang ditentukan melalui $DSQUERY atau -S flag) untuk mentransfer set hasil menggunakan
bcp. Kemudian, output dari koneksi database sumber terikat ke bcp . baru
koneksi dan transfer data dilakukan. \bcp dapat menangani beberapa set hasil
tanpa masalah (termasuk set hasil yang dikembalikan dari prosedur tersimpan, dll.)
asalkan semua set hasil valid untuk tabel tujuan.
Setara dengan "bcp out" dapat dilakukan menggunakan: bcp pengaturan gaya tampilan dan
pengalihan file (lihat $gaya variabel).
-Paket
Menentukan ukuran paket TDS yang digunakan untuk berkomunikasi dengan server tujuan. Jika
tidak memberikan default ini ke nilai $ukuran_paket variabel, atau (jika itu
tidak disetel), ukuran paket server default (biasanya 512 byte).
-b ukuran_kelompok
Jumlah record yang ditransfer dalam satu transaksi antar server. Catatan
bahwa mencapai akhir hasil menyebabkan batch ditransfer, terlepas dari
dari nilai ukuran_batch. Standarnya adalah seluruh set hasil.
-saya file
Jalur lengkap Sybase alternatif interface berkas untuk digunakan.
-J rangkaian karakter
Menentukan default rangkaian karakter digunakan untuk berkomunikasi dengan SQL Server. Ini
default ke set karakter saat ini (nilai $rangkaian karakter variabel).
-m maksimal
Jumlah maksimum batch yang mungkin gagal sebelumnya \bcp menyerah hantu
(standarnya adalah 10). Perhatikan bahwa ini hanya mengacu pada kegagalan dalam batch tertentu.
Saat melakukan bcp dari beberapa set hasil ke server, jika set hasil yang diberikan
memiliki, katakanlah, terlalu banyak kolom atau tipe data yang buruk, maka seluruh proses bcp adalah
dibatalkan terlepas dari nilai maksimal.
-N Menunjukkan bahwa nilai untuk kolom identitas di tabel tujuan sedang
disediakan dalam set hasil.
-P kata sandi
kata sandi untuk pemakai diperlukan untuk terhubung ke Server. Ini default ke $kata sandi if
tidak disediakan.
-S server
Nama Sybase Server untuk menghubungkan, ini default ke $DSQUERY jika tidak
disediakan.
-U pengguna
Sybase pemakai untuk terhubung ke database sebagai, defaultnya adalah $ username variabel
jika tidak disediakan.
-X Menyebabkan negosiasi kata sandi dengan server tujuan dilakukan menggunakan
enkripsi sisi klien.
-z bahasa
Menentukan pengaturan bahasa yang akan digunakan.
tabel
Seperti biasa bcp, tabel dapat berupa nama tabel yang ditentukan sepenuhnya atau sebagian
di server tujuan. Perhatikan bahwa karena koneksi database baru adalah
didirikan selama proses bcp bahwa konteks database koneksi
mungkin tidak sama dengan konteks saat ini, jadi biasanya paling aman untuk sepenuhnya
tentukan nama tabel dalam bentuk database.owner.table.
\rpc [rpc_opt] rpc_name [[parm_opt] [@var=]nilai ...]
\rpc perintah digunakan untuk secara langsung memanggil panggilan prosedur tersimpan dalam koneksi
server. Perintah ini sangat berguna untuk berkomunikasi dengan Open Server yang
tidak secara langsung mendukung panggilan bahasa.
\rpc memanggil prosedur jarak jauh rpc_nama dengan satu atau lebih parameter yang mungkin
bernama (menggunakan @var) atau anonim (dengan tidak memberikan nama). Sayangnya, karena
fakta bahwa implementasi RPC Sybase, tidak secara langsung mendukung sebagian besar implisit
konversi tipe data (terutama antara VARCHAR (string yang Anda berikan pada perintah
line) dan sebagian besar tipe data lainnya (yang diharapkan oleh prosedur jarak jauh),
sintaks untuk \rpc perintah agak rumit. Namun, singkatnya begini caranya
kerja:
Sebagai \rpc baris perintah sedang diuraikan, sqsh mencoba menebak tipe data dari
parameter nilai berdasarkan format (misalnya jika hanya berisi angka, itu adalah
diasumsikan bilangan bulat), sqsh kemudian melakukan konversi tipe data eksplisit sebelumnya
untuk memanggil panggilan prosedur jarak jauh. Jika sqsh tebakan salah, beberapa bendera adalah
disediakan untuk memaksanya melakukan konversi tipe data yang benar (lihat parm_opt).
Display Opsi
Opsi berikut dapat diberikan di mana saja pada baris perintah dan digunakan untuk mempengaruhi
cara set hasil yang dikembalikan dari pemanggilan prosedur jarak jauh adalah
ditampilkan:
-d tampilan
Jika dukungan X dikompilasi ke dalam sqsh, nilai pameran digunakan sebagai jendela X
variabel TAMPILAN. Catatan, ini biasanya disertakan dengan -x bendera, di bawah.
-f Mematikan tampilan pesan footer "(%d baris terpengaruh)". Pesan footer mungkin
juga dimatikan melalui $footer variabel.
-h Mematikan semua header kolom. Ini juga dapat dimatikan melalui $header variabel.
-m gaya
Ubah sementara gaya tampilan menjadi gaya selama perintah.
Gaya yang saat ini didukung adalah cakrawala (Atau hor or horisontal), belukar (Atau vertikal), bcp,
csv, html, meta, cukup dan tak satupun. Gaya tampilan dapat diatur secara permanen melalui
$gaya variabel atau -m bendera baris perintah.
-r Permintaan untuk mengkompilasi ulang prosedur sebelum eksekusi.
-w lebar
Untuk sementara setel lebar keluaran ke lebar. Lebar keluaran dapat diatur secara permanen
melalui $lebar variabel.
-x [xgeom]
Mengirim output ke jendela X terpisah. Jika xgeom disediakan, maka jendela X menggunakan ini
geometri (lihat $xgeom untuk lebih jelasnya).
-T xwin_title
Tentukan nama judul jendela hasil X yang akan dibuat. Ini akan sementara
mengesampingkan nilai $xwin_title. Hanya berguna untuk menentukan -T dalam hubungannya dengan -x.
Parameter Opsi
Opsi berikut dapat diberikan segera sebelum menentukan parameter: nilai
dan digunakan untuk mempengaruhi cara di mana sqsh menginterpretasikan isi dari nilai sebelum
memanggil prosedur jarak jauh. Meskipun sqsh akan memungkinkan kombinasi apa pun dari parameter ini
untuk digabungkan, itu hanya benar-benar masuk akal untuk menggabungkan -x bendera dengan bendera lainnya.
-b Menunjukkan bahwa nilai yang ditentukan harus dikonversi ke VARBINARY sebelumnya
panggilan rpc_nama. Bendera ini tersirat (yaitu Anda tidak perlu menyediakannya) jika nilai dimulai
dengan "0x" dan hanya berisi angka.
-c Menunjukkan bahwa nilai yang ditentukan harus dikonversi ke VARCHAR sebelum
panggilan rpc_nama. Bendera ini tersirat jika nilai tidak cocok dengan yang tersirat
konversi untuk tipe data lainnya.
-d Menunjukkan bahwa nilai yang ditentukan harus diubah menjadi double (float)
sebelum menelepon rpc_nama. Bendera ini tersirat jika nilai dalam floating point yang valid
notasi (misalnya 0.1, .1, 1.4e10, atau 4e10).
-i Menunjukkan bahwa nilai yang ditentukan harus dikonversi ke integer (int) sebelumnya
panggilan rpc_nama. Bendera ini tersirat jika nilai hanya berisi angka (dan,
opsional, tanda utama).
-y Menunjukkan bahwa nilai yang ditentukan harus dikonversi ke uang sebelum menelepon
rpc_nama. Bendera ini tersirat jika nilai dimulai dengan "$", dan hanya berisi angka
dan, opsional, desimal.
-n Menunjukkan bahwa nilai yang ditentukan harus dikonversi ke numerik sebelumnya
panggilan rpc_nama. Bendera ini tidak pernah tersirat, karena nilai akan selalu cocok dengan keduanya
(-i) atau mengapung (-d); namun, kedua tipe ini secara implisit akan dikonversi menjadi a
numerik seperlunya dengan panggilan prosedur.
-u Menunjukkan bahwa nilai harus diabaikan dan diperlakukan sebagai nilai NULL, Bendera ini adalah
implisit jika nilai adalah "".
Buffer
Perintah berikut dapat digunakan untuk membuat, menghancurkan, atau memanipulasi berbagai buffer:
Dijelaskan di BUFFER bagian, di atas.
\jernih
\jernih perintah akan membuang buffer saat ini dan bertentangan dengan
\mengatur ulang perintah, tidak akan menyimpan buffer saat ini ke riwayat. Ketika sqsh dikompilasi
dengan dukungan readline, perintah ini juga akan menghapus layar. (seperti yang dilakukan ^l.) The
alias jelas secara otomatis dibuat saat startup.
\sejarah [-i] [-x count]
Menampilkan yang terakhir $histize batch yang telah dikirim ke database melalui
\Pergilah perintah atau dibersihkan dari Kerja Penyangga melalui \mengatur ulang memerintah. Dengan pilihan -i
juga menampilkan berapa kali buffer digunakan dan terakhir kali buffer digunakan
digunakan. Informasi ini mungkin menarik saat menggunakan $histunik fitur.
-x opsi dapat menentukan jumlah entri riwayat terbaru untuk ditampilkan sebagai gantinya
dari total daftar entri sejarah.
\hist-load [nama file]
Muat file riwayat dan tambahkan item ke daftar riwayat saat ini. Menggunakan $sejarah jika tidak
nama file ditentukan sebagai parameter.
\hist-simpan [nama file]
Akan menyimpan buffer riwayat saat ini ke $sejarah file atau ke nama file
ditentukan sebagai parameter.
\menggambar ulang
Mengembalikan permintaan ke loop read-eval-print saat ini untuk menampilkan kembali
arus Kerja Penyangga. Jika dijalankan dari mode non-interaktif, perintah ini tidak berpengaruh.
\mengatur ulang
\mengatur ulang perintah sesuai langsung dengan isql perintah 'reset', mengembalikan a
permintaan ke loop read-eval-print untuk menghapus konten saat ini Kerja Penyangga
dan, jika Anda menjalankan dalam mode interaktif, tempatkan salinan buffer ke dalam
Sejarah Penyangga. alias ulang secara otomatis dibuat saat memulai sqsh untuk
kompatibilitas mundur dengan isql.
\buf-tambahkan dst-buffer [src-buffer]
Menambahkan isi dari src-buffer (default ke !.) ke konten buffer-dst, Jika
itu ada. Jika buffer-dst tidak ada itu dibuat.
\buf-salin dst-buffer [src-buffer]
Salin isi dari src-buffer (default ke !., yang Kerja Penyangga, jika tidak disediakan),
untuk buffer-dst. Mengacu pada BUFFER untuk informasi tentang konvensi penamaan buffer.
\buf-del [penyangga|rentang]
Hapus buffer riwayat dari daftar riwayat. Anda juga dapat menentukan daftar rentang
terdiri dari angka buffer pertama dan terakhir yang dipisahkan oleh tanda '-'. Sebagai contoh:
"\buf-del 1-10" akan menghapus 10 entri riwayat pertama. Contoh lain, "\buf-del
21" hanya akan menghapus buffer nomor 21. Perhatikan bahwa buffer histori akan menjadi
dinomori ulang secara berurutan.
\buf-edit [-r baca-buf] [-w tulis-buf]
\buf-edit perintah digunakan untuk mengedit isi buffer dan menempatkan perubahan
ke dalam buffer lain. Perintah ini hanya dapat dijalankan saat dalam mode interaktif. Jika Baca-
buf tidak disediakan maka buffer yang akan diedit default ke !., jika tidak kosong,
jika tidak, defaultnya adalah !!. Jika menulis-buf tidak diberikan maka buffer yang diedit adalah
ditulis kembali ke !..
Secara default, \buf-edit menggunakan variabel lingkungan $ EDITOR pertama, diikuti oleh $VISUAL
untuk menentukan editor mana yang akan digunakan, default ke 'vi' jika variabel tidak disetel.
Penting untuk dicatat bahwa pada rilis 1.2, \buf-edit tidak bisa lagi menggunakan
nama alias untuk itu sebagai nama editor yang akan diluncurkan. Hal ini terutama disebabkan oleh
perubahan perilaku alias (lihat bagian Mengasingkan, di bawah, untuk detailnya).
Perintahnya mengedit vi dan emacs secara otomatis dibuat saat memulai sqsh untuk
kompatibilitas mundur dengan isql.
\buf-dapatkan buffer
\buf-dapatkan perintah disediakan sebagai metode singkat untuk menjalankan \buf-salin Ini adalah
setara dengan berlari:
\buf_append !. penyangga
\buf-load [-a] nama file [dst-buffer]
Salin isi dari nama file in buffer-dst (default ke !.). jika -a bendera adalah
disediakan, isi dari nama file ditambahkan ke buffer-dst. Perhatikan bahwa itu ilegal
untuk mencoba menulis ke isi buffer sejarah.
\buf-save [-a] nama file [src-buffer]
Menyimpan konten dari src-buffer (default ke !.) ke nama file. Jika -a bendera adalah
asalkan isinya ditambahkan ke nama file daripada menimpa arus
isi.
\buf-show [penyangga]
Menampilkan isi yang bernama penyangga. Jika penyangga tidak diberikan, maka
isi dari semua buffer bernama ditampilkan. Perintah ini sedikit berbeda dari
perintah di atas bahwa hanya sah untuk memberikan Bernama Penyangga penyangga, Sejarah
Buffer, Dan Kerja Penyangga tidak akan ada hasil.
Variabel
Perintah berikut digunakan untuk memanipulasi konten variabel internal dan
variabel lingkungan.
\set [-x] [nama=nilai ...]
Jika tidak ada argumen yang diberikan ke \mengatur maka nilai saat ini dari semua variabel adalah
ditampilkan. Jika tidak, variabel nama diatur ke nilai. Perhatikan bahwa beberapa internal
variabel (lihat KHUSUS VARIABEL) hanya dapat disetel dengan tertentu nilais, jadi tindakan ini
mungkin gagal, membiarkan konten sebelumnya aktif nama utuh. Itu -x bendera menyebabkan
variabel untuk diekspor ke lingkungan program apa pun yang diluncurkan dari sqsh.
Pekerjaan kontrol
Perintah berikut digunakan untuk melihat status, atau memanipulasi pekerjaan latar belakang yang
sedang berjalan, ini kira-kira sesuai dengan perintah yang diberikan oleh shell seperti
csh(1).
\pekerjaan [-i]
Menampilkan status pekerjaan yang sedang berjalan, termasuk apakah pekerjaan ini atau tidak
memiliki keluaran yang tertunda, berapa lama mereka telah berjalan, dan kapan mereka mulai. Itu
-i pilihan akan menampilkan beberapa informasi pekerjaan tambahan. Perhatikan bahwa total waktu berjalan
pekerjaan ditentukan sejak pekerjaan ditandai selesai oleh evaluasi-baca.
print loop saat disurvei, bukan saat benar-benar berakhir dan ditandai sebagai diakhiri oleh
pengendali sinyal.
\tunggu [job_id]
Akan berhenti sampai pekerjaan yang ditunjuk oleh pekerjaan_id selesai. Jika pekerjaan_id adalah bilangan negatif
kemudian \tunggu akan berhenti sampai Apa pun pekerjaan yang tertunda selesai. Jika tidak ada pekerjaan yang tertunda,
or pekerjaan_id bukan milik pekerjaan yang sedang berjalan, maka pesan kesalahan akan ditampilkan. Catatan
bahwa jika banyak pekerjaan sedang berjalan, dan a \tunggu dikeluarkan untuk salah satunya, yang lain
pekerjaan mungkin tidak secara otomatis mendapatkan sinyal ketika selesai dalam masa tunggu dari
pekerjaan tertentu. Pekerjaan lain mungkin perlu mendapatkan sinyal dengan \tunggu -1 juga menjadi
diperhatikan lengkap oleh sqsh.
\bunuh job_id
Mengakhiri pekerjaan yang ditentukan oleh pekerjaan_id, membuang output apa pun yang mungkin ditangguhkan
untuk pekerjaan. Jika pekerjaan_id bukan pekerjaan yang sedang berjalan maka pesan kesalahan akan ditampilkan.
\tampilkan pekerjaan_id
Menampilkan keluaran tertunda dari pekerjaan latar belakang yang telah selesai pekerjaan_id dan menghapus pekerjaan
dari daftar pekerjaan yang tertunda (menghapus file penangguhan dalam proses). Jika pekerjaan_id is
masih berjalan, atau bukan pekerjaan lengkap yang valid, maka pesan kesalahan akan ditampilkan. Anda
mungkin perlu mengeluarkan \tunggu pekerjaan_id pertama, untuk mendapatkan pemberitahuan tentang penyelesaian pekerjaan yang sebenarnya.
Mengasingkan
Pada rilis 1.2, sqsh mendukung penuh csh-gaya perintah aliasing. Dengan fitur ini, sqsh
memeriksa kata pertama dari setiap baris, sebelumnya untuk Apa pun bentuk of perluasan, untuk melihat apakah itu cocok
nama alias yang ada. Jika ya, perintah diproses ulang dengan alias
definisi menggantikan namanya. Tidak seperti csh, bagaimanapun, hanya satu bentuk substitusi sejarah
tersedia dalam alias: '!*', menunjukkan baris saat ini sedang diperluas.
Jika tidak ada perluasan riwayat yang diminta, argumen pada baris perintah tetap tidak berubah.
Seperti csh, alias tidak diperluas secara rekursif, jadi sangat sah untuk membuat
alias yang diperluas ke perintah dengan nama yang sama.
Perintah berikut digunakan untuk membuat alias:
\alias [nama_alias=alias_body]
Jika tidak ada argumen yang diberikan ke \alias perintah, lalu daftar alias saat ini
berlaku ditampilkan. Jika tidak, itu akan membuat alias baru dengan nama nama alias
dan tubuh alias_tubuh; jika nama alias sudah ada, tubuh yang ada
nama alias diganti dengan definisi baru.
Setelah mendefinisikan alias baru, kapanpun sqsh menemukan garis yang dimulai dengan
nama alias, sisa baris diganti dengan alias_tubuh sebelum lebih jauh
pemrosesan dilakukan.
Jika string '!*' ada di mana saja di dalam alias_tubuh, argumen yang diberikan ke
alias dimasukkan pada titik itu, jika tidak, argumen ditambahkan ke akhir
definisi alias. Sebagai contoh:
1> \alias hi='\echo !* say hello'
1> hai Scott
Scott menyapa
di mana seolah-olah alias tidak termasuk !* kata kunci, maka berperilaku seperti ini:
1> \alias hi='\echo say hello'
1> hai Scott
menyapa Scott
Sangat sah untuk menyertakan a !* lebih dari sekali dalam waktu tertentu alias_tubuh.
Saat ini tidak ada cara untuk melarikan diri dari string !*, jika Anda benar-benar membutuhkan fitur ini
kirimi saya surat.
\unalias alias_nama
Menghapus nama alias.
bermacam-macam
Perintah yang tersisa.
\keluar [x]
\keluar perintah meminta agar loop read-eval-print saat ini berhenti memproses. Kapan
loop terakhir kembali, sqsh keluar(1)S. Anda dapat menentukan kode keluar sebagai parameter yang
akan disimpan di $keluar_nilai dan akan digunakan sebagai nilai balik ke shell saat keluar
of sqsh. (0 <= x <= 255).
\menggugurkan
Menyebabkan semua loop read-eval-print bersarang untuk membatalkan pemrosesan, menyebabkan sqsh untuk keluar dengan
nilai keluar 254 (lihat bagian EXIT STATUS).
\baca [-a] [-n] [-h] var_name
Membaca baris input dari pengguna, menempatkan teks baris dalam variabel
nama_var. Jika -n digunakan, maka baris baru tertinggal di baris teks,
dan jika -a disediakan, maka teks baris ditambahkan ke nilai yang ada
nama_var. itu -h flag mematikan gema karakter yang diketik kembali ke pengguna.
\detik tidur
Global sqsh terlalu jeda untuk detik. Ini berguna dalam skrip kumpulan yang membutuhkan
untuk berhenti sebentar di antara kumpulan (itu terutama berguna bagi saya untuk menguji latar belakang
pekerjaan).
\gema [-n] [argumen ...]
Sama seperti UNIX gema(1), ini mencetak argumennya ke stdout, diikuti oleh yang baru-
garis. Jika -n flag disediakan, baris baru dihilangkan.
\jaminan
Menampilkan garansi GNU standar.
\bantuan [perintah]
Tanpa argumen apapun \Tolong menampilkan daftar singkat dari semua perintah yang tersedia,
jika tidak, ini memberikan bantuan khusus untuk Command, jika tersedia. Ketika bantuan diminta
pada tertentu Command, \Tolong mencari file $help_dir/command.hlp dan menampilkannya
untuk stdout.
\shell [perintah shell]
If tempurung Command tidak diberikan maka sqsh mengeksekusi $cangkang. Jika $cangkang variabel memiliki
belum disetel, maka, secara default, / Bin / sh dieksekusi. Jika tidak, jika tempurung Command is
diberikan kemudian dieksekusi. Status keluar dari perintah yang dieksekusi disimpan di
khusus $? variabel lingkungan hanya-baca.
\kunci
Mengunci sesi saat ini hingga kata sandi yang benar diketik. Secara default \kunci
mencoba menggunakan kata sandi UNIX (dari / etc / passwd) terkait dengan pengguna yang sedang berjalan
sqsh, namun jika $kunci variabel diatur maka isinya digunakan untuk
validasi sebagai gantinya.
Catatan, pada sistem yang menggunakan Sandi Bayangan (di mana bahkan sandi terenkripsi adalah
tidak tersedia), \kunci hanya akan bekerja menggunakan $kunci variabel.
alias
Alias-alias berikut dibuat saat memulai sqsh, dan disediakan terutama untuk
kompatibilitas mundur dengan isql. Ini dapat dihapus kapan saja menggunakan \unalias
perintah (baik saat diminta, atau di dalam file .sqshrc Anda).
! Itu ! alias disediakan sebagai csh(1)-seperti mekanisme sejarah, dan merupakan alias dari
\buf-tambahkan. Dengan rilis 0.7, alias ini disediakan hanya untuk kompatibilitas mundur
dengan rilis sebelumnya dari sqsh. Lihat KHUSUS VARIABEL, $sejarah_singkat untuk rincian
pada mekanisme steno baru (steno baru lebih mirip dengan csh).
jelas
Alias untuk \jernih perintah, yang menyebabkan isi buffer kerja saat ini
untuk dibersihkan dan dibuang. Juga layar akan dihapus jika readline dikompilasi
ke sqsh.
ulang
Alias untuk \mengatur ulang perintah, yang menyebabkan isi buffer kerja saat ini
untuk dihapus dan disalin ke riwayat (jika dalam mode interaktif).
keluar [x]
berhenti [x]
Alias untuk \keluar [X] perintah, menyebabkan loop read-eval-print saat ini menjadi
lengkap.
mengedit
vi
emacs
Ini disediakan sebagai alias untuk \buf-edit memerintah. Lihat COMMANDS-Buffer untuk
informasi tentang interaksi antara \buf-edit dan alias.
go Disediakan sebagai alias untuk \Pergilah perintah (untuk alasan yang jelas).
membantu
Alias untuk \Tolong perintah.
Di barisan \Pergilah
Jika variabel $titik koma_hack diatur ke 1 (on), maka sqsh mendukung apa yang disebut in-
line \Pergilah fitur. Ini memungkinkan kumpulan perintah saat ini untuk dihentikan dan dikirim ke
database dalam satu langkah dengan menambahkan ';' ke akhir buffer kerja saat ini. Ini
memungkinkan
1> sp_siapa;
Untuk berperilaku dengan cara yang sama seperti jika Anda mengetik:
1> sp_siapa
2> \pergi
Demikian juga, apa pun yang mengikuti titik koma diteruskan ke \Pergilah perintah seolah-olah itu
jalankan sebagai perintah biasa:
1> sp_siapa ; 2>/dev/null | lagi
Tidak seperti kebanyakan lainnya isql pengganti, sqsh mencoba untuk menjadi pintar tentang titik koma. Jika sebuah
titik koma terkandung dalam satu set tanda kutip tunggal atau ganda itu tidak akan ditafsirkan.
Ini termasuk beberapa kutipan. Sebagai contoh:
1> pilih "Ini adalah beberapa baris
2> kutipan; itu pintar!" ;
Dalam contoh di atas, hanya titik koma kedua (yang ada di akhir baris) yang akan menjadi
ditafsirkan.
KHUSUS VARIABEL
Ada beberapa opsi yang dapat dikonfigurasi melalui opsi baris perintah untuk sqsh,
namun ini tidak berarti lengkap. Ada banyak aspek dari sqshperilaku yang mungkin
hanya dapat dimodifikasi dengan menetapkan variabel khusus. (Faktanya, opsi baris perintah benar-benar
hanya mengatur variabel ini untuk Anda).
Variabel Data jenis
Di samping semua variabel yang mengikuti adalah jenis data yang dapat digunakan untuk menetapkannya.
Upaya apa pun untuk menyetel variabel dengan tipe data yang tidak diterimanya akan gagal.
string
Setiap karakter urutan.
boolean
A positif boolean nilai dapat direpresentasikan sebagai "Benar", "Ya", "1", atau "Aktif"
(tidak peka huruf besar/kecil) dan nilai boolean negatif dapat direpresentasikan sebagai "Salah", "Tidak",
"0", atau "Nonaktif" (tidak peka huruf besar/kecil). Namun, secara internal nilai variabel akan
selalu direpresentasikan sebagai "1" atau "0".
path
Harus menjadi path nama yang dapat dibaca oleh sqsh program.
int Harus satu atau lebih digit. Perhatikan bahwa beberapa variabel juga membatasi rentang
bilangan bulat.
spesifikasi tanggal
Ini adalah string format yang digunakan untuk menentukan tanggal dan waktu untuk tanggal(1)
perintah, atau waktu luang(3C) dan waktu cf(3C) fungsi perpustakaan C standar. Sebagai contoh
'%H:%M:%S' menentukan waktu jam dalam format 24 jam, diikuti oleh titik dua, diikuti
dengan menit, diikuti oleh titik dua, diikuti oleh detik.
format mengambang
Serangkaian format ps, Di mana p adalah presisi total dari nilai floating point
(jumlah total digit yang akan ditampilkan, termasuk yang mengikuti desimal)
dan s adalah skala nilai (jumlah total digit setelah desimal ke
akan ditampilkan).
Variabel
Variabel berikut memiliki arti khusus di dalam sqsh dan pengaturan ini
variabel mengubah perilaku shell.
$? (int)
Variabel read-only ini mungkin berisi nilai kembalian berikut:
· Nomor kesalahan terbaru yang dikembalikan dari SQL Server (@@errno) tingkat keparahan >
10 (di atas pesan informasi).
· Nilai keluar dari perintah pipa yang dieksekusi sebelumnya.
· Nilai kembalian dari fungsi sqsh yang terakhir dieksekusi.
$$? (int)
Variabel ini mungkin berisi hasil dari pernyataan \if yang terakhir dieksekusi:
- 0 -
Tes dievaluasi ke False.
- 1 -
Tes dievaluasi untuk Benar.
- 2 -
Ada kesalahan dalam spesifikasi pengujian.
$# (ke dalam)
Berisi jumlah argumen yang diteruskan ke fungsi atau skrip sqsh.
$* (daftar string)
Memperluas ke daftar lengkap argumen yang diberikan ke fungsi atau skrip ketika
dipanggil.
${0}...${N} (int)
Digunakan untuk mereferensikan argumen fungsi posisi. Argumen ${0} adalah nama dari
fungsi dipanggil, ${1} adalah argumen pertama, dll.
$$ Memperluas ke ID proses dari sesi sqsh yang sedang berjalan.
DISPLAY
Mungkin berisi nama DISPLAY yang digunakan X-server untuk menempatkan hasil XWindows
jendela saat menggunakan \Pergilah -x. Default untuk $TAMPILAN lingkungan cangkang.
nama aplikasi
Berisi nama sqsh digunakan untuk mengidentifikasi dirinya ke server. Default ke sqsh-2.1.7.
Nama aplikasi dapat diambil dari tabel sysprocesses seperti:
pilih program_name dari master.dbo.sysproses di mana spid=@@pid;
penggunaan otomatis (string)
Catatan: arti dari variabel ini tidak digunakan lagi.
If $penggunaan otomatis diatur, dan $database variabel belum disetel, maka variabel ini
penyebab \Menghubung untuk melakukan "penggunaan" $penggunaan otomatis" setelah koneksi dibuat.
Variabel ini juga dapat diatur menggunakan -D opsi baris perintah.
spanduk (boolean)
Mematikan pesan banner yang ditampilkan saat startup, variabel ini default ke 1 dan mungkin
juga dimatikan menggunakan -b argumen baris perintah.
batch_failcount (int)
Variabel internal ini digunakan untuk melacak jumlah batch yang gagal
untuk dieksekusi (pada dasarnya, berapa kali penangan kesalahan dipanggil).
Sebuah batch dianggap gagal setiap kali kesalahan tingkat keparahan $thresh_fail is
ditemui. Kapan $batch_failcount mencapai $thresh_exit sqsh keluar dengan nilai keluar
dari jumlah total batch yang gagal. Pengaturan $batch_failcount ke
string "" akan menyebabkannya disetel ulang ke nol, nilai lain apa pun mungkin tidak dapat diprediksi
hasil.
Lihat EXIT STATUS untuk rincian.
batch_pause (boolean)
Menyebabkan pesan "Dijeda. Tekan enter untuk melanjutkan..." ditampilkan setelah setiap batch
dieksekusi. Variabel ini, bersama dengan $gema bagus untuk men-debug SQL
skrip yang ditentukan dengan -i .
bcp_colsep (string)
Digunakan sebagai pemisah antar kolom selama keluaran gaya BCP (lihat bagian $gaya
variabel konfigurasi dan -m opsi ke \Pergilah memerintah). Pengaturan default adalah
"|".
bcp_rowsep (string)
Digunakan sebagai pemisah antar baris selama keluaran gaya BCP (lihat bagian $gaya konfigurasi
variabel dan -m opsi ke \Pergilah memerintah). Perhatikan bahwa, baris baru ("\n") adalah
otomatis menambahkan nilai ini dan tidak boleh diberikan. Pengaturan default adalah
"|".
bcp_trim (boolean)
Mengontrol apakah keluaran gaya BCP memangkas spasi tambahan dari panjang tetap
kolom. Standarnya adalah "Benar".
dirantai (boolean)
Jika disetel maka sqsh menggunakan mode transaksi "dirantai" (alias "AutoCommit off"). Pengaturan
ini TIDAK berpengaruh pada koneksi saat ini. Itu dapat diatur melalui baris perintah
argumen -n.
rangkaian karakter (string)
Jika variabel ini diatur sebelum membuat koneksi dengan SQL Server, maka
selama koneksi sqsh akan meminta server berubah ke dan dari
diminta rangkaian karakter. Setelah membuat koneksi, variabel ini secara otomatis disetel
ke set karakter saat ini yang digunakan.
clear_on_fail (boolean)
Biasanya, setiap kali \Pergilah perintah dijalankan, sqsh membersihkan buffer kerja saat ini dari
isinya, memindahkannya ke sejarah. Pengaturan $clear_on_fail ke 0, tinggalkan pekerjaan saat ini
buffer utuh jika terjadi kegagalan saat mengirim konten ke database.
Nilai default adalah 1, atau aktif.
colsep (tali)
Penyebab string colsep untuk digunakan untuk membatasi kolom output kolom SQL, ini
default ke " ", itu juga dapat diatur melalui argumen baris perintah -s.
lebar kolom (int)
Digunakan untuk mengontrol lebar kolom maksimum yang ditampilkan oleh cukup gaya tampilan (lihat
$gaya di bawah). Jika baris kolom melebihi lebar ini, itu akan dibungkus dengan a
cara yang relatif menarik secara visual di $colwidth karakter. Namun, perhatikan bahwa jika
ada cukup lebar layar untuk menampung semua kolom $colwidth dapat dilampaui sampai
lebar layar tercapai.
basis data (string)
Jika variabel ini disetel sebelum membuat koneksi ke SQL Server, a
"menggunakan $database" dilakukan segera setelah koneksi dibuat. Sekali a
koneksi telah dibuat, variabel ini akan secara otomatis disetel ke arus
konteks basis data.
tanggal (spesifikasi tanggal)
Variabel ini dapat diatur dengan format tanggal (lihat halaman manual untuk tanggal(1)), dan
variabel diperluas ke tanggal saat ini dalam format yang disediakan. Format default untuk
variabel ini adalah %d-%b-%y (misalnya 02-Feb-1996).
datetime (spesifikasi tanggal)
Variabel ini dapat diatur dengan format tanggal yang mirip dengan $tanggal dan $ waktu dan digunakan untuk
mengontrol format tampilan semua kolom SQL Server DATETIME dan SMALLDATETIME.
Perhatikan bahwa fitur ini bergantung pada informasi lokal khusus sistem operasi
untuk menentukan hal-hal seperti nama bulan dan hari, daripada pergi
melalui informasi lokal CT-Lib. Ini berarti bahwa format tanggal bisa
berpotensi tidak cocok dengan lokal seperti yang diminta menggunakan -z bendera. Misalnya, jika sqsh
dijalankan pada sistem operasi yang dikonfigurasi untuk bahasa Inggris AS, tetapi meminta bahasa Prancis sebagai
bahasa pilihan menggunakan -z, Penggunaan $tanggalwaktu akan menyebabkan semua informasi tanggal menjadi
ditampilkan dalam bahasa Inggris AS daripada bahasa Prancis.
Karakter biasa yang ditentukan dalam variabel dibiarkan di tempatnya tanpa konversi apa pun.
Karakter yang diperkenalkan oleh karakter '%' diganti selama tampilan nilai kolom
sebagai berikut:
[] Apa pun yang ada di antara sepasang kurung kurawal ('[' dan ']') akan dihapus ketika
menampilkan kolom SMALLDATETIME. Fitur ini sangat berguna untuk menghapus
nilai detik dan milidetik yang tidak berlaku untuk SMALLDATETIME
omong-omong. Untuk kolom DATETIME, hanya kurung kurawal sebenarnya yang akan dihapus.
%a Nama hari kerja yang disingkat menurut lokal sistem operasi saat ini.
%A Nama lengkap hari kerja menurut lokal sistem operasi saat ini.
%b Nama bulan yang disingkat menurut lokal sistem operasi saat ini.
%B Nama bulan penuh sesuai dengan lokal sistem operasi saat ini.
%c Representasi tanggal dan waktu yang disukai untuk sistem operasi saat ini
lokal.
%d Hari dalam bulan sebagai angka desimal (kisaran 0 hingga 31).
%D Tanggal dalam format AS (mm/hh/ttt).
%H Jam sebagai angka desimal menggunakan jam 24 jam (rentang 00 hingga 23)
%I Jam sebagai angka desimal menggunakan jam 12 jam (rentang 01 hingga 12)
%j Hari dalam setahun sebagai angka desimal (rentang 001 hingga 366).
%m Bulan sebagai angka desimal (kisaran 10 hingga 12).
%M Menit sebagai angka desimal.
%p Baik 'am' atau 'pm' sesuai dengan nilai waktu yang diberikan, atau yang sesuai
string untuk lokal sistem operasi saat ini.
%r Waktu dalam format 12 jam (jj:mm:dd [AM|PM]).
%s Detik sejak epoc (1970-01-01 00:00:00 UTC) (ini tidak didukung di semua
sistem).
%S Yang kedua sebagai angka desimal.
%T Waktu saat ini dalam format 24 jam (jj:mm:dd).
%u Milidetik sebagai angka desimal.
%U Nomor minggu tahun ini sebagai angka desimal, dimulai dengan yang pertama
Minggu sebagai hari pertama minggu pertama.
%W Nomor minggu tahun ini sebagai angka desimal, dimulai dengan yang pertama
Senin sebagai hari pertama minggu pertama.
%w Hari dalam seminggu sebagai desimal, Minggu menjadi 0.
%x Representasi tanggal yang disukai untuk lokal saat ini tanpa waktu.
%X Representasi waktu yang disukai untuk lokal saat ini tanpa tanggal.
%y Tahun sebagai angka desimal tanpa abad (rentang 00 hingga 99).
%Y Tahun sebagai angka desimal termasuk abad.
%Z Zona waktu (misalnya, EDT), atau tidak ada zona waktu jika tidak dapat ditentukan.
%% Karakter '%' literal.
men-debug (tali)
If sqsh telah dikompilasi dengan debugging diaktifkan (-DDEBUG), variabel ini dapat digunakan
untuk mengontrol jumlah output debug yang ditampilkan. $debug dapat diatur ke pipa (|)
delimited (logis ATAU) set kata-kata berikut untuk mengaktifkan berbagai bagian
debug: ALIAS, AVL, BCP, DISPLAY, ENV, ERROR, BUKA, FD, JOB, BACAAN (abbr. RL),
RPC, LAYAR, SIG, SIGCHLD (Atau SIGCLD) atau SEMUA.
defer_bg (boolean)
Biasanya, ketika pekerjaan dijalankan di latar belakang (melalui '&' di baris perintah),
keluaran pekerjaan ditangguhkan ke file sementara (terletak di $tmp_dir) sampai pengguna
meminta output untuk ditampilkan menggunakan \menunjukkan pekerjaan. Dengan cara ini hasil pekerjaan
tidak akan mengganggu apa yang dilakukan pengguna. Mengatur variabel ini ke kehendak palsu
menghasilkan tidak ada file keluaran yang ditangguhkan yang dibuat dan keluaran dikirim ke layar
segera
gema (boolean)
Pengaturan $gema ke pada (1) menyebabkan setiap perintah dikirimkan ke database melalui \Pergilah
perintah yang akan ditampilkan sebelum output. Variabel ini default ke 0 (atau tidak aktif), dan
juga dapat diatur menggunakan -e opsi baris perintah.
enkripsi (boolean)
Pengaturan $enkripsi variabel sebelum membuat koneksi ke server akan
menyebabkan koneksi login dimulai menggunakan enkripsi kata sandi sisi klien. Ini
variabel juga dapat diatur menggunakan -X opsi baris perintah.
exit_failcount (boolean)
Menyetel nilai ini ke 1 penyebab sqsh untuk mengembalikan status keluar dari $batch_failcount
daripada 0, pada penghentian non-kesalahan. Melihat EXIT STATUS untuk rincian. Standarnya
nilainya 0.
nilai_keluar (int)
Saat Anda keluar dari sqsh dengan menentukan kode keluar, seperti \keluar 3 atau menggunakan salah satu dari
alias keluar or berhenti perintah, maka nilai ini ditetapkan ke $keluar_nilai
variabel. Anda juga dapat menetapkan nilai menggunakan \mengatur memerintah. Ketika sqsh menentukan
variabel ini memiliki nilai bukan nol selama penghentian, nilai ini akan digunakan sebagai exit
kode. Melihat EXIT STATUS untuk rincian.
memperluas (boolean)
Secara default ketika \Pergilah perintah dijalankan, isi buffer kerja saat ini
diperluas dari semua variabel lingkungan sebelum dikirim ke database untuk
eksekusi. Dengan menyetel variabel ini ke "0", buffer tidak akan lagi diperluas
sebelum dikirim ke database. Ini berguna ketika Anda (1) memiliki string di
buffer yang berisi '$' dan Anda tidak ingin mereka diperluas, atau (2) untuk
alasan kinerja; butuh waktu (dan salinan tambahan buffer) untuk melakukan
ekspansi variabel.
menyaring (boolean)
Mengalihkan pemfilteran kumpulan SQL melalui program eksternal (ditentukan oleh
$filter_prog variabel, di bawah) sebelum dikirim ke SQL Server. Standarnya adalah '0',
atau 'mati'.
filter_prog (string)
Mendefinisikan program eksternal di mana kumpulan SQL akan difilter sebelum
sedang dikirim ke SQL Server. Variabel ini diabaikan jika $filter diatur ke '0' atau
'mati'. Standarnya adalah 'm4 -'.
float (format mengambang)
Mendefinisikan format tampilan (presisi dan skala) untuk semua nilai floating point
ditampilkan oleh sqsh. Standarnya adalah '18.6'. Perhatikan bahwa nilai melebihi yang ditentukan
presisi tidak terpotong, jadi menyetel nilai ini terlalu rendah dapat menyebabkan kolom di a
hasil diatur menjadi tidak selaras.
footer (boolean)
Mengalihkan "(%d baris terpengaruh)" mengikuti kumpulan hasil. Default untuk variabel ini
adalah '1'.
header (boolean)
Mengalihkan tajuk kolom sebelum kumpulan hasil. Default untuk variabel ini adalah
'1'.
help_dir (jalur)
Ini adalah lokasi file bantuan yang digunakan oleh \Tolong perintah, biasanya itu
default ke sesuatu seperti /usr/local/lib/sqsh/help.
hist_auto_save (int)
Ketika variabel $histave sedang aktif dan $hist_auto_save variabel memiliki nilai yang lebih besar
dari 0, maka riwayat akan secara otomatis disimpan ke $sejarah setelah $hist_auto_save
modifikasi dari buffer sejarah. Ketika nilainya 0 (default), maka tidak otomatis
penyimpanan riwayat akan dilakukan.
histnum (int)
Berisi nomor riwayat yang akan segera ditetapkan ke kumpulan perintah saat ini
sebagai \Pergilah perintah dijalankan. Variabel ini harus dianggap hanya-baca. Lihat juga
diskusi tentang $histunik variabel.
sejarah (jalan)
Ini adalah lokasi file riwayat yang digunakan untuk menyimpan dan mengambil riwayat pengguna
selama start-up dan shutdown. Ini default ke $HOME/.sqsh_history. Variabel ini adalah
diperluas setiap kali direferensikan oleh sqsh, dengan cara yang sama seperti $cepat is
direferensikan setiap kali prompt ditampilkan.
history_shorthand (boolean)
Variabel ini hanya bermakna dalam sesi interaktif. Jika disetel, itu menyala
kemampuan untuk menambahkan buffer bernama atau buffer riwayat ke buffer kerja saat ini
dalam gaya riwayat 'sh', seperti '!40'. Hati-hati dengan fitur ini, sqsh tidak
sangat cerdas dengan mencari steno sejarah, jadi mungkin saja
bingung (walaupun, cukup pintar untuk mengabaikan ! dalam string yang dikutip).
penyimpanan hist (boolean)
Nilai variabel ini digunakan oleh sqsh untuk menunjukkan apakah sejarah harus
disimpan ke $sejarah sebelum penghentian sqsh.
ukuran hist (int)
Nilai variabel ini digunakan untuk mengubah jumlah maksimum entri riwayat adalah
dipelihara oleh sqsh (standarnya adalah 10). Perhatikan bahwa mengurangi nilai ini
variabel menyebabkan beberapa entri riwayat hilang.
histunik (boolean)
Jika diatur, sqsh mempertahankan urutan MRU-LRU dari buffer yang dieksekusi dan tidak menyimpan
duplikat perintah buffer. Sebagai contoh, perhatikan situasi berikut:
LINUX1502.user1.master.1> \sejarah
(1) sp_siapa
(2) berikan peran mon_role ke sa_role
(3) pilih * dari monProcessActivity
(4) pilih @@authmech,show_sec_services()
(5) pilih @@namaserver,@@authmech,show_sec_services()
LINUX1502.user1.master.1> sp_who
LINUX1502.user1.master.2> buka
... keluaran dihilangkan
LINUX1502.user1.master.1> \sejarah
(1) berikan peran mon_role ke sa_role
(2) pilih * dari monProcessActivity
(3) pilih @@authmech,show_sec_services()
(4) pilih @@namaserver,@@authmech,show_sec_services()
(5) sp_siapa
sp_siapa adalah perintah yang dieksekusi terakhir dan buffer - awalnya yang terakhir dalam daftar -
sekarang di atas daftar. Ketika buffer yang sudah ada digunakan kembali, nilai dari
$ histnum variabel tidak berubah.
nama host (string)
Digunakan selama proses koneksi untuk menunjukkan ke SQL Server nama host dari
yang sqsh sedang menghubungkan. Variabel ini juga dapat diatur menggunakan -H bendera.
jika (string)
Daftar Pemisah Bidang Internal.
mengabaikan (boolean)
Secara default, sqsh berakhir jika pengguna menekan ^d (control-D) pada baris kosong dan
dukungan readline dikompilasi. If $abaikan diatur dalam file sqshrc yang Anda dapatkan
pesan peringatan sebagai gantinya:
CTRL-D: Gunakan "keluar" atau "keluar" untuk meninggalkan shell sqsh.
Ini setara dengan menggunakan "set -o mengabaikan" di bash Shell.
interaktif (boolean)
Ini adalah variabel yang digunakan secara internal dan mungkin tidak boleh diubah oleh pengguna. Jika
$interaktif adalah '0', maka prompt tidak ditampilkan, riwayat tidak dibaca atau
tertulis dan beberapa pesan pengguna disembunyikan.
antarmuka (jalur)
Ini adalah nama path lengkap dari file antarmuka, defaultnya adalah $SYBASE/antarmuka.
keytab_file (string)
Digunakan dalam mekanisme keamanan otentikasi pengguna Kerberos dan DCE. Sesuai dengan
-K opsi mulai.
Lihat juga diskusi tentang Kerberos Support.
penyelesaian_kata kunci (int/string)
Variabel ini hanya berlaku jika dukungan GNU Readline telah dikompilasi menjadi sqsh.
$penyelesaian_kata kunci digunakan untuk mengontrol fitur penyelesaian kata kunci TSQL di
readline, dan dapat diatur menggunakan bilangan bulat antara 0 dan 4, atau salah satu dari
string tak satupun, menurunkan, atas, pintar, atau tepat. Jika diatur ke 0 atau tak satupun, maka tidak
penyelesaian kata kunci dilakukan (ini adalah default). menurunkan atau 1, penyebab sqsh untuk
lengkapi kata kunci dalam huruf kecil, terlepas dari kasus yang sebagian selesai
kata kunci telah diketik. atas atau 2 penyelesaian kekuatan harus dilakukan dalam huruf besar, pintar,
atau 3, mendasarkan keputusan pada kasus pada karakter pertama dari kata kunci parsial, dan
tepat melengkapi kata kunci dalam kasus yang sama persis seperti yang didefinisikan dalam .sqsh_words
(untuk kata kunci TSQL bawaan, ini akan menjadi huruf kecil).
kata kunci_file (string)
Jika dukungan readline telah dikompilasi menjadi sqsh, dan sqsh sedang dijalankan secara interaktif
mode, isi file ini digunakan untuk penyelesaian tab kata kunci dengan readline bukan
daripada kumpulan default kata kunci sintaksis TSQL. Standarnya adalah $HOME/.sqsh_words.
bahasa (string)
$bahasa variabel digunakan saat membuat koneksi ke server ke
tentukan bahasa nasional yang digunakan untuk menampilkan perintah dan pesan sistem. Itu
variabel akan secara otomatis melacak pengaturan bahasa server saat ini. Ini mungkin
juga diatur melalui -z bendera.
garis (int)
Ini adalah variabel internal dan tidak boleh diubah oleh pengguna. Hal ini digunakan untuk
pertahankan nomor baris yang sedang diketik di dalam buffer kerja saat ini.
garis (string)
Digunakan untuk mengonfigurasi pemisah garis untuk gaya tampilan horizontal, ini default
ke "\n\t".
kunci (string/hanya tulis)
Menentukan kata sandi yang akan digunakan oleh \kunci memerintah. Jika tidak disetel atau disetel ke string
"NULL", lalu kata sandi UNIX dari pengguna yang sedang berjalan sqsh digunakan sebagai gantinya (jika mungkin).
Perhatikan bahwa $kunci akan selalu diperluas ke string "*lock*" jika direferensikan.
login_timeout (int)
Jumlah detik untuk menunggu saat mencoba membuat koneksi baru ke data
server. Standarnya adalah 0 (menunggu tak terbatas). Lihat juga -T opsi baris perintah.
batas waktu_maks (int)
Mengontrol berapa kali kueri perlu mencapai nilai batas waktu sebelum
sesi dibatalkan. Melihat $query_timeout dan -Q bendera baris perintah. Pengikut
pesan akan ditampilkan dan sqsh keluar dengan nilai 255 ketika $ batas waktu_maks membatasi
tercapai.
Waktu tunggu permintaan atau perintah terdeteksi, sesi dibatalkan
Koneksi klien telah mendeteksi x kali ini
Membatalkan batas max_timeout
makslen (int)
Mengontrol jumlah maksimum data yang akan ditampilkan (dalam mode tampilan apa pun) dalam a
kolom tunggal. Pengaturan ini akan secara otomatis memotong output dari
tipe data besar (seperti TEXT) dengan nilai yang diberikan. Pengaturan default adalah 8192
byte (8KB).
baris_baru (boolean)
Bendera ini digunakan sebagai kludge yang mengerikan untuk mendukung alias "kosong" untuk \Pergilah
perintah, yaitu, setara dengan memasok "-c ''" atau hanya "-c" pada perintah
garis. Saat aktif, saluran kosong ditafsirkan sebagai panggilan ke \Pergilah memerintah. Fitur ini
tidak direkomendasikan tetapi disediakan untuk kelengkapan.
output_parms (boolean)
Bendera digunakan untuk mengaktifkan atau menonaktifkan tampilan set hasil parameter keluaran dari yang disimpan
Prosedur. Standarnya adalah mengaktifkan tampilan.
ukuran_paket (int)
Menentukan ukuran paket TDS yang digunakan untuk berkomunikasi dengan SQL. Mengubah nilai
variabel tidak akan mempengaruhi koneksi saat ini tetapi akan berlaku pada
berikutnya \sambungkan kembali memerintah. Menentukan nilai NULL menunjukkan bahwa paket default
ukuran yang diinginkan.
kata sandi (string/hanya tulis)
Ini adalah kata sandi pengguna saat ini. Kata sandi NULL dapat diberikan menggunakan eksplisit
string "NULL". Untuk alasan keamanan, ketika dirujuk ke $kata sandi variabel akan
selalu kembangkan ke string "*password*".
kata sandi_coba lagi (boolean)
Ketika variabel aktif dan sqsh dimulai dalam mode interaktif, sqsh akan meminta
password lagi jika login gagal. Ketika disetel ke 'off', sqsh akan segera dihentikan.
Standar aktif.
utama (tali)
Digunakan dalam otentikasi pengguna Kerberos sebagai nama utama Server ketika berbeda dari
itu $DSQUERY nama. Sesuai dengan -R opsi mulai.
Lihat juga diskusi tentang Kerberos Support.
cepat (string)
Variabel ini digunakan oleh sqsh untuk membangun prompt Anda saat ini. Variabel apa pun yang terkandung
dalam $cepat diperluas setiap kali prompt ditampilkan. Nilai default untuk
ini adalah '${lineno}> '. Lihat juga pembahasan tentang dukungan warna di bawah ini.
prompt2 (string)
Isi prompt ini diperluas dan ditampilkan selama penggunaan interaktif ketika
sqsh membutuhkan input tambahan, seperti selama kelanjutan baris. Nilai default
adalah '-->'.
waktu_kueri (int)
Jumlah detik untuk menunggu kueri mengembalikan data. Jika batas waktu tercapai
kueri dibatalkan (dibatalkan). Lihat juga $ batas waktu_maks dan -Q opsi baris perintah.
rcfile (jalur)
Berisi tanda titik dua (:) daftar file sumber daya sqsh (sqshrc). Standarnya
pengaturannya adalah /etc/sqshrc diikuti oleh $HOME/.sqshrc).
readline_history (string)
Jika dukungan readline telah dikompilasi menjadi sqsh, isi readline baris demi baris
riwayat baris akan ditulis ke file yang ditentukan oleh $readline_history variabel.
Standarnya adalah $HOME/.sqsh_readline.
readline_histsize(int)
Jika dukungan readline telah dikompilasi menjadi sqsh, nilai dari $readline_histsize
menentukan jumlah baris yang disimpan dalam sejarah baris-demi-baris readline.
Mengatur ini ke nilai 0 menyebabkan setiap baris disimpan. Nilai defaultnya adalah 100.
nyata (format mengambang)
Mendefinisikan format tampilan (presisi dan skala) untuk semua nilai nyata yang ditampilkan oleh
persegi Standarnya adalah '18.6'. Perhatikan bahwa nilai yang melebihi presisi yang ditentukan tidak
terpotong, jadi menyetel nilai ini terlalu rendah dapat menyebabkan kolom dalam kumpulan hasil menjadi salah
selaras.
ulangi_batch (boolean)
Saat diatur ke On or Benar, Sebuah \Pergilah dieksekusi dengan kosong SQL Penyangga akan menyebabkan
batch sebelumnya untuk dieksekusi kembali.
secmech (string)
Nama mekanisme keamanan yang digunakan untuk otentikasi pengguna. Misalnya csfkrb5.
Saat menggunakan -Z opsi, nama mekanisme keamanan dapat ditentukan, atau kapan
tidak ada detik yang disediakan, OpenClient akan menggunakan default, yaitu keamanan pertama
masuk dari $SYBASE/$SYBASE_OCS/config/libtcl.cfg mengajukan. Perhatikan bahwa nama yang digunakan
harus cocok dengan nama entri secmech yang sesuai di objekid.dat mengajukan. Kapan
koneksi ke server diatur, nama secmech yang sebenarnya akan disimpan di
$detik variabel.
opsi_aman (string)
Jelaskan opsi keamanan yang digunakan untuk mekanisme keamanan otentikasi pengguna.
Sesuai dengan -V opsi mulai.
Lihat juga paragraf tentang Dukungan Kerberos.
naskah (string)
If sqsh dijalankan menggunakan -i flag, maka variabel ini berisi nama skrip
sedang dieksekusi.
titik koma_cmd (string)
Ketika $titik koma_hack (lihat di bawah) diaktifkan, isi variabel ini dijalankan
ketika titik koma ditemui di SQL Penyangga. Variabel ini default ke
rangkaian '\Pergilah'.
titik koma_hack (boolean)
Mengaktifkan kemampuan untuk menggunakan ';' sebagai terminator perintah in-line. Fitur ini adalah
tidak direkomendasikan dan hanya ada di sini karena cukup banyak pengguna yang mengeluh. Lihat bagian
PERINTAH, Di barisan Go.
sesi (string)
Lokasi file sesi yang akan diproses sesaat sebelum terhubung ke a
server. Variabel akan diperluas sehingga mungkin berisi variabel lingkungan.
SHELL (tali)
Nama shell yang akan digunakan untuk mengeksekusi pipa dan digunakan oleh \kerang Command
(bawaan '/ Bin / sh').
statistik (boolean)
Pengaturan $statistik ke 1 menyebabkan statistik waktu ditampilkan setelah berhasil
eksekusi setiap batch SQL. Variabel ini juga dapat diatur melalui -t command line
bendera, atau dengan menyediakan -t ke \Pergilah perintah. $statistik default ke 0.
gaya (tali)
Memilih gaya tampilan set hasil. Saat ini delapan gaya didukung. Itu cakrawala
(yang juga dapat didefinisikan sebagai hor or horisontal), sangat mirip dengan output dari
isql, dengan output kolumnar tradisional.
belukar (Atau vertikal) gaya memutar output, sehingga setiap baris diwakili oleh
nama kolom diikuti dengan nilai kolom. Ini bagus untuk dilihat secara khusus
keluaran lebar.
bcp style menampilkan hasil dalam format yang sesuai dengan hasil yang disetel kembali
ke meja lain. Artinya, setiap nilai kolom dipisahkan oleh $bcp_colsep pada pengatur terkenal. Pengatur ini menawarkan bantuan hukum kepada traderapabila trader berselisih dengan broker yang terdaftar dengan mereka.
kolom terakhir dipisahkan oleh $bcp_rowsep diikuti oleh baris baru (\n). Jika $bcp_colsep or
$bcp_rowsep tidak didefinisikan maka '|' digunakan sebagai pemisah default. Perhatikan bahwa ini
output tidak bekerja dengan baik dengan kolom COMPUTE, dan menggunakan konversi default
metode untuk semua tipe data (yaitu, tanggal Waktu kolom dapat memotong milidetik).
csv gaya tampilan menampilkan semua rangkaian hasil dalam bentuk dipisahkan koma
membangun. Mode ini ideal untuk mengimpor kumpulan hasil ke dalam program spreadsheet, untuk
contoh.
html gaya tampilan menampilkan semua set hasil dalam bentuk HTML
membangun. Mode ini sangat ideal untuk penggunaan sqsh sebagai aplikasi CGI.
meta gaya tampilan hanya menampilkan informasi meta-data yang terkait dengan
result dan membuang hasil baris yang sebenarnya. Mode ini berguna untuk men-debug
set hasil yang dihasilkan dari gateway Open Server passthru penuh, atau untuk itu
tertarik pada apa yang benar-benar datang kembali dari server.
cukup gaya tampilan menghasilkan output seperti tabel yang halus menggunakan ASCII biasa
karakter untuk perbatasan. Mode ini tidak melakukan pembungkusan kolom eksplisit, seperti
itu cakrawala mode tampilan. Namun, $colwidth variabel dapat digunakan untuk mengontrol
lebar maksimum kolom tertentu di layar. Jika kolom melebihi $colwidth
karakter lebar, itu dibungkus dengan cara yang relatif menarik secara visual. Perhatikan bahwa
$colwidth dapat dilampaui jika ada cukup lebar layar untuk menahan kolom tanpa
pembungkus.
tak satupun gaya tampilan menekan semua hasil agar tidak ditampilkan (namun demikian
benar-benar mengambil informasi hasil dari SQL Server). Ini sangat berguna
bila digunakan dengan -p bendera (atau $statistik variabel) untuk mengumpulkan akurat
statistik kinerja.
istilah_judul (string)
Ketika variabel ini disetel, sqsh akan mengatur ulang nama terminal saat ini (xterm)
jendela itu berjalan masuk Bekerja untuk xterm, rxvt, dempul dan jendela MS-Windows CMD. Itu
name terdiri dari nama startup sqsh yang ditambahkan dengan nilai yang diperluas dari
$term_title variabel.
ambang_tampilan (int)
Menetapkan tingkat keparahan kesalahan SQL Server minimum yang akan menampilkan pesan kepada pengguna,
defaultnya adalah 0 dan rentang yang valid adalah antara 0 dan 22, inklusif.
ambang_keluar (int)
Menentukan jumlah maksimum kesalahan tingkat keparahan $thresh_fail itu mungkin
ditemui sebelum sqsh dibatalkan. Ini berguna terutama untuk skrip non-interaktif,
tetapi diperbolehkan pada sesi interaktif. Pengaturan $thresh_exit ke nilai 0
menonaktifkan fitur ini. Lihat bagian EXIT STATUS untuk rincian.
ambang_gagal (int)
Menetapkan tingkat keparahan SQL Server minimum yang dianggap sebagai kumpulan gagal.
Minimum untuk nilai ini adalah 0 (artinya kesalahan apa pun yang bukan merupakan informasi
pesan), dan maksimumnya adalah 22. Kapanpun $thresh_fail disilangkan, variabel
$batch_failcount bertambah 1. Lihat bagian EXIT STATUS untuk rincian.
waktu (spesifikasi tanggal)
Variabel ini dapat diatur dengan format waktu (lihat halaman manual untuk tanggal(1)), dan
variabel diperluas ke waktu saat ini dalam format yang disediakan. Format default untuk
variabel ini adalah %H:%M:%S (misalnya 14:32:58).
tmp_dir (jalur)
Ini berisi direktori tempat file-file sementara digunakan secara internal oleh sqsh adalah untuk menjadi
tertulis. File-file ini dihasilkan baik selama pengeditan buffer (the \buf-edit
perintah), atau untuk mempertahankan file penangguhan keluaran untuk pekerjaan latar belakang. Nilai default
untuk variabel ini adalah /tmp.
nama pengguna (string)
Nama pengguna yang saat ini terhubung ke database.
versi (tidak ada)
Variabel read-only ini berisi nomor versi saat ini. (sqsh-2.1.7)
lebar (int)
Lebar keluaran SQL saat ini.
xgeom (string/int)
Jika dukungan X11 dikompilasi menjadi sqsh, nilai ini digunakan untuk mengkonfigurasi default
ukuran jendela (dalam karakter) dari tampilan X. Variabel ini harus dalam format WxH
atau hanya W, Di mana W adalah lebar jendela dan H adalah tinggi jendela. Jika
ketinggian jendela tidak diberikan, maka 25 garis diasumsikan. Jika $xgeom tidak
setel, lalu $lebar digunakan sebagai lebar default dan tinggi diasumsikan 25. Jika
tidak ada yang disetel, maka 80x25 diasumsikan.
xwin_title (string)
Jika dukungan X11 dikompilasi menjadi sqsh dan jendela hasil X11 diminta dengan menggunakan
itu -x parameter dari \Pergilah or \rpc perintah, maka variabel ini akan digunakan untuk mengatur
nama judul jendela. Dapat ditimpa untuk sementara dengan -T pilihan dari
\Pergilah dan \rpc perintah.
Naskah Execution
Seperti kebanyakan cangkang, sqsh memungkinkan file yang berisi perintah SQL dan skrip untuk dieksekusi
langsung melalui UNIX ajaib #! Konvensi. Pada sebagian besar platform UNIX, saat beroperasi
sistem menemukan byte #! sebagai dua byte pertama dari file yang dapat dieksekusi itu akan
secara otomatis menyalurkan file melalui penerjemah yang ditentukan segera setelah #!.
Misalnya, untuk membuat file yang dapat dieksekusi sqsh skrip untuk dijalankan sp_siapa, Anda hanya perlu membuat
file seperti ini:
#!/usr/bin/sqsh -i
sp_siapa
go
Jadi, jika Anda sp_siapa skrip dieksekusi secara langsung, itu akan diluncurkan secara otomatis
"/usr/bin/sqsh -i sp_siapa" untukmu.
Dan, untuk membuat segalanya lebih fleksibel, sqsh mendukung parameter posisi, mirip dengan
kebanyakan cangkang, dari bentuknya ${n} yang akan diperluas ke nargumen untuk Anda sqsh Script.
Sebagai contoh:
#!/usr/bin/sqsh -i
sp_siapa ${1}
go
akan menyebabkan sp_siapa prosedur tersimpan yang akan dieksekusi dengan argumen yang pertama
parameter baris perintah yang diberikan ke sp_siapa skrip cangkang.
Perhatikan bahwa parameter posisi harus terkandung di antara kawat gigi untuk menghindari konflik dengan
TSQL uang tipe data (tanpa kurung kurawal, variabel tidak akan diperluas).
EXIT STATUS
Salah satu keluhan utama dari isql adalah bahwa ia tidak menyediakan fasilitas untuk mendeteksi kapan suatu
kondisi kesalahan terjadi saat sedang melakukan pemrosesan. sqsh menyediakan agak
mekanisme yang kompleks, tetapi fleksibel untuk mengembalikan informasi yang berarti mengenai alasannya
untuk keluar dalam bentuk status keluar (lihat keluar(3)).
Ketika sqsh memulai eksekusi dua penangan dikaitkan dengan koneksi saat ini ke
database, salah satunya adalah penangan pesan yang bertanggung jawab untuk menampilkan teks dari SQL apa pun
Pesan atau kesalahan server, dan yang lainnya adalah penangan kesalahan, yang bertanggung jawab untuk
menentukan apa yang harus dilakukan dengan kondisi kesalahan (bersabarlah, ini hanya longgar
deskripsi). Dan, terkait dengan setiap pesan dan kondisi kesalahan adalah tingkat keparahan,
antara 0 dan 22 (pesan informasi untuk kondisi fatal).
Terkait dengan dua penangan pesan ini adalah beberapa variabel yang digunakan untuk
mengontrol perilaku mereka, atau digunakan sebagai indikator oleh penangan pesan:
$thresh_display
Variabel ini digunakan oleh penangan pesan untuk menentukan tingkat keparahan kesalahan minimum
yang akan menyebabkan pesan ditampilkan. Secara default ini adalah 0, yang akan ditampilkan
semua pesan (dengan beberapa pengecualian). Menyetel ini ke 1, misalnya, akan
menekan pesan informasi seperti output dari set rencana pertunjukan on.
$thresh_fail
Variabel ini digunakan oleh penangan kesalahan untuk menentukan tingkat keparahan kesalahan mana yang
dipertimbangkan oleh sqsh menjadi sebuah kegagalan. Biasanya, ini default ke 11 yang menunjukkan bahwa
kesalahan apa pun, selain pesan informasional, adalah kegagalan. Variabel selanjutnya akan
menjelaskan pentingnya nilai ini.
$batch_failcount
Variabel ini harus dianggap hanya-baca, dan berisi jumlah total kali
bahwa batch telah menyebabkan kesalahan tingkat keparahan $thresh_fail atau lebih. Satu-satunya nilai
yang valid untuk secara eksplisit menetapkan nilai ini, adalah "" (string kosong), yang akan
reset nilai ini ke 0, nilai lain apa pun mungkin memiliki hasil yang tidak terduga.
$thresh_exit
Variabel ini digunakan untuk menentukan batas di mana $batch_failcount akan menyebabkan sqsh
untuk keluar. Jika $thresh_exit adalah 0, maka fitur ini dinonaktifkan. Dengan kata lain, jika
$batch_failcount = $thresh_exit dan $thresh_exit lebih besar dari 0, maka sqsh akan
keluar, kembali $batch_failcount sebagai status keluar.
Perhatikan bahwa, kecuali $keluar_failcount diatur ke 1, sqsh akan keluar dengan 0 jika total
jumlah kegagalan tidak mencapai $thresh_exit.
$keluar_failcount
Variabel ini hanya digunakan ketika sqsh biasanya akan keluar dengan status sukses (0),
ini menyebabkannya keluar dengan nilai $batch_failcount (yang mungkin, dengan sendirinya, menjadi
0).
$keluar_nilai
Ketika variabel ini bukan nol, itu akan menimpa $keluar_failcount dan
$batch_failcount nilai dan hanya keluar dari nilai $keluar_nilai. Variabel ini mungkin
diatur secara eksplisit menggunakan \mengatur perintah, atau secara implisit menggunakan \keluar x dan aliasnya
rekan-rekan.
Untuk rekap, berikut adalah daftar kode kesalahan yang mungkin dikembalikan oleh sqsh saat keluar, dan
alasan bahwa mereka dapat dikembalikan:
- 0 -
Tidak ada kesalahan yang ditemukan.
- 1 -
Antara 1 dan 253 batch telah gagal (jika Anda menjalankan lebih dari 253 batch, pintu keluar
status sqsh belum ditentukan ... Saya dapat memperbaikinya di masa mendatang).
- 254 -
eksplisit \menggugurkan dipanggil, atau SIGINT (^C) dikeluarkan selama non-interaktif
sidang.
- 255 -
Kondisi kesalahan umum telah terjadi, seperti argumen baris perintah yang buruk ke sqsh,
kegagalan alokasi memori, kesalahan akses file, dll.
Bagian berikut memberikan contoh rinci kombinasi pengaturan variabel dan
hasil yang dihasilkan saat keluar dengan kondisi kegagalan tertentu. Diasumsikan
$keluar_nilai variabel berisi 0 dalam contoh berikut.
thresh_display=0, thresh_fail=0, thresh_exit=1
Dengan kombinasi ini, semua pesan kesalahan akan ditampilkan saat itu terjadi, dan setiap
kesalahan akan dianggap sebagai kondisi kegagalan. Setelah mencapai kesalahan pertama, sqsh
akan dibatalkan dengan status keluar 1, atau jumlah total kegagalan (the
$batch_failcount variabel). Namun, jika tidak ada yang salah selama seluruh proses, a
nol dikembalikan.
thresh_display=0, thresh_fail=0, thresh_exit=3
Kombinasi ini akan menyebabkan semua kondisi kesalahan ditampilkan dan semuanya menjadi
dianggap sebagai kondisi gagal. Setelah mencapai tiga total batch yang gagal, sqsh akan
exit dengan status 3. Namun jika 0, 1, atau 2 batch gagal, maka 0 dikembalikan.
thresh_display=22, thresh_fail=0, thresh_exit=3
Ini berperilaku sama seperti contoh sebelumnya, dengan pengecualian bahwa semua kesalahan
pesan akan ditekan agar tidak ditampilkan. Ini sangat berguna jika Anda
hanya peduli tentang nilai keluar lebih dari kesalahan yang sebenarnya.
thresh_display=0, thresh_fail=2, thresh_exit=1
Ini akan menyebabkan kesalahan pertama dengan tingkat keparahan 2 atau lebih tinggi ditampilkan dan menyebabkan sqsh
untuk keluar dengan kondisi kegagalan 1.
thresh_display=0, thresh_fail=0, thresh_exit=3, exit_failcount=1
Ini identik dengan contoh kedua, di atas, namun sqsh akan mengembalikan total
jumlah batch yang gagal bahkan jika $batch_failcount tidak mencapai 3
exit_value = bukan nol
Ini akan mengesampingkan semua kondisi yang dijelaskan di atas dan hanya keluar dari nilai tertentu.
bermacam-macam
mewarnai sqsh meminta, dan sebagainya
Kode warna disajikan sebagai string seperti {1;2;3}. Jika sqsh menemukan { (kurung kurawal)
dalam string prompt itu akan menganggap kode warna diberikan dan akan bertindak seperti itu. Tidak
pemeriksaan akan dilakukan pada validitas definisi kode warna itu sendiri. Warna
definisi terdiri dari tiga nilai yang dipisahkan oleh titik koma.
Kode pertama mendefinisikan Kode Atribut Warna dengan kemungkinan nilai: 0=none 1=bold
Nilai kedua mendefinisikan Kode Warna Teks: 30=hitam 31=merah 32=hijau 33=kuning 34=biru
35=magenta 36=sian 37=putih
Nilai ketiga mendefinisikan Kode Warna Latar Belakang: 40=hitam 41=merah 42=hijau 43=kuning
44=biru 45=magenta 46=sian 47=putih Kode warna terakhir untuk latar belakang dapat dihilangkan.
Tidak semua kombinasi warna dan atribut akan memberikan hasil yang baik, tergantung pada
jenis terminal dan skema warna. Tetapi nilai-nilai berikut berfungsi dengan baik pada xterm dengan krim
warna latar belakang putih di Linux serta rxvt di Cygwin dengan jendela latar belakang hitam:
Prompt: Teks biru dengan latar belakang putih "{0;34;47}"
Teks perintah: Teks kuning "{0;33}"
sqsh akan menerjemahkan kode warna ke string kode warna aktual yang disajikan ke
readline: misalnya "\001\033[0;36;47m\002". Perhatikan bahwa jika Anda ingin menggunakan tanda kurung kurawal
di Prompt Anda, Anda harus menghindari pewarnaan dengan menentukan kurung kurawal ganda, seperti
{{...}}. Sebagai contoh:
\set prompt_color='{0;34;47}'
\set text_color='{0;33}'
\set prompt='$prompt_color{{$DSQUERY.$username.$database.$lineno}}>$text_color '
Dukungan warna tersedia secara otomatis jika sqsh dikompilasi dan ditautkan dengan readline
dukungan diaktifkan.
Gunakan sqsh online menggunakan layanan onworks.net