• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Prayer

            在一般中尋求卓越
            posts - 1256, comments - 190, trackbacks - 0, articles - 0
              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            DB2UDB命令行處理器介紹(1)

            Posted on 2010-01-28 23:16 Prayer 閱讀(310) 評(píng)論(0)  編輯 收藏 引用 所屬分類: DB2

            DB2 UDB 命令行處理器(CLP)是一個(gè)接口,通過(guò)這個(gè)接口可以方便地 DB2 UDB 函數(shù)。CLP 接受來(lái)自 DB2 命令行的命令或 SQL 語(yǔ)句。在基于 Linux 和 UNIX 的系統(tǒng)中,這個(gè)命令行是 DB2 實(shí)例的命令行。在 Windows 操作系統(tǒng)中,它是啟用了 CLP 命令窗口的命令行;在這種情況下,必須先(從普通命令窗口)運(yùn)行 db2cmd 命令來(lái)啟動(dòng) DB2 命令行環(huán)境。

            db2 命令可以啟動(dòng)命令行處理器。CLP 包括前端進(jìn)程(表示用戶界面)和后端進(jìn)程,可以用它們來(lái)維護(hù)數(shù)據(jù)庫(kù)連接。每次 db2 調(diào)用都啟動(dòng)新的前端進(jìn)程;第一次 db2 調(diào)用要啟動(dòng)后端進(jìn)程。擁有相同父進(jìn)程的所有前端進(jìn)程都是由一個(gè)后端進(jìn)程提供服務(wù)的,因此它們共享一個(gè)數(shù)據(jù)庫(kù)連接。QUIT 命令停止命令行處理器,但是不刪除關(guān)聯(lián)的后端進(jìn)程;要?jiǎng)h除關(guān)聯(lián)的后端進(jìn)程,需要發(fā)出 TERMINATE 命令。建議在停止實(shí)例(STOP DATABASE MANAGER 或 db2stop)之前執(zhí)行 TERMINATE 命令;否則,后端進(jìn)程會(huì)保持一個(gè)不再可用的實(shí)例連接(Attachment)。

            db2 命令

            可以用下列三種模式之一啟動(dòng) CLP:

            命令模式。在這種模式下,每個(gè)命令或 SQL 語(yǔ)句必須添加前綴 db2。在 Windows 操作系統(tǒng)中,DOSKEY 命令允許使用 Up Arrow(向上箭頭)鍵在會(huì)話的命令歷史記錄上滾動(dòng),并重新發(fā)出命令,而無(wú)需再次輸入該命令。還可以創(chuàng)建包含 DB2 命令或 SQL 語(yǔ)句的命令文件,并像運(yùn)行其他任何命令文件那樣運(yùn)行該文件。例如,名為 myfile.cmd 的文件包含下列代碼:

            db2start

            db2 connect to sample

            db2 select * from org

            db2 terminate

            db2stop

            可以通過(guò)從 Windows DB2 命令提示符發(fā)出 myfile 來(lái)運(yùn)行該文件。

            交互輸入模式。可以通過(guò)發(fā)出 db2 命令同時(shí)不指定其他任何東西來(lái)啟動(dòng)該模式。交互輸入模式的特點(diǎn)在于默認(rèn) db2 => 命令提示符。從該提示符下發(fā)出的命令和語(yǔ)句沒(méi)有前綴 db2:

            elk /home/melnyk>db2

            ...

            db2 => connect to sample

            Database Connection Information

            Database server= DB2/6000 8.2.0

            SQL authorization ID = MELNYK

            Local database alias = SAMPLE

            db2 => select * from org

            DEPTNUMB DEPTNAME MANAGER DIVISION LOCATION

            - -

            10 Head Office160 CorporateNew York

            15 New England 50 EasternBoston

            20 Mid Atlantic10 EasternWashington

            38 South Atlantic30 EasternAtlanta

            42 Great Lakes100 MidwestChicago

            51 Plains 140 MidwestDallas

            66 Pacific270 WesternSan Francisco

            84 Mountain 290 WesternDenver

            8 record(s) selected.

            db2 => terminate

            DB20000IThe TERMINATE command completed successfully.

            elk /home/melnyk>

            現(xiàn)在可以定制該提示符,并當(dāng)前會(huì)話的命令歷史記錄。要退出交互輸入模式,可以返回操作系統(tǒng)提示符,然后發(fā)出 QUIT 命令或 TERMINATE 命令。

            批處理模式。該模式允許運(yùn)行命令腳本、文本文件中的 DB2 命令或 SQL 語(yǔ)句,這些腳本、文本文件按其執(zhí)行順序包含命令和語(yǔ)句。在該例中,可以在 db2 命令中使用 -f 選項(xiàng)標(biāo)記(參見(jiàn)表 1)來(lái)指定命令腳本的名稱。例如,名為 myscript.db2 的文件包含下列代碼:

            !db2start;

            connect to sample;

            select * from org;

            terminate;

            可以通過(guò)從 DB2 命令提示符發(fā)出 db2 -tf myscript.db2 來(lái)運(yùn)行該文件。注意這個(gè)文件與上面顯示的 myfile.cmd 在內(nèi)容上的差別。在該例中,文件中的命令和語(yǔ)句沒(méi)有前綴 db2。每個(gè)命令或語(yǔ)句以分號(hào)結(jié)尾;實(shí)際上,通過(guò)在 db2 命令中指定 -t 選項(xiàng)標(biāo)記,我們指示 CLP 使用分號(hào)作為語(yǔ)句終止字符。您可能還注意到 db2start 命令前的感嘆號(hào),這說(shuō)明該命令不是 CLP 命令,而是從操作系統(tǒng)提示符發(fā)出的系統(tǒng)命令。這個(gè)感嘆號(hào)是換碼符,允許您從交互輸入模式或批處理模式發(fā)出操作系統(tǒng)命令。

            圖 1 顯示了完整的 db2 命令語(yǔ)法。選項(xiàng)包括用來(lái)配置 CLP 會(huì)話的一個(gè)或多個(gè)選項(xiàng)標(biāo)記的規(guī)范(表 1)、要執(zhí)行的 DB2 命令或 SQL 語(yǔ)句、一般 CLP 幫助請(qǐng)求(?),或者與特定命令相關(guān)的幫助文本(? phrase)、SQLCODE(? message)、SQLSTATE(? sqlstate)或類代碼(? class-code)。您還可以請(qǐng)求 CLP 選項(xiàng)的當(dāng)前設(shè)置(? options),或者請(qǐng)求關(guān)于閱讀在線幫助語(yǔ)法表的信息(? help)。下例說(shuō)明了其中一些選項(xiàng):

            db2 -tvf myscript.db2 => option flags

            db2 connect to sample => SQL statement

            db2 list tables for user=> DB2 command

            db2 ? => general CLP help

            db2 ? options => current CLP options settings

            db2 ? help=> help for syntax online help

            db2 ? backup=> help for a specific DB2 command

            db2 ? sql0117N=> help for a specific SQLCODE

            db2 ? 42501 => help for a specific SQLSTATE

            db2 ? 01=> help for a specific class code

            下面是需要記住的與 db2 命令有關(guān)的其他一些要點(diǎn):

            問(wèn)號(hào)(?)與后面的文本字符串之間至少要隔開(kāi)一個(gè)空格。

            CLP 將前綴為兩個(gè)連字符的所有文本字符串都解釋為注釋。

            在 CLP 命令模式或交互輸入模式下,可以將反斜線字符(“)用作行連續(xù)字符。CLP 遇到行連續(xù)符時(shí),它會(huì)讀取下一行并將兩行連接起來(lái)。在 Windows 操作系統(tǒng)中,行連續(xù)字符生成臨時(shí) db2 (cont.) => 提示符。

            如果 db2 命令返回的消息文本過(guò)長(zhǎng),那么可以考慮使用“more”分屏顯示(如果可以在操作系統(tǒng)中使用的話),或?qū)⑤敵鲋囟ㄏ虻揭粋€(gè)文件中。例如:

            db2 "? sql0510" more

            db2 "? SQL0510" > sql0510n.out

            也可以使用 -r 或 -z CLP 選項(xiàng)將輸出重定向到文件中(參見(jiàn)表 1)。例如:

            db2 -r mydata“orglist.txt "select * from org"

            建議在基于 Linux 和 UNIX 的系統(tǒng)中使用雙引號(hào)分隔符。如果在 CLP 命令模式下使用了特殊字符,那么這些特殊符號(hào)將由操作系統(tǒng) shell 解釋。這可能會(huì)生成意想不到的結(jié)果,除非使用雙引號(hào)或換碼符(如反斜線字符 “)。例如,在 AIX Korn shell 環(huán)境中執(zhí)行下列命令時(shí),如下所示:

            db2 select * from employee where edlevel > 18

            該命令被解釋為“選擇 employee 表中所有 edlevel 大于 18 的記錄,并將輸出重定向到名為‘18’的文件”。下列命令將返回正確的輸出:

            db2 "select * from employee where edlevel > 18"

            db2 select “* from employee where edlevel “> 18

            CLP 將“NULL”(以大寫(xiě)字符指定)識(shí)別為空字符串。例如:

            db2 update database configuration using mirrorlogpath NULL

            圖 1. db2 命令的語(yǔ)法

            表 1. CLP 選項(xiàng)標(biāo)記

            選項(xiàng)

            描述(默認(rèn))

            -a

            顯示 SQLCA 數(shù)據(jù)。(OFF)

            -c

            自動(dòng)提交 SQL 語(yǔ)句。(ON)

            -e{cs}

            將 SQLCODE 或 SQLSTATE 數(shù)據(jù)寫(xiě)入標(biāo)準(zhǔn)輸出。(OFF)

            -f filename

            接受指定文件(命令腳本)中的輸入。如果其他選項(xiàng)與 -f 選項(xiàng)一起指定,必須最后指定 -f 選項(xiàng)。(OFF)

            -l filename

            將日志記錄寫(xiě)入指定文件。該文件包含已執(zhí)行命令和語(yǔ)句的歷史記錄。如果該文件已經(jīng)存在,則新的信息會(huì)添加在該文件的后面。如果其他選項(xiàng)與 -l 選項(xiàng)一起指定,必須最后指定 -l 選項(xiàng)。(OFF)

            -n

            保留分隔符號(hào)內(nèi)換行字符前的所有尾部空格字符。例如:

            create table t1 (c1 varchar(30));

            insert into t1 values (‘123

            789‘);

            three blanks spaces follow ‘123

            update command options using n on;

            insert into t1 values (‘123

            789‘);

            select * from t1;

            C1

            123 789

            123 789

            2 record(s) selected.

            -n 選項(xiàng)必須與 -t 選項(xiàng)一起使用。(OFF)

            -o

            將數(shù)據(jù)和消息都寫(xiě)入標(biāo)準(zhǔn)輸出。(ON)

            -p

            處于 CLP 交互模式下時(shí)顯示提示符。(ON)

            -r filename

            將輸出(消息和錯(cuò)誤代碼除外)重定向到指定的文件。如果該文件已經(jīng)存在,則將新的消息添加到文件的后面。如果 -a 選項(xiàng)與 -r 選項(xiàng)一起指定,那么將 SQLCA 數(shù)據(jù)也寫(xiě)入文件中。-r 選項(xiàng)不影響 -e 選項(xiàng)。如果指定了 -e 選項(xiàng),那么 SQLCODE 或 SQLSTATE 數(shù)據(jù)被寫(xiě)入標(biāo)準(zhǔn)輸出,而不是被寫(xiě)入文件中。(OFF)

            -s

            如果執(zhí)行命令腳本時(shí)或在處于 CLP 交互模式下時(shí)發(fā)生錯(cuò)誤,那么可以使用這個(gè)選項(xiàng)停止處理;將錯(cuò)誤消息寫(xiě)入標(biāo)準(zhǔn)輸出。如果禁用該選項(xiàng),則會(huì)顯示錯(cuò)誤消息,并繼續(xù)執(zhí)行剩余命令或語(yǔ)句;只有發(fā)生系統(tǒng)錯(cuò)誤時(shí)才停止執(zhí)行。(OFF)

            -t

            使用分號(hào)(;)作為語(yǔ)句終止符號(hào)。該選項(xiàng)禁用反斜線(“)行連續(xù)字符。(OFF)

            -tdx

            使用 x 作為語(yǔ)句終止字符。(OFF)

            -v

            將輸入文本回送到標(biāo)準(zhǔn)輸出。(OFF)

            -w

            顯示 SQL 語(yǔ)句警告消息。(ON)

            -x

            返回沒(méi)有任何標(biāo)題(包括列名)的數(shù)據(jù)。(OFF)

            -z filename

            將所有輸出(包括任何消息或錯(cuò)誤代碼)重定向到指定的文件。如果該文件已經(jīng)存在,則將新的信息添加到文件的后面。如果 -a 選項(xiàng)與 -z 選項(xiàng)一起指定,那么還要將 SQLCA 數(shù)據(jù)也寫(xiě)入文件中。-z 選項(xiàng)不影響 -e 選項(xiàng)。如果指定了 -e 選項(xiàng),那么要將 SQLCODE 或 SQLSTATE 數(shù)據(jù)寫(xiě)入標(biāo)準(zhǔn)輸出,而不是寫(xiě)入文件中。(OFF)

            CLP 選項(xiàng)通常可以以任何順序和組合來(lái)指定。要開(kāi)啟選項(xiàng),則需要在相應(yīng)的選項(xiàng)字符前加上減號(hào)(例如,-f)。要關(guān)閉選項(xiàng),則需要在選項(xiàng)字母前加上加號(hào),或者在選項(xiàng)字母兩邊分別加上減號(hào)。

            可以使用 LIST COMMAND OPTIONS 命令查看 CLP 選項(xiàng)的當(dāng)前設(shè)置。通過(guò)發(fā)出 UPDATE COMMAND OPTIONS 命令,可以在 CLP 交互輸入模式或批處理模式下更改這些設(shè)置。例如:

            db2 => update command options using c off p off

            在交互會(huì)話或批處理輸入結(jié)束時(shí),這些設(shè)置恢復(fù)為它們的原始值。

            還可以使用 DB2OPTIONS 注冊(cè)變量設(shè)置會(huì)話的 CLP 選項(xiàng)。例如:

            export DB2OPTIONS=‘+c -p-‘=> Linux and UNIX-based systems

            set DB2OPTIONS=+c -p- => Windows operating systems

            該命令關(guān)閉 SQL 語(yǔ)句的自動(dòng)提交,并刪除在 CLP 交互輸入模式下顯示的提示符。

            交互 CLP 中的新的可用功能

            DB2 UDB Version 8.1 引入了針對(duì) DB2 CLP 的一些易用性方面的重要改進(jìn)。現(xiàn)在可以對(duì)在交互模式下使用 CLP 時(shí)出現(xiàn)的提示符進(jìn)行定制。還可以使用新的命令緩存來(lái)運(yùn)行以前執(zhí)行的命令,或者使用操作系統(tǒng)的集成命令器或選擇的器來(lái)那些命令。

            定制的 CLP 提示符可以顯示當(dāng)前用戶、實(shí)例連接或數(shù)據(jù)庫(kù)連接。要定義命令提示符,則需要設(shè)置新的名為 DB2_CLPPROMPT 的 DB2 UDB 注冊(cè)變量。DB2_CLPPROMPT 注冊(cè)變量可以設(shè)置為任何文本字符串,最大長(zhǎng)度為 100 個(gè)字符。定制的字符串可以包含任意符號(hào),在運(yùn)行的時(shí)候,實(shí)際值將替代這些符號(hào)。側(cè)欄中描述了可以設(shè)置的符號(hào)。

            91精品国产91久久久久久青草| 精品伊人久久久| 国产精品久久久久AV福利动漫 | 久久黄视频| 久久久久久久久久久免费精品| 综合久久久久久中文字幕亚洲国产国产综合一区首 | …久久精品99久久香蕉国产| 色偷偷888欧美精品久久久| 久久久久亚洲精品天堂久久久久久 | 精品久久久无码中文字幕天天| 欧美日韩精品久久久久| 一本色道久久88加勒比—综合| 国产精品99久久久精品无码| 免费观看久久精彩视频| 合区精品久久久中文字幕一区| 99国产精品久久| 人妻精品久久无码区| 日韩亚洲国产综合久久久| 天天久久狠狠色综合| 久久婷婷五月综合色奶水99啪| 久久精品无码av| 91精品无码久久久久久五月天| 久久综合香蕉国产蜜臀AV| 亚洲欧美国产日韩综合久久| 免费精品99久久国产综合精品| 一本色道久久HEZYO无码| 伊人久久国产免费观看视频 | 91精品国产高清久久久久久91 | 国产精品美女久久福利网站| 国产福利电影一区二区三区久久老子无码午夜伦不 | 久久久久久久亚洲精品| 亚洲国产精品久久久久婷婷老年| 久久综合给合久久狠狠狠97色69| 久久久久久久综合狠狠综合| 久久最新免费视频| 亚洲v国产v天堂a无码久久| 日本高清无卡码一区二区久久| 91久久精品无码一区二区毛片| 久久精品国产免费一区| 99久久无码一区人妻| 91久久精品电影|