【问题标题】:Determining the data type of a string value in Oracle在Oracle中确定字符串值的数据类型
【发布时间】:2012-09-29 21:39:38
【问题描述】:

好的……这就是我所拥有的。有一个 Oracle 数据库表,其中有一列是 VARCHAR 数据类型。此列称为“值”,包含代表不同事物的不同值的字符串。所以有些记录在这个列中有一个数字,其他的有科学记数法,其他的日期,其他的实际字符等,但它们都将作为字符串存储在这个“值”列中。

我需要编写一个视图来查询这个表,并确定'value'列中的字符串代表什么数据类型。我知道我可以执行 PL/SQL 来执行此操作,但我无权创建存储过程,并且这需要在视图中 - 出于其他原因。

【问题讨论】:

  • 所以你有一个专栏value,里面有一堆随机的东西?是否有另一列,例如valueType,它告诉您类别是?因为如果不是这样,您就只有一列垃圾,除了 PL/SQL 之外,您无能为力。
  • 另外,为什么您无权使用 PL/SQL 执行此操作?这似乎是一个严重混乱的应用程序,不允许使用最好的工具来解决它是非常愚蠢的。

标签: oracle types type-conversion


【解决方案1】:

我认为您需要有一个额外的列来描述存储在 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

你也可以使用正则表达式

【讨论】:

  • 我不认为还有其他专栏。我只能看到一列“值”。
  • 我认为 Oracle 10g 及更高版本具有正则表达式功能,您可以使用但也可能会变得复杂
  • @EastCarolinaPirate - “我不认为”请确定。 “仅可用”是什么意思?有人禁止你看到桌子的完整投影吗?还是真的只有一列?
猜你喜欢
  • 2012-08-15
  • 2013-09-28
  • 1970-01-01
  • 1970-01-01
  • 2011-01-07
  • 2011-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多