下面我有這個要求不正是我想要什麼,但它做它僅當字段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