Search code examples
oracle-databaseoracle-sqldeveloperprocedures

sqldeveloper procedure from select


Hi I have select like this

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%')

And I would like make a procedure and the result be

name, address, email,

also need help with replace 123456789 wit correct ask

thank you


Solution

  • ..this works, but if someone knew something that could be improved. Let me know

    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;