我阅读了有关此问题的不同文章,但对我的问题没有帮助。 我在本地数据库(Microsoft SQL Server)上,并在远程数据库(ORACLE)上查询数据。 在此数据中,有一个CLOB类型。
CLOB类型列仅向我显示7个正确的数据,其他向我显示<null>
我试图CAST(DEQ_COMMENTAIRE_REFUS_IMPORT AS VARCHAR(4000))
我试图SUBSTRING(DEQ_COMMENTAIRE_REFUS_IMPORT, 4000, 1)
可以帮我吗?
谢谢
答案 0 :(得分:0)
没有MSSQL,但就我而言,我们是使用Oracle的ODBC Connect引擎将数据提取到MariaDB中的。
对于CLOB,我们进行了以下操作(概述):
这将为CLOB返回指定的第1000个字符的第n个块。
我们发现1,000最佳处理多字节数据。如果数据全部为纯文本单字节,则4,000个数据块是安全的。
很抱歉没有实际的代码,因为我有点赶时间。
我们发现Oracle不喜欢拥有超过16个这样的列,因此我们不得不将视图分为16个这样的列的集合。
这意味着您必须检查CLOB中数据的最大大小,以便知道需要多少块/视图。无需多说,要动态地这样做会增加复杂性。
在MariaDB中创建视图以查询视图。
在MariaDB中创建表/视图,该表/视图将这些块连接到单个Text列中。
请注意,在我们的案例中,我们发现使用ODBC Connect引擎在MariaDB数据库之间复制Text类型列也是有问题的,并且需要类似的拆分方法。
坦率地说,我宁愿使用Java / C#。