達夢資料庫Disql用法詳解之Disql命令列命令用法介紹

始於腳下發表於2021-01-26

達夢資料庫Disql用法詳解之Disql命令列命令用法介紹

1 、將disql產生的記錄資訊輸入到指定檔案中,如將select sysdate from dual的結果儲存到C:\dmdbms\sysdate.sql檔案中

SQL> spool C:\dmdbms\sysdate.sql
SQL> select sysdate from dual;
 
行號       SYSDATE
 
---------- ---------------------------------------------------------------------
-------------------------------
1          2020-12-14 16:46:28
 
已用時間: 0.425(毫秒). 執行號:405.
SQL> spool off
SQL>


如果想要把其他查詢資訊追加到上面C:\dmdbms\sysdate.sql中,可以使用append引數,也可以使用replace引數替換已存在檔案,如下追加select table_name from dba_tables where rownum = 1內容至C:\dmdbms\sysdate.sql中

SQL> spool C:\dmdbms\sysdate.sql append
SQL> select table_name from dba_tables where rownum = 1;
 
行號       TABLE_NAME
---------- ----------
1          SYSOBJECTS
 
已用時間: 18.484(毫秒). 執行號:411.
SQL> spool off
SQL>


2 、顯示disql視窗最近執行的SQL語句或者plsql塊

SQL> l
1* select table_name from dba_tables where rownum = 1;
SQL> list
1* select table_name from dba_tables where rownum = 1;
SQL> ;
1* select table_name from dba_tables where rownum = 1;
SQL>


3 、環境變數配置命令,如設定disql命令列自動提交,查詢結果不顯示列標題,並顯示每個SQL語句執行花費的執行時間。

SQL> set autocommit on heading off
SQL> set timing on


Set 命令用來配置disql命令列環境變數,可以同時設定多個環境變數,也可以單個設定,關於set命令配置的環境變數及其配置值詳細說明,見文章末【附:Disql命令列常用環境變數】

4 、通過disql呼叫編輯器編寫指令碼內容查詢當前系統時間,並呼叫指令碼進行執行,要求指令碼內容中需要列印提示資訊至disql螢幕。

SQL> select sysdate from dual;
 
行號       SYSDATE
 
---------- ---------------------------------------------------------------------
-------------------------------
1          2020-12-24 11:00:49
 
已用時間: 9.627(毫秒). 執行號:4.
SQL> edit
SQL> start C:\dmdbms\data\sysdate.sql
SQL> prompt '查詢當前系統時間'
 '查詢當前系統時間'
SQL> select sysdate from dual;
 
行號       SYSDATE
 
---------- ---------------------------------------------------------------------
-------------------------------
1          2020-12-24 11:06:00
 
已用時間: 0.225(毫秒). 執行號:5.
SQL>
指令碼內容:
prompt '查詢當前系統時間'
select sysdate from dual;


Disql 中可以使用prompt命令將要操作的提示資訊列印在disql螢幕上。Disql命令列內部呼叫指令碼有2種方式,使用start命令或者使用·(反引號)來直接呼叫指令碼,當然也可以通過使用disql –E引數直接在命令列外部執行指令碼。

5 、使用explain命令檢視select count(*) from v$threads的執行計劃,執行完成之後清理執行資訊。

SQL> explain select count(*) from v$threads;
 
1   #NSET2: [0, 1, 0]
2     #PRJT2: [0, 1, 0]; exp_num(1), is_atom(FALSE)
3       #AAGR2: [0, 1, 0]; grp_num(0), sfun_num(1) slave_empty(0)
4         #DSCN: [0, 46, 0]; SYSINDEXV$THREADS(V$THREADS)
 
已用時間: 2.782(毫秒). 執行號:0.
SQL>
SQL> clear scr


Disql 中,clear命令用來清理disql快取資訊,可選引數有COL[UMNS]、SQL、SCR[EEN]、BUFF[ER],分別清理所有的column變數資訊、本地SQL快取資訊、Disql終端螢幕資訊、本地SQL快取資訊(跟SQL引數功能一樣)。

6 、使用host命令執行作業系統命令,如Linux環境下檢視當前目錄,Windows環境下切換至C:/dmdbms目錄。

Linux:
SQL> host pwd
/opt/dmdbms/bin
Windows:
SQL> host cd C:/dmdbms


