如何使用oracle中的游标将源表中的多行插入到目标表中的单行中
create table pr_info(
pr_ref varchar2(10),
pr_text varchar2(3),
pr_key varchar2(12)
)
该表包含以下格式的数据
pr_ref pr_text pr_key
a1 abc qwertyui01
a1 def qwertyui02
b1 aaa zxcvbnmj01
b1 bbb zxcvbnmj02
b1 ccc zxcvbnmj03
即,如果 pr_text 长度超过 3 个字符,则记录将被拆分并放置在具有相同 pr_ref 的新记录中但不同的pr_key(在这种情况下,前8个字符将保持相同,但最后两个字符将表示记录的顺序)
所以现在我需要将此表的数据放入一个新表中,该表具有以下规范
create table pv_cus(pv_ref vrachar2(10),pv_text varchar2(100))
所以基本上我需要连接源表中属于同一个人的行并将其放在目标表中的一行中。
pv_ref pv_text
a1 abc,def
b1 aaa,bbb,ccc
Possible Duplicate:
How can multiple rows be concatenated into one in Oracle without creating a stored procedure?
create table pr_info(
pr_ref varchar2(10),
pr_text varchar2(3),
pr_key varchar2(12)
)
This table contains the data in the following format
pr_ref pr_text pr_key
a1 abc qwertyui01
a1 def qwertyui02
b1 aaa zxcvbnmj01
b1 bbb zxcvbnmj02
b1 ccc zxcvbnmj03
That is if the pr_text is more than 3 characters long then the record is split and placed in a new record with same pr_ref but different pr_key(in this case the first 8 characters will remain the same but the last two character will signify the sequence of the record)
So now i need to put the data of this table into a new table which has the following sprecification
create table pv_cus(pv_ref vrachar2(10),pv_text varchar2(100))
So basically i need to concatenate the rows belonging to same person from the source table and put it in one row in target table.
pv_ref pv_text
a1 abc,def
b1 aaa,bbb,ccc
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
程序方法
Procedural approach