Oracle 有没有办法获取表达式的数据类型?
例如,在 Teradata 中我可以写
SELECT TYPE(4 + 4);
Run Code Online (Sandbox Code Playgroud)
并得到整数。但同样的方法在 Oracle 中不起作用
SELECT TYPE(4 + 4)
FROM dual;
Run Code Online (Sandbox Code Playgroud)
返回错误。我知道我可以查看表格说明,但如果可能的话,这种方式会派上用场。
小智 6
不幸的是,TYPE()Oracle 中没有这个函数。
一种方法是使用该DUMP函数,如下所示:
select dump(4+4) from dual;
DUMP(4+4)
------------------
Typ=2 Len=2: 193,9
Run Code Online (Sandbox Code Playgroud)
这显示数据类型为2。然后你需要检查文档来了解这意味着什么。例如:
https://docs.oracle.com/database/121/SQLRF/sql_elements001.htm#BABCGCHG
这里可以看到Code=2对应的数据类型NUMBER。
虽然还是很痛苦,但至少有办法。
唉,Oracle 似乎没有在数据库中提供表(代码,data_type),但您可以自己构建一个表 - 然后您可以将其组合起来,DUMP以便您始终可以在单个SELECT.
| 归档时间: |
|
| 查看次数: |
3204 次 |
| 最近记录: |