盗衍 发表于 2025-6-10 18:57:37

[20241112]无法理解sqlplus的输出.txt

无法理解sqlplus的输出.txt

--//昨天遇到的问题,执行10tox.sql脚本出现一些状况。分析认为oracle 把8d当作数字。
--//但是还是遇到我无法理解的情况:

1.环境:
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

2.测试:
SCOTT@book> select 1a,2b,3c,4d,5e,6f,7z1 from dual ;
         A          B          C         4D          E         6F         Z1
---------- ---------- ---------- ---------- ---------- ---------- ----------
         1          2          3   4.0E+000          5   6.0E+000          7
--//实际上就是将1a 变成 1 A,A作为了字段名。
--//但是4d,6f出现科学计数法的输出格式,为什么?

SCOTT@book> @ hash
HASH_VALUE SQL_ID        CHILD_NUMBER KGL_BUCKET PLAN_HASH_VALUE HASH_HEX   SQL_EXEC_START      SQL_EXEC_ID
---------- ------------- ------------ ---------- --------------- ---------- ------------------- -----------
2105708413 b34gktxys53vx            0      36733      1388734953  7d828f7d  2024-11-12 17:27:40    16777216

SCOTT@book> @ expand_sql_text b34gktxys53vx
SELECT 1 "A",2 "B",3 "C",4d "4D",5 "E",6f "6F",7 "Z1" FROM "SYS"."DUAL" "A1"
PL/SQL procedure successfully completed.

--//展开后出现4d "4d",6f "6f"的情况,不理解。似乎有时候d f代替e的功能。

--//再贴一些例子:
SCOTT@book> select 8d+3e+5f from dual ;
8D+3E+5F
----------
  3.0E+005

SCOTT@book> set numw 20
SCOTT@book> select 8d+3e+5f from dual ;

            8D+3E+5F
--------------------
        3.00008E+005

--//相当于解析位  8 + 3e5  。

SCOTT@book> select 8e+3d+5f from dual ;

            8E+3D+5F
--------------------
          8.005E+003

--//8e3 + 5。

SCOTT@book> select 1a + 2b from dual ;
select 1a + 2b from dual
          *
ERROR at line 1:
ORA-00923: FROM keyword not found where expected
--//这样写不能参与计算的。

SCOTT@book> select 16O from dual ;
                   O
--------------------
                  16

SCOTT@book> select  8+16o  from dual ;
                   O
--------------------
                  24

SCOTT@book> select  16o+8  from dual ;
select  16o+8  from dual
           *
ERROR at line 1:
ORA-00923: FROM keyword not found where expected

SCOTT@book> select  16d+8  from dual ;
               16D+8
--------------------
            2.4E+001

--//那位给出一些解析,oracle为什么这样设计。
--//晚上想一想,似乎d表示decimal,f表示浮点型,e表示幂数,输出采用科学计数法。

SCOTT@book> select 4d,5d ,5.3d ,5.4de, 5.5fd from dual ;

        4D         5D       5.3D          E          D
---------- ---------- ---------- ---------- ----------
  4.0E+000   5.0E+000   5.3E+000   5.4E+000   5.5E+000

--//一些细节留给大家揣摩吧...
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

厌外 发表于 2025-10-11 21:07:20

感谢,下载保存了

周冰心 发表于 2025-11-6 18:51:37

不错,里面软件多更新就更好了

存叭 发表于 2025-11-12 04:52:32

很好很强大我过来先占个楼 待编辑

韦逸思 发表于 2025-11-27 16:48:29

过来提前占个楼

豌畔丛 发表于 2025-12-14 12:02:39

这个好,看起来很实用

梨恐 发表于 2025-12-14 17:13:16

鼓励转贴优秀软件安全工具和文档!

仟仞 发表于 2025-12-16 11:37:53

感谢分享,下载保存了,貌似很强大

士沌 发表于 2025-12-18 15:15:59

新版吗?好像是停更了吧。

匡菲 发表于 2025-12-18 15:59:56

谢谢楼主提供!

硫辨姥 发表于 2026-1-7 06:55:23

yyds。多谢分享

敖雨燕 发表于 2026-1-18 02:25:07

东西不错很实用谢谢分享

焦听云 发表于 2026-1-20 18:49:43

谢谢楼主提供!

全叶农 发表于 2026-1-21 04:12:41

这个有用。

砂歹汤 发表于 2026-1-22 12:07:40

过来提前占个楼

锦惺 发表于 2026-1-26 09:35:00

感谢分享

缑娅瑛 发表于 2026-1-28 07:53:38

喜欢鼓捣这些软件,现在用得少,谢谢分享!

决台 发表于 2026-2-3 06:26:18

喜欢鼓捣这些软件,现在用得少,谢谢分享!

吕颐然 发表于 2026-2-6 05:21:26

谢谢分享,辛苦了

施婉秀 发表于 2026-2-7 04:18:07

感谢分享,下载保存了,貌似很强大
页: [1] 2
查看完整版本: [20241112]无法理解sqlplus的输出.txt