oracle insert into select 空值,insert into select 诡异问题 insert 进去的不是select的值

本帖最后由 yingrihong 于 2012-1-19 16:50 编辑

FUNCTION get_email_alias

( agent_name_in IN STG_ED_AGENT.agent_name%TYPE

)

RETURN VARCHAR

IS

v_err_code                ERROR_LOG.err_code%TYPE;

v_err_message             ERROR_LOG.err_message%TYPE := NULL;

v_err_remark              ERROR_LOG.err_remark%TYPE := NULL;

v_name                    ED_ASSIGN_EMAIL_ALIAS.agent_name%TYPE;

v_lastname                VARCHAR2(30);

v_firstname               VARCHAR2(30);

v_midname                 VARCHAR2(30);

v_firstnametrim           VARCHAR2(30);

v_midnametrim             VARCHAR2(30);

v_len                     NUMBER;

v_idx                     NUMBER;

v_idx2                    NUMBER;

v_execute_ok              BOOLEAN := TRUE;

v_result_name             ED_ASSIGN_EMAIL_ALIAS.email_alias%TYPE;

v_return                  BOOLEAN := TRUE;

e_trim_space_exception    EXCEPTION;

v_dup_count                           NUMBER;

v_alias_out                           STG_ED_AGENT.EMAIL_ALIAS%TYPE;

v_dmn_firstname                   STG_ED_AGENT.DMN_FirstName%TYPE;

v_dmn_lastname                              STG_ED_AGENT.DMN_LastName%TYPE;

v_temp                    VARCHAR2(60);

BEGIN

v_name := TRIM(agent_name_in);        v_len := LENGTH(v_name);

IF v_name LIKE '% %,%' THEN

-- Case have comma and space;  Chan Tai Man, Peter -> Peter.Chan

v_idx := INSTR(v_name, ' ', 1, 1);

v_lastname := SUBSTR(v_name, 1, v_idx-1);

v_idx := INSTR(v_name, ',', 1, 1);

v_midname := SUBSTR(v_name, v_idx+1, v_len);

v_midnametrim := REPLACE(v_midname, ' ', '');

v_alias_out     := v_midnametrim || '.' || v_lastname ;

v_dmn_firstname := trim(v_midname);

v_dmn_lastname         := trim(v_lastname);

--add by kobe wang 2012-01-09 start

IF if_in_gmail_agent_list(v_alias_out) = 1 THEN

v_alias_out := v_midnametrim || '.tm.' || v_lastname;

v_temp := v_alias_out;

--if Peter.tm.Chan exists then Peter.tm.Chan2

--if Peter.tm.Chan2 exists then Peter.tm.Chan3 ...

v_idx := 1;

WHILE if_in_gmail_agent_list(v_alias_out) = 1

LOOP

v_idx := v_idx + 1;

v_alias_out := v_temp || v_idx;

END LOOP;

END IF;

--add by kobe wang 2012-01-09 end

END IF;

RETURN v_alias_out;

EXCEPTION

WHEN OTHERS THEN

RETURN NULL;

END get_email_alias;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值