好的...这就是我所得到的。有一个Oracle数据库表有一个数据类型为VARCHAR
的列。该列称为“值”,包含表示不同值的字符串。所以有些记录在这个列中有一个数字,其他的记录有科学记数法,其他日期,其他实际字符等,但是它们都将作为字符串存储在这个“值”列中。确定Oracle中字符串值的数据类型
我需要编写一个视图,该视图可以查询此表并确定“值”列中的字符串表示哪种数据类型。我知道我可以做PL/SQL来做到这一点,但我无法创建一个存储过程,并且需要在视图中 - 出于其他原因。
好的...这就是我所得到的。有一个Oracle数据库表有一个数据类型为VARCHAR
的列。该列称为“值”,包含表示不同值的字符串。所以有些记录在这个列中有一个数字,其他的记录有科学记数法,其他日期,其他实际字符等,但是它们都将作为字符串存储在这个“值”列中。确定Oracle中字符串值的数据类型
我需要编写一个视图,该视图可以查询此表并确定“值”列中的字符串表示哪种数据类型。我知道我可以做PL/SQL来做到这一点,但我无法创建一个存储过程,并且需要在视图中 - 出于其他原因。
我认为你需要有一个额外的列描述存储在Value
列
Value VARCHAR2,
ValueType VARCHAR2 -- e.g. Age, Name, Money
视图中的值,那么你用一个CASE语句来确定
CASE
WHEN ValueType = 'Age' THEN 'integer'
WHEN ValueType = 'Name' THEN 'string'
WHEN ValueType = 'Money' THEN 'decimal'
END As ColumnValueType
您还可以使用正则表达式
所以你有一列'价值'与一堆随机的东西呢?是否有另一列,比如'valueType',它告诉你类别是?因为如果没有,你只是得到了一列垃圾,除PL/SQL之外,没有什么可以做的。 – APC
另外,*为什么*您没有权限使用PL/SQL来执行此操作?这似乎是一个严重搞砸的应用程序,并且禁止使用最好的工具对它进行分类显然是愚蠢的。 – APC