3 つの文字列パラメーター ItemCode ItemName Amount を受け取る統合プロジェクトに取り組んでいます
値はこの形式になります
ItemCod パラメータ値 T1;T2;T3;
ItemName パラメータ値 鉛筆ボックス;消しゴム;マウス パッド;
金額 パラメータ値 1900;2000;8900;
ここで、これらのパラメーターを受け取り、クエリがこれを列とレコードとして変換する手順が必要です。私はSQLServerの人ではなく、送信のためにOracleで同様のことをしました。しかし、これはセミコロンで区切られて列と行に変換されています。質の悪い投稿で申し訳ありません。これがオラクルの試みです。
create or replace
PROCEDURE PROC_SENDREQDETAILS
(
P_REQ_NUMBER VARCHAR2
, P_ATTRIBUTE1 VARCHAR2
, P_LOCATION_NAME VARCHAR2
, P_ITEM_ID VARCHAR2
, P_QTY VARCHAR2
, P_NEED_BY_DATE VARCHAR2
, P_ATTRIBUTE3 VARCHAR2
) IS
BEGIN
INSERT INTO PO_REQUISITIONS_STAGING(req_number_segment1, attribute1, location_name, item_id, quantity, need_by_date, attribute3)
select regexp_substr(request_number,'[^;]+',1,level),
regexp_substr(attribute1,'[^;]+',1,level),
regexp_substr(location_name,'[^;]+',1,level),
regexp_substr(item_id,'[^;]+',1,level),
regexp_substr(quantity,'[^;]+',1,level),
regexp_substr(need_by_date,'[^;]+',1,level),
regexp_substr(attribute3,'[^;]+',1,level)
from (
select P_REQ_NUMBER request_number, P_ATTRIBUTE1 attribute1, P_LOCATION_NAME location_name, P_ITEM_ID item_id, P_QTY quantity, P_NEED_BY_DATE need_by_date, P_ATTRIBUTE3 attribute3
from dual
)
connect by regexp_substr(request_number,'[^;]+',1,level) is not null;
end;
--END PROC_SENDREQDETAILS;