[20191013]オラクル数変換スクリプト型ストレージの.txt

[20191013]ストレージ変換スクリプト.txtというOracleの数値タイプ

-あなたが問題を解決するためにobaseで出力=紀元前100年に使用できるかどうかを確認するには、//テストを。また、スクリプトで丸め前に、仮数の問題を検討することを忘れ。
- //おそらくそこには常にいくつかの詳細が考慮されていなかった、このようにプログラミング...
- // num2raw_5.shは、次のようにコードがある:

#!/ binに/ bashのの
#番号をOracleのRAW!のために変換

Odebug = $ {ODEBUG:-0 }

#プロセスパラメータ入力""スペースとすべてを削除します。変数v_numする。可変長v_lenに保存する。
v_num = "$ *"
v_num v_num = $ {// [、] /}

E位ストリップまたはトレーリング0 0000.000出力0または小数、
v_num = $(エコー$ v_num / 0.1 + | -e sedの"S / [EE] + \ / * 10 ^ /?" -e "S / ^ /スケール= 180 [; /" | BC | TR -d '\ nは\\\ R' | sedの-e ".. S / \ \([0-9] * [1-9] \)0 \ + $ / \ 1 /" -e " 。S / \ 0 \ + $ //

")[[IF" $のv_num「=〜^ - * $]。];その後、
    v_sign 1 =。
    v_num = $ {v_num :. 1:


Fiの

場合は[$ odebug -eq 1]; その後、
    エコーv_num = "$のv_num"
Fi回線    

v_res = ""
の場合[ "$のv_num" == "0"]; 次いで
    v_res = "80"
    エコー"$ v_res"
    出口0
Fiの

v_pos = $(exprのインデックスの$ v_num "")

であれば[$ v_pos -gt 1]。次いで
    v_exp = $((v_pos / 2))
のelif [$ v_pos -eq 0]; 次いで
    v_exp = $((($ {#1 v_num} +1)/ 2))
のelif [$ v_pos -eq 1]。次いで
    v_tmp1 = $ {v_num:1:180}
    v_tmp2 = $(エコー$ v_tmp1 | 'S / ^ 0 \ + // G' SED)
    v_exp = $((($ {#1 v_tmp2} - $ {#1 v_tmp1}) / 2))
Fiの

v_exp1 = $(printfの"%の02X" $(($ v_exp + 192)))
もし[$ v_sign -eq 1]。



v_res = $ {v_exp1} $ {v_res}

オラクル番号型最大長22バイト(21バイトではない22である??)され、1バイトの指数。
。四舍五入、加5 * 10 ^ -41解决问题要作不BC#
= $ v_num / 100 ^($ v_exp)+ 5 * 10 ^ -41; v_tmp = $(エコー「スケール= 180スケール= 40。 / 1 "| BC | TR -d '\ nは\\\ R' | sedの-e"。。S / \ \([0-9] * [1-9] \)0 \ + $ / \ 1 / "-e "S / \ 0 \ + $ //")。

もし[$ odebug -eq 1]; 次いで
    エコーv_num = "$ v_num" v_len = "$ v_len" v_exp = "$ v_exp" v_exp1 = "$ v_exp1" v_tmp = "$ v_tmp"
Fiの    

[$ v_sign -eq 0]であれば、次いで
    v_res = $ {v_res} $(エコー"obaseで= 100; $のv_tmp" | "" | BC TR -d | AWK「BEGIN {RS = "+ "} /./ {printf関数"は、%02X" $ 1 +1} ')

    v_res = $ {v_res} $(エコー"obaseで= 100; $ v_tmp" | BC | TR -d "" |
AWK 'BEGIN {RS = "+ "} /./ {printf関数" %の02X"を、101- $ 1}') Fiの

もし[$ v_sign -eq 1 -a $ {#1 v_tmp}が40 -lt]。次いで
    v_res = $ {v_res}」、 "" 66"
Fiの

エコー"$ v_res"

おすすめ

転載: www.cnblogs.com/lfree/p/11715309.html