0

Productsというテーブルがあり、 IDNameVersionsの 3 つの列があります。特定の行について、Versions列には、コンマで区切られた多数のバージョンが含まれる場合があります。私が疑問に思っているのは、Apex アプリケーションで、コンマで区切られた各バージョンの LOV を含む選択リストを作成するにはどうすればよいかということです。

たとえば、Productsテーブルに次の行があるとします。

1 | myProduct | 1.0, 1.1, 1.2

Apex アプリケーションで、「1.0」、「1.1」、または「1.2」の LOV を表示する選択リストを作成するにはどうすればよいですか?

4

2 に答える 2

2

確かにそれは可能です。選択リストではデータが行で返されることが想定されているため、連結された文字列を行に変換する必要があることに注意してください。個人的には、XML を使用してこれを行うのが好きです。

SELECT trim(val)
FROM 
  xmltable('/root/e/text()' passing XMLTYPE('<root><e>'
  || REPLACE('1.1, 1.2, 1.3, 1.4',',','</e><e>')
  || '</e></root>') columns val VARCHAR2(50) path '/' )

戻ります

TRIM(VAL)
---------
1.1
1.2
1.3
1.4

したがって、次のように適用できます。

WITH prd_versions AS (
  SELECT versions FROM products WHERE id = :PX_PRODUCT_ID
)
SELECT trim(val)
FROM prd_versions p,
  xmltable('/root/e/text()' passing XMLTYPE('<root><e>'
  || REPLACE(p.v,',','</e><e>')
  || '</e></root>') columns val VARCHAR2(50) path '/' )

もちろん、簡単な Google で表示できるように、文字列を行に分割する方法は他にもあります。

于 2013-04-18T14:17:15.400 に答える
1

表形式のフォームではなく単純なフォームを使用していると仮定すると、次のことができます。

  1. P1_VERSIONS などの列 product.versions の値を保持する隠しアイテムを作成します。
  2. 選択リストの「List of Value Definition」を次のように設定します。STATIC2:&P1_VERSIONS.

(P1_VERSIONS に格納されている値からスペースを削除する必要がある場合があります。)

于 2013-04-22T16:22:30.630 に答える