来自select的sqldeveloper过程

时间:2014-03-18 14:07:03

标签: oracle oracle-sqldeveloper procedures

嗨,我选择了这样的

SELECT
  ADDRESSES.PHONENUMBER1,
  ADDRESSES.PHONENUMBER2,
  FIRMS.NAME,
  ADDRESSES.COUNTRY,
  ADDRESSES.EMAIL,
  ADDRESSES.RECIPIENT
FROM ADDRESSES
INNER JOIN FIRMS
ON FIRMS.RESIDENCEADDRESS_ID = ADDRESSES.ID
WHERE (replace(REPLACE(ADDRESSES.PHONENUMBER1, ' ', ''), '-', '') LIKE '%123456789%')
OR (replace(REPLACE(ADDRESSES.PHONENUMBER1, ' ', ''), '-', '') LIKE '%123456789%')

我想做一个程序,结果是

姓名,地址,电子邮件,

还需要帮助替换123456789机智正确的问

谢谢

1 个答案:

答案 0 :(得分:0)

..这有效,但如果有人知道可以改进的东西。让我知道

create or replace PROCEDURE TEST
(
in_ANI in VARCHAR2,
out_all out VARCHAR2
)


AS
    fName VARCHAR2 (40) := '';
    aemail VARCHAR2 (40) := '';


BEGIN

out_all := '';

  SELECT FIRMS.NAME, ADDRESSES.EMAIL
  into fName, aemail
  FROM ADDRESSES
  INNER JOIN FIRMS
  ON FIRMS.RESIDENCEADDRESS_ID = ADDRESSES.ID
  WHERE (replace(REPLACE(ADDRESSES.PHONENUMBER1, ' ', ''), '-', '') LIKE '%'||in_ANI||'%')
  OR (replace(REPLACE(ADDRESSES.PHONENUMBER2, ' ', ''), '-', '') LIKE '%'||in_ANI||'%');


out_ALL := 'Firm:' || fName || '|Email:' || aemail;

    exception
      when TOO_MANY_ROWS then 
        out_ALL := ('Firm:Too Many firms for this phone');

      when NO_DATA_FOUND then 
        out_ALL := ('Firm:No firms for this number');

      when others then 
        raise_application_error(-20011,'Unknown Exception');


END TEST;