Liao_126 2015-11-24 09:34 采纳率: 75%
浏览 1337
已采纳

求帮忙,这表,还有代码有什么错

表描述 客户性别代码表 表名 T_GENDER
字段描述 字段名 字段类型 其他说明
性别 GENDER CHAR(1) RK
性别描述 GENDER_NAME VARCHAR2(100) Nor Null

表描述 证件类型代码表 表名 T_CERTI_TYPE
字段描述 字段名 字段类型 其他说明
证件类型 CERTI_TYPE CHAR(1) PK
类型描述 TYPE_DESC VARCHAR2(100) Not Null

表描述 客户状态代码表 表名 T_CUSTOMER_STATUS
字段描述 字段名 字段类型 其他说明
证件类型 STATUS_ID NUMBER(1) PK
类型描述 STATUS_NAME VARCHAR2(100) Nor Null

表描述 客户表 表名 T_CUSTOMER
字段描述 字段名 字段类型 其他说明
客户ID CUSTOMER_ID NUMBER(10) PK( Sequence:S_CUSTOMER_ID)
客户姓名 CUSTOMER_NAME CHAR(200) Not Null
性别 GENDER CHAR(1) Not Null FK(T_ GENDER)
生日 BIRTHDAY DATE Not Null
证件类型 CERTI_TYPE CHAR(5) Not Null FK(T_ CERTI_TYPE)
证件号码 CERTI_CODE VARCHAR2(50) Not Null

 入时间 INSERT_TIME DATE 默认值:sysdate
客户状态 STATUS CHAR(1)
客户电话 MOBILE NUMBER(11)

客户地址 DI_ZHI VARCHAR2(200)

表描述 投保人信息表 表名 T_POLICY_HOLDER
字段描述 字段名 字段类型 其他说明
流水ID LIST_ID Number(10) PK(Sequence:S_POI_HOLDER_ID)
客户ID CUSTOMER_ID Number(10) Not Null FK(T_CUSTOMER)
保单ID POLICY_ID Number(10) Not Null FK(T_POLICY)
客户电话 MOBILE NUMBER(11) Not Null
。。。 备注:其他字段略

表描述 保单信息表 表名 T_POLICY
字段描述 字段名 字段类型 其他说明
保单ID POLICY_ID Number(10) PK(Sequence:S_POICY_ID)
保单状态 POLICY_STATUS Number(1) Not Null
。。。 备注:其他字段略

.结合上面表结构,指出下面 PLSQL 代码存在哪些问题?
包体代码
eate or replace package PKG_LS_PM_NB fs
procedure F_CREATE_CUSTOMER(I_CUSTQMER_NAME invarchar2,
I_GENDER in char
I_BTRTHDAY in date
I_CERTI_TYPE in t_customer.certi_type%type
I_CERTI_CODE in varchar2,
I_MOBILE in t_customer.mobile%type,
I_CUSTOMER_ID out number
Procedure p_UPO_CUS_MOBILE(I_CUSTONER_ID IN NUMBER,
I_MOBILE IN t_customer.mobile%type);
end PKG_LS_PM_NB;
包体代码
Create or replace package body PKG_LS_PM_NB is
Procedure F_CREATE_CUSTOMER(I_CUSTOMER_NAME in varchar2,
I_GENDER in char
I_BIRTHDAY in date
I_CERTI_TYPE in t_customer.certi_type%type,
I_CERTI_CODE in varchuar2,
I_mobile in t_customer.mobile%type,
I_CUSTOMER_ID out number)as
m_customer_id number;
begin

Select customer_id into I_CUSTOMER_ID from t_customer
Where customer_name = I_CUSTOMER_NAME
and gender = I_GENDER and birthday = I_BIRTHDAY
and certi_type = I_CERTI_TYPE and certi_code = I_ CERTI_CODE;
if m_customer_id is null then
--更新客户电话
Update t_customer set customer_id = I_CUSTOMER_ID,mobile = I_MOBILE
Where customer_id = I_customer_ID;
else
select S_CUATOMER_ID.nextval into I_CUSTOMER_ID from dual;
insert into t_customer values (I_CUSTOMER_ID ,I_CUSTOMER_NAME,I_GENDER,I_BIRTHDAY,I_CERTI_TUYPE,I_CERTI_CODE,sysdate, θ,I_MOBILE,null);
end if;
end;

procedure P_UPD_CUS_MOBILE(I_CUSTOMER_ID IN NUMBER,
I_MOBILE IN t_customer.mobile%type) AS
M_LIST_ID number;
M_POLICY_ID number;
M_OK number;
Cursor c1 is
Select t1.list_id,t1.policy_id from t_policy_holder t1, t_policy t2
Where t1.policy_id = t2.policy_id and t2.policy_status =1
and t1.customer_id = I_CUSTOMER_ID;
BEGIN
OPEN c1;
Loop
Fetch c1 into M_POLICY_ID,M_LIST_ID;
Exit when c1%notfound;
R_POLICY_HOLDER.mobile :=I_MOBILE;
Update t_policy_holder set mobile=I_MOBILE where list_id = M_LIST_ID;
--生成批单信息,p_generate_notice方法略
M_OK := p_generate_notice(M_POLICY_ID);
If M_OK = 1 then
--处理失败,抛错
raise_application_error(-2θθθθ1,’保单处理失败’);

end if;
END LOOP;
END;
End PKG_LS_PM_NB

  • 写回答

1条回答 默认 最新

  • Liao_126 2015-11-25 11:06
    关注

    1:::::::::::::::::::

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看