sql - 返回Oracle中表达式的数据类型
问题描述
有没有办法在 Oracle 中获取表达式的数据类型?
例如,在 Teradata 我可以写
SELECT TYPE(4 + 4);
并获得整数。但在 Oracle 中同样行不通
SELECT TYPE(4 + 4)
FROM dual;
返回错误。我知道我可以查看表格描述,但如果可能的话,这种方式会派上用场。
解决方案
不幸的是,TYPE()
Oracle 中没有任何功能。
一种方法是使用该DUMP
函数,如下所示:
select dump(4+4) from dual;
DUMP(4+4)
------------------
Typ=2 Len=2: 193,9
这将数据类型显示为 2。然后您需要查看文档以了解其含义。例如:
https://docs.oracle.com/database/121/SQLRF/sql_elements001.htm#BABCGCHG
在这里可以看到 Code = 2 对应数据类型NUMBER
。
屁股还是很痛,但至少有办法。
唉,Oracle 似乎没有在 db 中提供表(代码、data_type),但您可以自己构建一个 - 然后您可以将它与它结合起来,DUMP
这样您就可以始终在单个SELECT
.
推荐阅读
- debugging - Prolog - 使用 maplist 应用参数
- linux - 如何使用 ffmpeg 从管道和磁盘加入视频文件?
- directx - 尽管其他缓冲区正在绑定,但常量缓冲区未绑定?(DirectX12)
- racket - gen:custom-write 用于 Racket 类
- asp.net-core - How to use localization in Asp.Net Core with Generic Controller
- python - How to get rid of last characters of a pandas object?
- android - android – 如何在 GridLayout 中留出空白空间
- git - 如何使签出分支成为master
- javascript - Percentage Symbol in Pivot Table (Graph View) Odoo V8
- css - Responsive named grid-template-columns?