如何使用 PL/SQL 从 Oracle 中的 Clob 列读取 CSV 数据
我从过程中获取一个 clob 作为参数,它包含一个 CSV 文件。我需要读取这些数据并将其加载到另一个 Oracle 表中。
有人可以解释一下如何做到这一点吗?
I'm getting a clob as parameter from a procedure and it contains a CSV file. I need to read this data and load it into another Oracle table.
Could someone please explain how to do this.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
据我所知,甲骨文对此没有现成的好东西。一个有希望的候选者是 DBMS_UTILITY.COMMA_TO_TABLE,但它是严重限制特殊任务使其别无选择。所以你必须卷起袖子,自己做。
您的规范有点模糊,但一个选项是
SPLIT
函数:打印:
当然 Oracle 不提供拆分,但 所以有帮助。在上面的例子中,我使用了我自己的。
其他有趣的资源:
AFAIK Oracle has no ready made goodies for this. One promising candidate is DBMS_UTILITY.COMMA_TO_TABLE, but it's heavily limited to a very special task making it no-option. So you have to roll your sleeves and make your own.
Your specification is a bit vague, but one option is a
SPLIT
function:Prints:
Of cource Oracle doesn't provide split but SO helps. In the example above I have used my own one.
Other interesting resources:
不要将数据导出到文件。
您需要将 clob 转换为有用的内容,解析它,然后写入另一个表。以下是您需要执行的步骤:
CSVReader reader = new CSVReader(the_reader_from_getCharacterStream);
ftwOracle 的 CLOB 对象 提供了一些有用的方法。
CSVReader
来自打开 CSV。Do not export the data to a file.
You will need to convert the clob into something useful, parse it, then write to the other table. Here is the steps you need to do:
CSVReader reader = new CSVReader(the_reader_from_getCharacterStream);
ftwOracle's CLOB Object provides some useful methods.
CSVReader
is from Open CSV.我不知道将 clob 解析为 CSV 的直接方法,但 Oracle 提供了许多用于处理 CSV 文件 的工具,例如 外部表 和 SQL*Loader。
因此,一种方法可能是:
I don't know of an immediate way of parsing a clob as a CSV, but Oracle provides a number of tools for working with CSV files such as External Tables and SQL*Loader.
So an approach might be to: