2012-06-14 62 views
3

我想編寫一個程序,它根據表格中給出的數據用文本替換每個特定的字母。根據表格數據替換文字

create table jap (
alpha varchar2(1), 
conv varchar2(5) 
); 

insert into jap(alpha,conv) values ('A' , 'ka'); 
insert into jap(alpha,conv) values ('B' , 'tu'); 
insert into jap(alpha,conv) values ('C' , 'mi'); 
insert into jap(alpha,conv) values ('D' , 'te'); 
insert into jap(alpha,conv) values ('E' , 'ku'); 
insert into jap(alpha,conv) values ('F' , 'lu'); 
insert into jap(alpha,conv) values ('G' , 'ji'); 

例如,輸入DEC應導致輸出tekumi

回答

5

試試這個:

SELECT xmlagg(xmlelement(e, conv) 
       ORDER BY l).extract('//text()') .getstringval() 
FROM 
    (SELECT DISTINCT LEVEL l, 
         substr('DEC', LEVEL, 1) letter 
    FROM dual CONNECT BY LEVEL <= length('DEC')) 
INNER JOIN jap ON alpha = letter 
ORDER BY l ; 

Here是小提琴

+0

朋友我已經試過,但我們的代碼是行不通的。謝謝你的時間。 –

+2

也許比「不工作」更有幫助?我已經快速查看了SQL小提琴,它似乎運行,除了字母出現在錯誤的順序('metiku',而不是'tekumi')。可能只需要一個簡單的修復。 –

+0

此代碼適用於我。如果它不適合你,這可能是你犯的一個錯誤(錯字或其他)。無論如何,你需要給我們更多的細節,解釋*如果它不起作用,包括任何錯誤信息,如果你期望有人幫助你進一步。 – APC