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

来源:这里教程网 时间:2026-03-03 20:50:01 作者:

[20241112]无法理解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 --//一些细节留给大家揣摩吧...

相关推荐