Oracle SQL Developerを使用してOracle12cにプロシージャを作成しています。私がしなければならないことは、レコードが存在するかどうかを調べることです。もしそうなら、私はそれを編集する必要があります。そうでなければ、私はそれを追加する必要があります。Oracle IF/ELSE文
だから、私の「擬似コード」のロジックは次のようになります。私は、Oracle SQL Developerのことを書くとどう
If (Select * from MyTable where MyValue = 0) has more than one record, then
This will be an EDIT line of code
else
This will be an ADD line of code
end
を?
EDIT:
現在、私のコードは次のようになり、私はレコードを更新するために作品を追加する必要があります。 Line_IDが存在する場合は、レコードを更新する必要があります。そうでなければ、私はそれを追加する必要があります。
create or replace PROCEDURE CST_WRITE_FEEDBACK (
v_AuditID IN NUMBER,
v_BenefitID IN NUMBER,
v_Network1 IN VarChar,
v_Network2 IN VarChar,
v_Network3 IN VarChar,
v_Network4 IN VarChar,
v_Issue1 IN NUMBER,
v_Issue2 IN NUMBER,
v_Issue3 IN NUMBER,
v_Issue4 IN NUMBER,
v_Resolution1 IN NUMBER,
v_Resolution2 IN NUMBER,
v_Resolution3 IN NUMBER,
v_Resolution4 IN NUMBER,
v_Status IN NUMBER,
v_Comment IN VarChar,
v_LineID IN NUMBER,
v_EmpID IN NUMBER
)
AS
BEGIN
IF
INSERT INTO F_AUDIT_LINE ("AUDIT_ID", "BENEFIT_ID", "NETWORK", "NETWORK2", "NETWORK3", "NETWORK4",
"ISSUE_ID", "ISSUE_ID2", "ISSUE_ID3", "ISSUE_ID4",
"RESOLUTION_ID", "RESOLUTION_ID2", "RESOLUTION_ID3", "RESOLUTION_ID4",
"LINE_STATUS")
VALUES (v_AuditID, v_BenefitID, v_Network1, v_Network2, v_Network3, v_Network4,
v_Issue1, v_Issue2, v_Issue3, v_Issue4,
v_Resolution1, v_Resolution2, v_Resolution3, v_Resolution4,
v_Status
);
END CST_WRITE_FEEDBACK;
Oracleでマージ機能を使用する –
これを拡張できますか? –
コードとしてSQL Developerのタグを削除しました。使用するエディタに依存しません。 – Kacper