Den*_*nis 1 sql oracle plsql clob
有一个值列表,我从shell获得输出.该列表每行包含一个"名称",如下所示.它有超过300行,预计会更长.
BeforeArchive_Field
BeforeArchive_Reservoir
BeforeArchive_Well
BeforeArchive_Wellbore
BeforeArchive_WellboreCompletion
BeforeArchive_WellboreContactInterval
ba_organization_part0
ba_organization_part2
Run Code Online (Sandbox Code Playgroud)
我需要将此列表传递给pl/sql过程,以便它可以解析它并操作每个单独的"名称".由于列表的长度,我想到创建一个存储过程,它将此列表作为CLOB参数.
这两个问题是:
这是处理列表的最佳方式(格式)吗?
如果是这样,有没有一种直接解析这个clob的地狱的方法?
我通过pl\sql 回答逐行阅读这个 阅读clob,但是在某些情况下,事情可能会更简单.
我不熟悉这种LOB格式,并希望得到任何帮助.
对我来说这似乎是一个好主意:用clob调用一次存储过程并调用另一个用于处理单行的proc可以在应用服务器和数据库服务器之间保存一些I/O.
我有一个非常简单的程序来逐行拆分clob:
create table test (c clob);
insert into test (c) values (
'azertyuiop
qsdfghjklm
wxcvbn
');
select to_char(regexp_substr(test.c, '.+', 1, level)) pattern
from test
connect by level <= regexp_count(test.c, '.+');
Run Code Online (Sandbox Code Playgroud)
正如预期的那样:
PATTERN
1 azertyuiop
2 qsdfghjklm
3 wxcvbn
Run Code Online (Sandbox Code Playgroud)
您可以在a中的第一个存储过程中使用此查询for line in ()来逐行调用第二个过程.
| 归档时间: |
|
| 查看次数: |
3997 次 |
| 最近记录: |