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



我有一个带有VARCHAR2(2000 CHAR)格式列的表。此列包含一行,该行包含逗号分隔的数字(ex: "3;3;780;1230;1;450..")。现在情况已经改变了。有些行包含旧格式的数据,但有些行包含以下数据(ex: "BAAAABAAAAAgAAAAHAAAAAAAAAAAAAAAAQOUw6..")。也许是斑点或斑点。我该怎么查?我现在该怎么读呢?对不起我的问题:(

坏消息是你真的做不到。您的列是一个VARCHAR2,所以它都是字符数据。你真正想问的似乎是"我该如何判断这个值是逗号分隔的字符串还是编码为字符串的二进制值?"所以你能做的最好的事情就是做出有根据的猜测。这里没有足够的信息来给出一个很好的答案,但你可以尝试以下方法:

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

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

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

最新更新