[20211220]sqlplus簡單計算器.txt
[20211220]sqlplus簡單計算器.txt
--//看了tpt包calc.sql指令碼,他要求輸入3個引數,計算出10進位制以及16進位制結果.
--//但是他的指令碼比較靈活支援10進位制以及16進位制數字的輸入:
--//例子:
SCOTT@book> @ ver1
PORT_STRING VERSION BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
SCOTT@book> @ calc 10 + 4
DEC HEX
----------------------------------- --------------------
14.000000 E
SCOTT@book> @ calc 0x10 + 4
DEC HEX
----------------------------------- --------------------
20.000000 14
SCOTT@book> @ calc x10 + 4
DEC HEX
----------------------------------- --------------------
20.000000 14
--//我自己寫一個簡單一點的輸入10進位制,算出10進位制,16進位制的結果.注意輸入引數中間不能有空格。
$ cat calcx.sql
COL value new_value newvalue
COL calc_dec HEAD "DEC" FOR 999999999999999999999999999.999999
COL calc_hex HEAD "HEX" FOR A20 JUSTIFY RIGHT
set termout off
select &1 value from dual;
set termout on
select &newvalue calc_dec , TO_CHAR (&newvalue, 'FM0xxxxxxxxxxxxxxx') calc_hex from dual ;
--//測試:
SCOTT@book> @calcx 120/12
DEC HEX
----------------------------------- --------------------
10.000000 000000000000000a
SCOTT@book> @calcx power(2,10)+1
DEC HEX
----------------------------------- --------------------
1025.000000 0000000000000401
--//我以前從網上抄來一個bash計算器,自己修改一下,定義成函式.看看在sqlplus裡面是否支援bash函式呼叫.
--//使用bc計算器,裡面函式不能使用圓括號,使用中括號代替。
--//測試不行。修改成shell。
# cat //usr/local/bin/==
# /bin/bash
# simple calc
in="$(echo "$@" | sed -e 's/\[/(/g' -e 's/\]/)/g')";
echo $in | bc -lq | tr -d '\n\\\r' | sed -e "s/\.\([0-9]*[1-9]\)0\+$/.\1/" -e "s/\.0\+$//"
echo
SCOTT@book> host == "scale=4;4/3"
1.3333
--//有分號要加引號才行.
SCOTT@book> host == 2^240
1766847064778384329583297500742918515827483896875618958121606201292619776
--//在bc下執行出現折行情況.
$ echo 2^240 | bc -lq
17668470647783843295832975007429185158274838968756189581216062012926\
19776
SCOTT@book> host == "scale=100;a(1)*4"
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170676
--//PI小數點100位.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2848491/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20211220]記錄使用sqlplus的小問題.txtSQL
- [20180625]簡單計算日誌生成率.txt
- 簡單混合運算的計算器
- [20230323]sqlplus #.txtSQL
- JavaScript簡單計算器程式碼分析JavaScript
- 簡單計算器(棧的應用)
- 16_簡單計算器實現
- java方法練習之簡單計算器Java
- Python編寫一個簡單計算器Python
- 7-20 簡單計算器 (20分)
- [20191010]bash行計算器.txt
- [20211220]關於標量子查詢問題.txt
- 【Flutter 實戰】簡約而不簡單的計算器Flutter
- HDU_1237 一個簡單的計算器
- Java實現一個簡單的計算器Java
- 教你python tkinter實現簡單計算器功能Python
- IOS開發 製作簡單的計算器iOS
- 1、簡單工廠模式實現計算器功能模式
- 用java實現一個簡單的計算器Java
- [20190215]sqlplus set arraysize.txtSQL
- [20190524]sqlplus 與輸出&.txtSQL
- [20190530]sqlplus preliminary connection.txtSQL
- [20211125]sqlplus生成html格式.txtSQLHTML
- [20211108]sqlplus管道過濾.txtSQL
- 0014---簡單的計算
- python簡易計算器Python
- 簡單計算器 (關於棧的一種應用)
- 從0到1實現一個簡單計算器
- [20211123]sqlplus @與@@的區別.txtSQL
- [20221203]sqlplus set trimspool 問題.txtSQL
- [20230417]sqlplus warpped word_warp.txtSQL
- [20221202]sqlplus set trimout 問題.txtSQL
- 用JS點選事件做一個簡單的計算器JS事件
- python——設計一個簡單的購房商貸月供計算器Python
- [20180510]sqlplus array 和 opifch2.txtSQL
- [20191104]sqlplus 管道檔案 過濾.txtSQL
- [20190720]sqlplus 與輸出& 2.txtSQL
- [20211108]sqlplus 本地登入緩慢.txtSQL