• <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++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

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

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

            DB2 UDB 命令行處理器(CLP)是一個接口,通過這個接口可以方便地 DB2 UDB 函數。CLP 接受來自 DB2 命令行的命令或 SQL 語句。在基于 Linux 和 UNIX 的系統中,這個命令行是 DB2 實例的命令行。在 Windows 操作系統中,它是啟用了 CLP 命令窗口的命令行;在這種情況下,必須先(從普通命令窗口)運行 db2cmd 命令來啟動 DB2 命令行環境。

            db2 命令可以啟動命令行處理器。CLP 包括前端進程(表示用戶界面)和后端進程,可以用它們來維護數據庫連接。每次 db2 調用都啟動新的前端進程;第一次 db2 調用要啟動后端進程。擁有相同父進程的所有前端進程都是由一個后端進程提供服務的,因此它們共享一個數據庫連接。QUIT 命令停止命令行處理器,但是不刪除關聯的后端進程;要刪除關聯的后端進程,需要發出 TERMINATE 命令。建議在停止實例(STOP DATABASE MANAGER 或 db2stop)之前執行 TERMINATE 命令;否則,后端進程會保持一個不再可用的實例連接(Attachment)。

            db2 命令

            可以用下列三種模式之一啟動 CLP:

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

            db2start

            db2 connect to sample

            db2 select * from org

            db2 terminate

            db2stop

            可以通過從 Windows DB2 命令提示符發出 myfile 來運行該文件。

            交互輸入模式。可以通過發出 db2 命令同時不指定其他任何東西來啟動該模式。交互輸入模式的特點在于默認 db2 => 命令提示符。從該提示符下發出的命令和語句沒有前綴 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>

            現在可以定制該提示符,并當前會話的命令歷史記錄。要退出交互輸入模式,可以返回操作系統提示符,然后發出 QUIT 命令或 TERMINATE 命令。

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

            !db2start;

            connect to sample;

            select * from org;

            terminate;

            可以通過從 DB2 命令提示符發出 db2 -tf myscript.db2 來運行該文件。注意這個文件與上面顯示的 myfile.cmd 在內容上的差別。在該例中,文件中的命令和語句沒有前綴 db2。每個命令或語句以分號結尾;實際上,通過在 db2 命令中指定 -t 選項標記,我們指示 CLP 使用分號作為語句終止字符。您可能還注意到 db2start 命令前的感嘆號,這說明該命令不是 CLP 命令,而是從操作系統提示符發出的系統命令。這個感嘆號是換碼符,允許您從交互輸入模式或批處理模式發出操作系統命令。

            圖 1 顯示了完整的 db2 命令語法。選項包括用來配置 CLP 會話的一個或多個選項標記的規范(表 1)、要執行的 DB2 命令或 SQL 語句、一般 CLP 幫助請求(?),或者與特定命令相關的幫助文本(? phrase)、SQLCODE(? message)、SQLSTATE(? sqlstate)或類代碼(? class-code)。您還可以請求 CLP 選項的當前設置(? options),或者請求關于閱讀在線幫助語法表的信息(? help)。下例說明了其中一些選項:

            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 命令有關的其他一些要點:

            問號(?)與后面的文本字符串之間至少要隔開一個空格。

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

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

            如果 db2 命令返回的消息文本過長,那么可以考慮使用“more”分屏顯示(如果可以在操作系統中使用的話),或將輸出重定向到一個文件中。例如:

            db2 "? sql0510" more

            db2 "? SQL0510" > sql0510n.out

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

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

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

            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”(以大寫字符指定)識別為空字符串。例如:

            db2 update database configuration using mirrorlogpath NULL

            圖 1. db2 命令的語法

            表 1. CLP 選項標記

            選項

            描述(默認)

            -a

            顯示 SQLCA 數據。(OFF)

            -c

            自動提交 SQL 語句。(ON)

            -e{cs}

            將 SQLCODE 或 SQLSTATE 數據寫入標準輸出。(OFF)

            -f filename

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

            -l filename

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

            -n

            保留分隔符號內換行字符前的所有尾部空格字符。例如:

            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 選項必須與 -t 選項一起使用。(OFF)

            -o

            將數據和消息都寫入標準輸出。(ON)

            -p

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

            -r filename

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

            -s

            如果執行命令腳本時或在處于 CLP 交互模式下時發生錯誤,那么可以使用這個選項停止處理;將錯誤消息寫入標準輸出。如果禁用該選項,則會顯示錯誤消息,并繼續執行剩余命令或語句;只有發生系統錯誤時才停止執行。(OFF)

            -t

            使用分號(;)作為語句終止符號。該選項禁用反斜線(“)行連續字符。(OFF)

            -tdx

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

            -v

            將輸入文本回送到標準輸出。(OFF)

            -w

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

            -x

            返回沒有任何標題(包括列名)的數據。(OFF)

            -z filename

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

            CLP 選項通常可以以任何順序和組合來指定。要開啟選項,則需要在相應的選項字符前加上減號(例如,-f)。要關閉選項,則需要在選項字母前加上加號,或者在選項字母兩邊分別加上減號。

            可以使用 LIST COMMAND OPTIONS 命令查看 CLP 選項的當前設置。通過發出 UPDATE COMMAND OPTIONS 命令,可以在 CLP 交互輸入模式或批處理模式下更改這些設置。例如:

            db2 => update command options using c off p off

            在交互會話或批處理輸入結束時,這些設置恢復為它們的原始值。

            還可以使用 DB2OPTIONS 注冊變量設置會話的 CLP 選項。例如:

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

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

            該命令關閉 SQL 語句的自動提交,并刪除在 CLP 交互輸入模式下顯示的提示符。

            交互 CLP 中的新的可用功能

            DB2 UDB Version 8.1 引入了針對 DB2 CLP 的一些易用性方面的重要改進。現在可以對在交互模式下使用 CLP 時出現的提示符進行定制。還可以使用新的命令緩存來運行以前執行的命令,或者使用操作系統的集成命令器或選擇的器來那些命令。

            定制的 CLP 提示符可以顯示當前用戶、實例連接或數據庫連接。要定義命令提示符,則需要設置新的名為 DB2_CLPPROMPT 的 DB2 UDB 注冊變量。DB2_CLPPROMPT 注冊變量可以設置為任何文本字符串,最大長度為 100 個字符。定制的字符串可以包含任意符號,在運行的時候,實際值將替代這些符號。側欄中描述了可以設置的符號。

            久久婷婷五月综合成人D啪| 久久综合久久综合久久综合| 久久午夜电影网| 亚洲午夜无码久久久久| 亚洲人AV永久一区二区三区久久| 久久免费视频观看| 久久久九九有精品国产| 久久婷婷五月综合色高清| 狠狠色丁香久久婷婷综合五月| 色综合久久综合中文综合网| 国产成人精品三上悠亚久久| 久久夜色精品国产噜噜亚洲a| 日产精品久久久久久久| 欧美亚洲国产精品久久| 少妇久久久久久被弄高潮| 国产精品久久久久久福利漫画 | 国产精品美女久久久久久2018| 午夜精品久久久久久99热| 久久久久成人精品无码中文字幕 | 久久ww精品w免费人成| 国产精品岛国久久久久| 99久久精品国产一区二区| 久久精品人妻一区二区三区| 伊人色综合久久天天网| 日产精品久久久一区二区| 伊人久久综在合线亚洲2019| 久久精品国产亚洲一区二区三区| 久久午夜福利无码1000合集| 韩国三级大全久久网站| 久久激情亚洲精品无码?V| 人妻少妇久久中文字幕| 99久久婷婷国产一区二区 | 久久精品国产亚洲av日韩 | 国产福利电影一区二区三区,免费久久久久久久精 | 亚洲精品高清国产一线久久| 精品国产乱码久久久久久郑州公司| 国产一区二区三区久久| 久久亚洲国产成人影院| 99久久精品国产一区二区| 精品无码久久久久国产动漫3d | 97超级碰碰碰久久久久|