7 、檢視disql中多個結果集檢視命令more的幫助資訊。

SQL> ? more
 MORE
 ----
 切換到下一個結果集。
 MORE|MR
SQL> help more
 MORE
 ----
 切換到下一個結果集。
 MORE|MR
SQL>


Disql 中,使用help或者?來檢視指定命令的幫助資訊。

附:Disql命令列常用環境變數

變數名稱

變數配置值說明

變數作用

AUTO[COMMIT]

<ON|OFF (預設值) >

設定自動提交

DEFINE

<c( 預設的變數字首是&)|ON(預設值)|OFF>

定義本地變數

ECHO

<ON (預設值) |OFF>

顯示指令碼中正在執行的 SQL 語句

FEED[BACK]

<6 (預設值) |n|ON|OFF>

顯示當前 SQL 語句查詢或修改的行數

HEA[DING]

<ON (預設值) |OFF>

顯示列標題

LINESHOW

<ON 預設值|OFF>

顯示行號

NEWP[AGE]

<1 (預設值) |n|NONE>

設定頁與頁之間的分隔

PAGES[IZE]

<14 (預設值) |n>

設定一頁有多少行數

TIMING

<ON (預設值) |OFF>

顯示每個 SQL 語句花費的執行時間

TIME

<ON|OFF (預設值) >

顯示系統的當前時間

VER[IFY]

<ON (預設值) |OFF>

列出環境變數被替換前、後的控制命令文字

LONG

<800( 預設值)|n>

設定大欄位型別顯示的最大位元組數

LINESIZE

<screem_length( 預設值,螢幕寬度)|n>

設定螢幕上一行顯示寬度

SERVEROUT[PUT]

<ON | OFF( 預設值)>[SIZE   <20000(預設值)|n>][FOR[MAT] <WRA[PPED]|   WOR[D_WRAPPED](預設值)| TRU[NCATED]>]

在塊中有列印資訊時,是否列印,以及列印的格式

SCREENBUFSIZE

<DEFAULT(20K) | n>

設定螢幕緩衝區的長度

CHAR_CODE

<GBK | GB18030| UTF8 | DEFAULT( 預設值,作業系統的編碼方式)>

設定 SQL 語句的編碼方式

CURSOR

<STATIC | FORWARDONLY ( 預設值)|DEFAULT>

設定 DPI 語句控制程式碼中游標的型別

AUTOTRACE

<OFF( 預設值) | NL | INDEX   |ON|TRACE>

設定執行計劃和統計資訊的跟蹤

DESCRIBE

[DEPTH <1( 預設值) | n |   ALL>][LINE[NUM] <ON | OFF(預設值)>][INDENT   <ON | OFF(預設值)>]

設定 DESCRIBE 的顯示方式

TRIMS[POOL]

<OFF( 預設值)| ON>

設定 spool 檔案中每行的結尾空格

LOBCOMPLETE

<OFF( 預設值)| ON>

設定大欄位資料是否從伺服器全部取出

COLSEP

[text]

設定列之間的分割符。預設為一個空格

KEEPDATA

<ON|OFF( 預設值)>

是否為資料對齊進行優化,或者保持資料的原始格式。 ON 不優化, OFF 對齊優化。預設為OFF

AUTORECONN

<ON|OFF( 預設值)>

是否自動重新連線。 ON 是,OFF 否。預設為 OFF

NEST_COMMENT

<ON|OFF( 預設值)>

是否支援多行註釋巢狀。 ON是, OFF 否。 預設為 OFF

NULL_ASNULL

<ON|OFF( 預設值)>

在繫結引數輸入時, 是否將輸入的 NULL 當作資料庫的 null 處理。 ON 是,   OFF 否。 預設為OFF

CMD_EXEC

<ON( 預設值)|OFF>

是否執行檔案中“/” 命令。 ON是, OFF 否。預設為 ON

CHARDEL

[text]

設定字串的限定符。預設為一個空格

FLOAT_SHOW

<0( 預設值)| float_length>

設定 FLOAT、   DOUBLE 型別按科學計數法顯示的分界長度。 預設為 0,代表全部按科學計數法顯示


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31403259/viewspace-2752858/,如需轉載,請註明出處,否則將追究法律責任。

相關文章