PL/SQL 数组到 CLOB
我使用的是 Oracle 9i。
我正在将数据从游标提取到数组中:
FETCH contract_cur
BULK COLLECT INTO l_contract ;
但现在我想将这个 l_contract 转换为 CLOB 变量 l_clob
有没有一种简单的方法可以做到这一点?
或者,我如何将 SELECT 语句中的行转换为一个 CLOB 变量?
谢谢
编辑:我忘了提及它是一组 %ROWTYPE,而不仅仅是一列。
i m using Oracle 9i.
I m fetching data from a cursor into an array :
FETCH contract_cur
BULK COLLECT INTO l_contract ;
But now i want to "convert" this l_contract into a CLOB variable l_clob
Is there an easy way to do that?
Or otherwise, how do i convertthe rows from a SELECT statement into one single CLOB Variable ?
thanks
EDIT : i forgot to mention its an array of %ROWTYPE, not just one column.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是多么丑陋的事情啊。
是所有字符数据,还是其中也有数字和/或日期/时间值?如果是这样,当您将这些数据类型转换为字符串时,您希望使用什么格式。
您可能还需要考虑字段和记录分隔符。
您考虑过 XML 吗?
What an ugly thing to do.
Is it all character data, or do you have numeric and/or date/time values in there too ? If so what format do you want to use for those datatypes when you convert them to strings.
You also may need to think about field and record delimiters.
Have you considered XML ?
您可以循环遍历数组并构建 CLOB:
如果您不使用
l_contract
进行其他任何操作,您可以直接从游标循环构建 CLOB,无需数组步骤,这将节省内存并且可能会更快:you can loop through your array and build the CLOB as you go:
If you don't use
l_contract
for anything else you can build the CLOB directly from the cursor loop without the array step, it will save memory and will probably be faster: