これはOracle 11gにあります。テーブルがあります:LOG。これには、以下のように2つの列が含まれています。
ticketid
comments
(他の列の中で)を含む別のテーブルAPP_ACCESSがあります
user_id
appl_id
env_id
ticketid
APP_ACCESS の user_id、appl_id、および env_id は、LOG テーブルのコメント列の一部です。そのような部分 (3 つすべて) が存在する場合は常に、LOG テーブルから ticketid を取得し、APP_ACCESS を更新する必要があります。
私が試したのは以下のとおりです(チケットID自体の取得に失敗しています。何も返されません):
select L.ticketid from LOG L join APP_ACCESS U
on INSTR(L.COMMENTS, U.USER_ID) > 0 and INSTR(L.COMMENTS, U.APPL_ID) > 0
#1 コメント列のサンプル データを編集します (注: これは 1 つのセル、つまり 1 つの列、1 つの行に相当するデータです):
ATTEMPTED: MANAGERCOMMENTS="TEST",AFTER: MANAGERCOMMENTS="TEST"
ATTEMPTED: JUSTIFICATION="TEST",AFTER: JUSTIFICATION="TEST"
ATTEMPTED: REQUESTORDIVISION="DOF",AFTER: REQUESTORDIVISION="DOF"
ATTEMPTED: USERSELECTED="VEXUSERTEST",AFTER: USERSELECTED="VEXUSERTEST"
ATTEMPTED: REQUESTTYPE="CHANGE ACCESS",AFTER: REQUESTTYPE="CHANGE ACCESS"
ATTEMPTED: REQUESTORREGION="WASHINGTON",AFTER: REQUESTORREGION="WASHINGTON"
ATTEMPTED: ENVIRONMENTSELECTED="DEVELOPMENT",AFTER: ENVIRONMENTSELECTED="DEVELOPMENT"
ATTEMPTED: REQUESTORCOMMENTS="TEST",AFTER: REQUESTORCOMMENTS="TEST"
ATTEMPTED: APPLICATIONSELECTED="TEST_APP",AFTER: APPLICATIONSELECTED="TEST_APP"
ATTEMPTED: REQUESTOR="PRTEST",AFTER: REQUESTOR="PRTEST"
ATTEMPTED: ADDEDACCESSLEVELS="DEFAULT ACCESS",AFTER: ADDEDACCESSLEVELS="DEFAULT ACCESS"
USERSELECTED=" の後の文字列は、APP_ACCESS テーブルの USER_ID と同じです。APPLICATIONSELECTED=" の後の文字列は、APP_ACCESS テーブルの APPL_ID と同じです。同様に、ENVIRONMENTSELECTED= の後の文字列は、APP_ACCESS テーブルの ENV_ID にマップされます。