1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
CREATE OR REPLACE PROCEDURE del_UserContent(phoneNum VARCHAR2,
                                            oresultcode   OUT INT) IS
 
  memberId NUMBER; --用户id
  cnt INTEGER;
 
BEGIN
  oresultcode := 0;
 
  --删除临时注册表中的信息
  SELECT COUNT(*) INTO cnt FROM member_reg t WHERE t.phone=phoneNum;
  IF cnt>0 THEN
    BEGIN
      DELETE FROM member_reg t WHERE t.phone=phoneNum;
   END;
  END IF;
 
  SELECT member_id
    INTO memberId
    FROM member
   WHERE phone = phoneNum;
 
  --删除所有好友和群组的映射关系
  DELETE FROM grp_friend_rel t WHERE t.MEMBER_ID=memberId;
  --删除所有群组信息
  DELETE FROM friend_grp t WHERE t.member_id=memberId;
  --删除所有好友信息
  DELETE FROM friend t WHERE t.member_id = memberId;
 
  --删除定制信息中包含的彩像信息
  DELETE FROM winks_pkg t WHERE t.member_id = memberId;
  --删除定制信息
  DELETE FROM winks_script t WHERE t.member_id = memberId;
 
  --删除我的彩像库中的信息
  DELETE FROM member_winks t WHERE t.member_id=memberId;
 
  --删除彩像库中本用户diy上传的彩像文件
  --delete from winks_file t where t.winks_id in (select w.winks_id from winks w where w.owner_id=memberId);
  --删除彩像库中本用户diy上传的彩像信息
  --delete from winks t where t.owner_id=memberId;
  UPDATE winks t SET t.owner_type=2 , t.owner_id=10001 WHERE t.owner_id=memberId;
  --删除订单明细信息
  DELETE FROM line_item t WHERE t.contract_id IN (SELECT a.contract_id FROM contract a WHERE a.buy_account_id=memberId);
  DELETE FROM line_item t WHERE t.contract_id IN (SELECT a.contract_id FROM contract a WHERE a.sell_account_id=memberId);
  --删除订单信息
  DELETE FROM contract t WHERE t.buy_account_id=memberId;
  DELETE FROM contract t WHERE t.sell_account_id=memberId;
  --删除注册激活日志信息
  DELETE FROM member_scr_log t WHERE t.member_id=memberId;
  --删除用户客户端配置信息
  DELETE FROM member_client t WHERE t.member_id=memberId;
  --删除推荐用户信息
  DELETE FROM member_invited t WHERE t.member_id=memberId;
  --删除社区元素明细信息
  DELETE FROM member_action t WHERE t.invited_member_action_id IN (SELECT a.member_action_id FROM member_action a WHERE a.member_id=memberId);
  DELETE FROM member_action t WHERE t.member_id=memberId;
  --更新member表中推荐人信息
  UPDATE member t SET t.invited_by = NULL
                  WHERE t.invited_by = memberId;
  COMMIT;
  --删除修改密码的信息
  DELETE FROM member_at_site t WHERE t.member_id=memberId;
  --删除用户信息
  DELETE FROM member t WHERE t.member_id=memberId;
  --删除此用户相关消息
  DELETE FROM message t WHERE t.party_id=memberId OR t.send_from=memberId;
  --删除参与者信息
   DELETE FROM party t WHERE t.party_id=memberId;
 
  IF SQL%NOTFOUND THEN
    ROLLBACK;
    DBMS_OUTPUT.put_line('NO SUCH USER');
    oresultcode := -21000;
    RETURN;
  END IF;
  COMMIT;
EXCEPTION
  WHEN OTHERS THEN
    ROLLBACK;
    oresultcode := SQLCODE;
END;
/

———————————————————————

CREATE OR REPLACE PROCEDURE del_UserContent(phoneNum VARCHAR2,
                                            oresultcode   OUT INT) IS

  memberId NUMBER; --用户id
  cnt INTEGER;

BEGIN
  oresultcode := 0;

  --删除临时注册表中的信息
  select count(*) into cnt from member_reg t where t.phone=phoneNum;
  IF cnt>0 THEN
    BEGIN
      delete from member_reg t where t.phone=phoneNum;
   END;
  END IF;

  select member_id
    into memberId
    from member
   WHERE phone = phoneNum;

  --删除所有好友和群组的映射关系
  delete from grp_friend_rel t where t.MEMBER_ID=memberId;
  --删除所有群组信息
  delete from friend_grp t where t.member_id=memberId;
  --删除所有好友信息
  delete from friend t where t.member_id = memberId;

  --删除定制信息中包含的彩像信息
  delete from winks_pkg t where t.member_id = memberId;
  --删除定制信息
  delete from winks_script t where t.member_id = memberId;

  --删除我的彩像库中的信息
  delete from member_winks t where t.member_id=memberId;

  --删除彩像库中本用户diy上传的彩像文件
  --delete from winks_file t where t.winks_id in (select w.winks_id from winks w where w.owner_id=memberId);
  --删除彩像库中本用户diy上传的彩像信息
  --delete from winks t where t.owner_id=memberId;
  update winks t set t.owner_type=2 , t.owner_id=10001 where t.owner_id=memberId;
  --删除订单明细信息
  delete from line_item t where t.contract_id in (select a.contract_id from contract a where a.buy_account_id=memberId);
  delete from line_item t where t.contract_id in (select a.contract_id from contract a where a.sell_account_id=memberId);
  --删除订单信息
  delete from contract t where t.buy_account_id=memberId;
  delete from contract t where t.sell_account_id=memberId;
  --删除注册激活日志信息
  delete from member_scr_log t where t.member_id=memberId;
  --删除用户客户端配置信息
  delete from member_client t where t.member_id=memberId;
  --删除推荐用户信息
  delete from member_invited t where t.member_id=memberId;
  --删除社区元素明细信息
  delete from member_action t where t.invited_member_action_id in (select a.member_action_id from member_action a where a.member_id=memberId);
  delete from member_action t where t.member_id=memberId;
  --更新member表中推荐人信息
  update member t set t.invited_by = null
                  where t.invited_by = memberId;
  commit;
  --删除修改密码的信息
  delete from member_at_site t where t.member_id=memberId;
  --删除用户信息
  delete from member t where t.member_id=memberId;
  --删除此用户相关消息
  delete from message t where t.party_id=memberId or t.send_from=memberId;
  --删除参与者信息
   delete from party t where t.party_id=memberId;

  IF SQL%NOTFOUND THEN
    ROLLBACK;
    dbms_output.put_line('NO SUCH USER');
    oresultcode := -21000;
    RETURN;
  END IF;
  COMMIT;
EXCEPTION
  WHEN OTHERS THEN
    ROLLBACK;
    oresultcode := sqlcode;
END;
/