Oracle 来自select的sqldeveloper过程

Oracle 来自select的sqldeveloper过程,oracle,oracle-sqldeveloper,procedures,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(ADDRES

嗨,我有这样的选择

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的帮助,请询问


谢谢你。这很有效,但是如果有人知道一些可以改进的地方。让我知道

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;

你试了什么?您应该阅读并查看Oracle创建过程文档-。开始工作吧,一旦你遇到错误或不理解某些东西,我们就可以帮助你。我不是sql专家,进进出出的NOCOPY解释也不理解。在哪里=什么?在我的选择中,我的位置像%number%或像%number%这不适合解释SQL参考,所以我请各位专家:)