| ISQL(1) | دستورات کاربر | ISQL(1) |
نام (NAME)
isql - واسط خط فرمان تعاملی برای اتصالهای پایگاهداده unixODBC
خلاصه دستور (SYNOPSIS)
isql DSN [USER [PASSWORD]] [گزینهها]
iusql DSN [USER [PASSWORD]] [گزینهها]
iusql "ConnectionString" [گزینهها]
توضیحات (DESCRIPTION)
دستور isql ابزاری خط فرمانی برای ارسال پرسوجوهای SQL به پایگاههای داده از طریق لایه انتزاعی unixODBC است.
ابزارهای isql و iusql ابزارهای خط فرمانی هستند که به کاربران اجازه میدهند دستورات SQL را به صورت تعاملی یا دستهای (batch) اجرا کنند.
این ابزارها چندین ویژگی مفید ارائه میدهند، از جمله گزینهای برای تولید خروجی قالببندیشده در یک جدول HTML.
ابزار iusql همانند isql است اما شامل پشتیبانی توکار از یونیکد (Unicode) میباشد. برخی منابع داده فقط با iusql کار میکنند. تفاوت مهم بین این دو ابزار این است که isql با استفاده از SQLConnect متصل میشود و iusql با استفاده از SQLDriverConnect اتصال برقرار میکند.
آرگومانها (ARGUMENTS)
- DSN
- نام منبع داده (Data Source Name یا DSN) مورد استفاده برای اتصال به پایگاهداده SQL. لایه unixODBC منبع داده مشخصشده را در فایلهای /etc/odbc.ini و $HOME/.odbc.ini جستجو میکند که فایل دوم اولویت بالاتری دارد.
هنگام جستجوی فایلهای پیکربندی، unixODBC به دنبال یک نام ساده میگردد. اگر DSN با یک نقطهویرگول آغاز شود، به عنوان یک رشته اتصال (connection string) در نظر گرفته میشود. رشته اتصال میتواند حاوی یک DSN و/یا پارامترهای دیگر جدا شده با نقطهویرگول باشد.
- USER
- کاربر یا نقش پایگاهداده را که اتصال باید تحت آن برقرار شود مشخص میکند.
این پارامتر هرگونه UID مشخصشده در فایلهای پیکربندی منبع داده را لغو (override) میکند.
- PASSWORD
- گذرواژه مورد نیاز برای دسترسی به پایگاهداده برای USER مشخصشده.
این پارامتر هرگونه PASSWORD مشخصشده در فایلهای پیکربندی منبع داده را لغو میکند.
هنگام استفاده از iusql، گذرواژههایی که حاوی نقطهویرگول هستند باید با آکولاد محصور شوند و به یک نقطهویرگول ختم گردند. برای مشاهده ساختار نحوی به بخش مثالها در ادامه مراجعه فرمایید.
- "ConnectionString"
- یک رشته اتصال که با DSN= یا DRIVER= یا FILEDSN= شروع شود بدون تغییر به SQLDriverConnect ارسال خواهد شد. این گزینه امکان استفاده از ساختار نحوی پیچیدهتر را در یک رشته اتصال فراهم میکند که در حالت عادی با استفاده صرف از DSN، UID و PWD امکانپذیر نبود.
همچنین (که دلیل اصلی گنجاندن آن بود) به گذرواژهها اجازه میدهد بدون نیاز به افزودن ساختار گریز (escape) پیچیده به کدهای موجود، حاوی نقطهویرگول باشند.
گزینهها (OPTIONS)
- -b
- اجرای 'isql' در حالت دستهای (batch) غیرتعاملی. در این حالت، 'isql' ورودی استاندارد را پردازش میکند و انتظار یک دستور SQL در هر سطر را دارد.
- -dDELIMITER
- جدا کردن ستونها با جداکننده مشخصشده DELIMITER.
- -xHEX
- جدا کردن ستونها با نویسهای که به صورت هگزادسیمال با HEX مشخص شده است. کد هگزادسیمال باید در قالب 0xNN باشد (برای نمونه 0x09 برای نویسه TAB).
- -w
- قالببندی خروجی به صورت یک جدول HTML.
- -c
- چاپ نام ستونها در سطر اول. این گزینه تنها همراه با گزینههای -d یا -x قابل استفاده است.
- -mNUM
- محدود کردن عرض نمایش ستون به NUM نویسه.
- -lLOCALE
- تنظیم محلیسازی نویسهها (character locale) به LOCALE.
- -q
- محصور کردن فیلدهای متنی در علامت نقلقول دوتایی (double quotes).
- -3
- استفاده از فراخوانیهای نگارش ۳ استاندارد ODBC.
- -n
- پردازش چندین سطر SQL، خاتمهیافته با دستور GO.
- -e
- استفاده از SQLExecDirect بهجای Prepare.
- -k
- استفاده از SQLDriverConnect.
- -v
- فعالسازی حالت پرحرف (verbose)، با توصیف کامل تمام خطاها. این گزینه برای اشکالزدایی مفید است.
- --version
- نمایش نگارش برنامه.
- -LNUM
- تنظیم حداکثر تعداد نویسههای نمایش دادهشده از یک فیلد متنی به NUM. مقدار پیشفرض ۳۰۰ نویسه است.
دستورات (COMMANDS)
این بخش بهطور خلاصه برخی از دستورات زمان اجرای isql و iusql را شرح میدهد.
help
help table
help help
مثالها (EXAMPLES)
- یک DSN ساده:
-
$ iusql WebDB MyID MyPWD -w -b < My.sql
اتصال به DSN با نام WebDB به عنوان کاربر MyID با گذرواژه MyPWD، سپس اجرای دستورات موجود در فایل My.sql و بازگرداندن نتایج در قالب یک جدول HTML.
هر سطر در My.sql باید فقط حاوی یک دستور SQL باشد، به جز سطر آخر که باید خالی باشد (مگر اینکه گزینه -n مشخص شده باشد).
- یک DSN در یک رشته اتصال:
-
به نقطهویرگول ابتدای رشته اتصال توجه فرمایید.
$ iusql ";DSN=WebDB" MyID MyPWD -w -b < My.sql
گزینههای موجود در DSN ممکن است در رشته اتصال بازنویسی (override) شوند:
$ iusql ";DSN=WebDB;Driver=PostgreSQL ODBC;UID=MyID;PASSWORD=secret;Debug=1;CommLog=1" -v
- یک DSN رشتهای:
-
یک DSN رشتهای ممکن است به طور کامل و بدون ارجاع به فایل DSN ارائه شود:
$ iusql ";Driver=PostgreSQL Unicode;UID=MyID;PASSWORD=secret" -v
- یک گذرواژه حاوی نقطهویرگول (iusql):
-
$ iusql WebDB MyID '{My;PWD};'$ iusql 'DSN=WebDB;UID=MyID;PWD={My;PWD};'
عیبیابی (TROUBLESHOOTING)
- پیامهای خطای نامفهوم
-
اجرای دوباره isql یا iusql با فلگ -v برای دریافت اطلاعات بیشتر درباره خطاها، و/یا فعالسازی حالت Trace در odbcinst.ini.
- تعریف نشدن درایور
-
بررسی کنید که نام درایور مشخصشده توسط مدخل Driver در تعریف منبع داده odbc.ini در odbcinst.ini موجود بوده و دقیقاً با [section name] در odbcinst.ini مطابقت داشته باشد.
- درایور بارگذارینشدنی یا ناسازگار
-
اگر درایور ODBC به درستی برای منبع داده مشخص شده باشد، ممکن است درایور بارگذارینشدنی باشد. تداخل میان درایورهای Unicode و ANSI را بررسی کرده و مسیرهای درایور را در [section name] فایل odbcinst.ini بازبینی کنید.
- منابع داده یونیکد با کلاینتهای ANSI
-
برخی از منابع داده فقط یونیکد هستند و نیاز به استفاده از iusql دارند. اگر isql پیام زیر را گزارش دهد:
[IM002][unixODBC][Driver Manager]Data source name not found and no default driver specified [ISQL]ERROR: Could not SQLConnect
اما منبع داده و درایور مورد نیاز در خروجی دستورهایodbcinst -q -d
وodbcinst -q -s
فهرست شده باشند، استفاده از iusql را امتحان فرمایید.
فایلها (FILES)
/etc/odbc.ini
$HOME/.odbc.ini
همچنین ببینید (SEE ALSO)
unixODBC(7), odbcinst(1), odbc.ini(5)
"The unixODBC Administrator Manual (HTML)"
نویسندگان (AUTHORS)
نویسندگان unixODBC عبارتند از Peter Harvey <pharvey@codebydesign.com> و Nick Gorham <nick@lurcher.org>.
برای مشاهده فهرست کامل مشارکتکنندگان، به فایل AUTHORS مراجعه فرمایید.
حق نشر (COPYRIGHT)
پروژه unixODBC تحت مجوز GNU Lesser General Public License منتشر شده است. برای مشاهده جزئیات مربوط به مجوز، به فایل COPYING مراجعه کنید.
| مه ۲۰۲۵ | unixodbc |