从MSSQL查询远程oracle CLOB数据

问题描述 投票:0回答:1

我阅读了有关此问题的不同帖子,但它对我的问题没有帮助。我在本地数据库(Microsoft SQL Server)和远程数据库(ORACLE)上的查询数据。在此数据中,存在CLOB类型。

CLOB类型列显示我只有7个正确的数据,其他人给我看<null>

我试着CAST(DEQ_COMMENTAIRE_REFUS_IMPORT AS VARCHAR(4000))

我试着SUBSTRING(DEQ_COMMENTAIRE_REFUS_IMPORT, 4000, 1)

你能帮我吗 ?

谢谢

sql sql-server oracle varchar clob
1个回答
0
投票

没有MSSQL,但在我的情况下,我们使用Oracle的ODBC Connect引擎将数据提取到MariaDB中。

对于CLOB,我们做了以下(概述):

  1. 创建PLSQL函数get_clob_chunk(clobin CLOB,chunkno NUMBER)RETURN VARCHAR2。

这将返回CLOB的指定第n个1000个字符块。

我们发现1000个使用多字节数据效果最佳。如果数据都是纯文本单字节,那么4,000个块是安全的。

抱歉没有实际的代码,因为我有点匆忙。

  1. 创建一个调用get_clob_chunk函数的Oracle VIEW,将CLOB拆分为1,000个char块列chunk1,chunk2,... chunkn,CAST as VARCHAR2(1000)。

我们发现Oracle不喜欢超过16个这样的列,因此我们不得不将视图拆分为16个这样的列。

这意味着您必须检查CLOB中数据的最大大小,以便了解所需的块/视图数量。不用说,为此动态增加了复杂性。

  1. 在MariaDB中创建一个查询视图的视图。
  2. 在MariaDB中创建表格/视图,将表格连接到单个文本列。

请注意,在我们的示例中,我们发现使用ODBC Connect引擎在MariaDB数据库之间复制文本类型列也存在问题,并且需要类似的拆分方法。

坦率地说,我宁愿使用Java / C#。

© www.soinside.com 2019 - 2024. All rights reserved.