如何在ORACLE数据库的表列中检测数据类型(可能是blob或clob)?

时间:2018-10-29 11:57:49

标签: oracle blob clob varchar2

我有一个表,其中的列格式为VARCHAR2(2000 CHAR)。该列包含一行,其中用逗号分隔的数字(ex: "3;3;780;1230;1;450..")。现在情况已经改变。有些行包含旧格式的数据,但有些行包含以下数据(ex: "BAAAABAAAAAgAAAAHAAAAAAAAAAAAAAAAQOUw6..")。也许是斑点或团块。我如何准确检查?现在我该如何阅读?对不起我的菜鸟问题:)

1 个答案:

答案 0 :(得分:0)

坏消息是你真的做不到。您的列是VARCHAR2,因此它是所有字符数据。似乎您真正要问的是“如何判断此值是逗号分隔的字符串还是编码为字符串的二进制值?”因此,您所能做的最好是做出有根据的猜测。这里的信息不足,无法给出很好的答案,但是您可以尝试以下方法:

  1. 如果该值是带有分隔符的数字字符(您说逗号,但您的示例中包含分号),则应将其视为此类。

    • 但是,如果列值是“ 123”,那是单个数字还是短二进制值呢?
  2. 如果值中包含任何字母,您知道它不是数字的单独列表,请将其视为二进制。但并非所有编码的二进制值都具有字母。

  3. 尝试将其解码为二进制,如果失败,则可能实际上是分开的列表。这可能不是一个好东西。