下面我有这个要求不正是我想要什么,但它做它仅当字段AUTHOR_ID和AUTHOR_NAME是VARCHAR以及其中的值由明星都喜欢在此表中分离:手柄wordrap deliminator
ID_BOOK | ID_AUTHOR | NAME AUTHOR |
-----------------------------------------------
001 |01 | AuthorU |
-----------------------------------------------
002 |02*03*04 | AuthorX*AuthorY*AuthorZ |
-----------------------------------------------
请求会给我这样的结果:
ID_BOOK | ID_AUTHOR | NAME AUTHOR |
-----------------------------------------------
001 |01 | AuthorU |
-----------------------------------------------
002 |02 | AuthorX |
-----------------------------------------------
002 |03 | AuthorY |
-----------------------------------------------
002 |04 | AuthorZ |
-----------------------------------------------
但在现实生活中这两个领域是CLOB,没有明星deliminator,有保险业监督wordrap deliminator,让数据看起来像在现实生活中:
ID_BOOK | ID_AUTHOR | NAME AUTHOR |
-----------------------------------------------
001 |01 | AuthorU |
-----------------------------------------------
002 |02*03*04 | AuthorXAuthorYAuthorZ |
我试图得到相同的结果,我得到了它的Varchar字段和明星定界符,因为与CLOB我不能使用REGEXP_SUBSTR,我不知道如何处理字符分界符。你能帮我提一些提示吗?非常感谢。
SELECT
ID_Book,
REGEXP_SUBSTR(ID_Author, '[^*]+', 1, Counter) AS AuthID,
REGEXP_SUBSTR(Name_Author, '[^*]+', 1, Counter) AS AuthName
FROM Books
CROSS JOIN (
SELECT LEVEL Counter
FROM DUAL
CONNECT BY LEVEL <= (
SELECT MAX(REGEXP_COUNT(ID_Author, '[^*]+'))
FROM Books))
WHERE REGEXP_SUBSTR(Name_Author, '[^*]+', 1, Counter) IS NOT NULL
ORDER BY 1, 2
什么字符被用作'文字删除器'? – 2013-03-25 19:06:57
嗨Egor,当我打开SqlDeveloper并查看数据时,它将它们连接显示出来,但是当我双击以更改字段的值时,它会向我显示一行中的每个值,这就是为什么我对自己说过它使用一个可以作为删除器但是很不幸,我不能说如何.. – Walloud 2013-03-25 20:15:24