花バージョン: SP12
全て、
多くのブログやフォーラムで Lars が説明しているように、INPUT_PARAMETERS を使用して Calc ビューを正常に作成しました。これらのビューは、単一および複数の入力を直接クエリする場合は問題なく動作しますが、ストアド プロシージャまたはテーブル関数内で Calc ビュー自体に結合を実行すると問題が発生します。
例:
" BASE_SCHEMA"."BASE_TABLE_EXAMPLE " - レコード数(*) ~ 200万レコード
- キー: Material (20k 個別)、Plant (200 個別)
" _SYS_BIC"."CA_EXAMPLE_PRODUCTIVITY "
- 入力パラメータ: IP_MATNR (nvarchar (5000))、IP_PLANT (nvarchar(5000))
問題 #1: nvarchar の最大値は 5000 です。個別の文字数が 5000 以上の場合、パラメーター内で複数の入力を利用できません。
問題 #2: SQL で INNER_JOIN を実行するのと同じ方法で PLACEHOLDER ロジックを使用する方法。
base_data =
select
PLANT
,MATERIAL
from "BASE_SCHEMA"."BASE_TABLE_EXAMPLE"
group by PLANT,MATERIAL;
以下を実行すると思いますが、nvarchar(5000) の入力パラメーター内で使用するために複数の文字列を連結すると、出力で問題が発生します。
select
string_agg(PLANT,''',''') as PLANT
,string_agg(MATERIAL,''',''') as MATERIAL
into var_PLANT, var_MATERIAL
from
(
select
PLANT
,MATERIAL
from :base_data
);
ここまでは成功していますが、変数を Calc ビューの PLACEHOLDER に追加すると、IP に渡す文字が多すぎると表示されて失敗します。助言がありますか???前もって感謝します。
base_calc =
select
PLANT
,MATERIAL
,MATERIAL_BU
,etc....
from "_SYS_BIC"."CA_EXAMPLE_PRODUCTIVITY"
(PLACEHOLDER."IP_MATNR"=> :var_MATERIAL, --<---Fails here. :(
PLACEHOLDER."IP_PLANT"=> :var_PLANT);
SAP SCN で提起された質問。ここにあります!