2016-06-27 26 views
0

私はこのような表を持っています。APEX 5:テーブルをテキストエリアに読み込む

私は今、例えば

前と後のいくつかのプレーンテキストを追加し、テキストエリアやDisplayonlyフィールドに特定のreferenceIDsでIPアドレスを取得する必要があり

`referenceID, IP1, IP2, IP3, subnetmask` 

*/ 
*/this goes infront of the ips 
<ip1><ip2><ip3><subnet> 
<2ip1><2ip2><2ip3><2subnet> 
*/this text comes after the ips` 

問題は、Iでありますテキストエリア(または表示のみ)にすべての文字列とipsを選択する方法を見つけることができません。

メソッドこれまでに、「間違った列数」やPL/SQLのようなエラーが原因で、これらのINTOをどこかで選択する場所を選択するように指示しました。

解決方法やヘルプがあれば分かります。

答えて

0

あなたは(this answerに基づいて)このように試みることができる:

SELECT 'this goes infront of the ips' || 
     replace(SYS_CONNECT_BY_PATH (x_text, '~'), '~', CHR(10)) || 
     CHR(10) || 'this text comes after the ips' AS textarea 
    FROM (SELECT IP1 || ',' || IP2 || ',' || IP3 || ',' || subnetmask AS x_text, 
       ROW_NUMBER() OVER (ORDER BY referenceID) AS x_rownumber, 
       COUNT (*) OVER() AS x_count 
      FROM yourtable 
      WHERE referenceID > 0) 
WHERE x_rownumber = x_count 
START WITH x_rownumber = 1 
CONNECT BY x_rownumber = PRIOR x_rownumber + 1 

は、Oracle 11.2以降を使用している場合、あなたは(another answerに基づいて)次を使用する必要があります。

SELECT 'this goes infront of the ips' || CHR(10) || 
     LISTAGG(IP1 || ',' || IP2 || ',' || IP3 || ',' || subnetmask, CHR(10)) 
     WITHIN GROUP (ORDER BY referenceID) || 
     CHR(10) || 'this text comes after the ips' AS textarea 
FROM yourtable 
WHERE referenceID > 0 

注:referenceID > 0は、クエリを特定のreferenceIDに限定するための単なる例であり、yourtableはテーブルの名前に置き換えてください。

関連する問題