如何从 Oracle PL SQL 中的过程中的(对象类型 Table)的输入参数中获取值?

How to get the values from the Input parameter of (Object Type Table) in procedure in Oracle PL SQL?

请任何人帮助我。我有一个 table 类型的对象 .

CREATE OR REPLACE TYPE SI_PHONE_ACC_T AS TABLE OF SI_PHONE_ACC;

CREATE OR REPLACE TYPE SI_PHONE_ACC AS OBJECT
(
  PHONE_ACC  VARCHAR2(15);
);

下面通常作为来自 UI 端的输入传递给过程。

示例:

SI_PHONE_ACCT_T(SI_PHONE_ACC('123-345-6543'),SI_PHONE_ACC('999-999-9999'),SI_PHONE_ACC('ax878974545787wp')); -- 前2个是phone号,第3个是账号

手机table:

Emp_id--- phone_number

1 --     123-345-6543
2 --     999-999-9999
3---     897-897-8781

帐号table:

Emp_id---  account_number

10 --     A0000
20 --     B0000
30---     ax878974545787wp
CREATE OR REPLACE PACKAGE BODY order_mgr 
IS

PROCEDURE ins_trees (  p_emp_details_in    IN  SI_PHONE_ACC_T )
BEGIN

 -- Now, I need to retrieve emp_ids from Phone and Account tables based on the phone or account numbers passed in the input parameter. please let me know how to do this.
 
---once I get those emp_id's, i need to insert into employee table which contains only one column emp_id.

--Please let me know how to do this.

FOR i IN 1 .. p_emp_details_in.count 
LOOP  
    INSERT into employee (emp_id)
      values(??);
  END IF;
END LOOP;
    
END;
PROCEDURE ins_trees (  p_emp_details_in    IN  SI_PHONE_ACC_T )
BEGIN

    INSERT into employee (emp_id)
      select Emp_id 
      from table(p_emp_details_in) t
         , Phone_table t2 
      where t.PHONE_ACC = t2.phone_number
      union
      select Emp_id 
      from table(p_emp_details_in) t
         , Account_table t2 
      where t.PHONE_ACC = t2.account_number
      ;
    
END;
/