从 MSSQL 查询远程 oracle CLOB 数据
Query remote oracle CLOB data from MSSQL
我阅读了有关此问题的不同帖子,但没有帮助我解决问题。
我在本地数据库(Microsoft SQL 服务器)上查询远程数据库 (ORACLE) 上的数据。
在这个数据中,有一个CLOB类型。
CLOB 类型的列只显示了 7 个正确的数据,其他人显示的数据 <null>
我试过CAST(DEQ_COMMENTAIRE_REFUS_IMPORT AS VARCHAR(4000))
我试过SUBSTRING(DEQ_COMMENTAIRE_REFUS_IMPORT, 4000, 1)
你能帮帮我吗?
谢谢
没有 MSSQL,但在我的例子中,我们使用 Oracle 的 ODBC Connect 引擎将数据提取到 MariaDB。
对于 CLOB,我们做了以下(大纲):
- 创建 PLSQL 函数 get_clob_chunk (clobin CLOB, chunkno NUMBER) RETURN VARCHAR2.
这将为 CLOB return 指定的第 n 个 1000 个字符块。
我们发现 1,000 最适合处理多字节数据。如果数据都是纯文本单字节,则 4,000 个块是安全的。
抱歉没有实际代码,因为我时间有点赶。
- 创建一个 Oracle VIEW,调用 get_clob_chunk 函数将 CLOB 拆分为 1,000 个字符块列 chunk1、chunk2、... chunkn,CAST 为 VARCHAR2(1000)。
我们发现 Oracle 不喜欢超过 16 个这样的列,因此我们不得不将视图拆分为 16 个这样的列的集合。
这意味着您必须检查 CLOB 中数据的最大大小,以便您知道需要多少 chunks/views。不用说,动态地这样做会增加复杂性。
在查询视图的 MariaDB 中创建一个视图。
在 MariaDB 中创建 table/view,将块连接成单个文本列。
请注意,在我们的案例中,我们发现使用 ODBC Connect 引擎在 MariaDB 数据库之间复制文本类型的列也是有问题的,并且需要类似的拆分方法。
坦率地说,我宁愿为此使用 Java/C#。
我阅读了有关此问题的不同帖子,但没有帮助我解决问题。 我在本地数据库(Microsoft SQL 服务器)上查询远程数据库 (ORACLE) 上的数据。 在这个数据中,有一个CLOB类型。
CLOB 类型的列只显示了 7 个正确的数据,其他人显示的数据 <null>
我试过CAST(DEQ_COMMENTAIRE_REFUS_IMPORT AS VARCHAR(4000))
我试过SUBSTRING(DEQ_COMMENTAIRE_REFUS_IMPORT, 4000, 1)
你能帮帮我吗?
谢谢
没有 MSSQL,但在我的例子中,我们使用 Oracle 的 ODBC Connect 引擎将数据提取到 MariaDB。
对于 CLOB,我们做了以下(大纲):
- 创建 PLSQL 函数 get_clob_chunk (clobin CLOB, chunkno NUMBER) RETURN VARCHAR2.
这将为 CLOB return 指定的第 n 个 1000 个字符块。
我们发现 1,000 最适合处理多字节数据。如果数据都是纯文本单字节,则 4,000 个块是安全的。
抱歉没有实际代码,因为我时间有点赶。
- 创建一个 Oracle VIEW,调用 get_clob_chunk 函数将 CLOB 拆分为 1,000 个字符块列 chunk1、chunk2、... chunkn,CAST 为 VARCHAR2(1000)。
我们发现 Oracle 不喜欢超过 16 个这样的列,因此我们不得不将视图拆分为 16 个这样的列的集合。
这意味着您必须检查 CLOB 中数据的最大大小,以便您知道需要多少 chunks/views。不用说,动态地这样做会增加复杂性。
在查询视图的 MariaDB 中创建一个视图。
在 MariaDB 中创建 table/view,将块连接成单个文本列。
请注意,在我们的案例中,我们发现使用 ODBC Connect 引擎在 MariaDB 数据库之间复制文本类型的列也是有问题的,并且需要类似的拆分方法。
坦率地说,我宁愿为此使用 Java/C#。