oracle split_for_array 用法示例

CREATE OR REPLACE PROCEDURE PROC_INSERT_COPER_INFO(
               v_COO_ORG            IN    VARCHAR2,
               v_PROD_TASK_INFO_ID  IN    VARCHAR2,
               v_COPER_TYPE         IN    VARCHAR2      
)
AS


  CURSOR C_COPER_ORG  IS  SELECT * FROM TABLE(CAST(SPLIT_FOR_ARRAY(v_COO_ORG, ',') AS ARRAY_CONTAINER));
  v_ORG    C_COPER_ORG%rowtype;


BEGIN


  --先删除在增
   delete from COPER_INFO where EMER_TASK_ID = v_PROD_TASK_INFO_ID and COPER_TYPE=v_COPER_TYPE;
   


   
    --循环迭代
   for v_ORG in C_COPER_ORG loop
        dbms_output.put_line('---------,v_ORG.Column_Value-----------==  ' || v_ORG.Column_Value);
         insert into COPER_INFO(COPER_INFO_ID,EMER_TASK_ID,COPER_ORG,COPER_TYPE,COPER_STATE)
               values (SEQ_COPER_INFO.NEXTVAL,v_PROD_TASK_INFO_ID,v_ORG.Column_Value,v_COPER_TYPE,'001');  
   end loop;
END;
SELECT COUNT ( * ) FROM tb_zyp_basics_ticket_value AS ticket LEFT JOIN ( SELECT b.code_dept, array_to_string_oracle ( ARRAY ( SELECT UNNEST ( ARRAY_AGG ( ( CASE WHEN org.name_org IS NOT NULL THEN org.name_org ELSE dept.name_dept END ) ) ) ), '-' ) AS nameOrg FROM ( SELECT UNNEST ( regexp_split_to_array( custom_structure_code, '-' ) ) AS nameCode, A.code_dept FROM org_dept A ORDER BY code_dept ASC ) b LEFT JOIN org_org org ON org.code_org = b.nameCode LEFT JOIN org_dept dept ON dept.code_dept = b.nameCode GROUP BY b.code_dept ) allName ON allName.code_dept = ticket.apply_dept_code LEFT JOIN ( SELECT dict_value, "name" FROM tb_zyp_data_dict WHERE parent_id = ( SELECT "id" FROM tb_zyp_data_dict WHERE company_code = '610170010' AND dict_value = 'JobAnalysis' ) AND deleted = '0' ) AS dict1 ON ticket.ticket_type = dict1.dict_value LEFT JOIN ( SELECT dict_value, "name", '1-8' AS ticket_type FROM tb_zyp_data_dict WHERE deleted = '0' AND company_code = '610170010' AND parent_id = ( SELECT "id" FROM tb_zyp_data_dict WHERE company_code = '610170010' AND dict_value = 'fire-operation-level' ) UNION ALL SELECT dict_value, "name", '1-1' AS ticket_type FROM tb_zyp_data_dict WHERE deleted = '0' AND company_code = '610170010' AND parent_id = ( SELECT "id" FROM tb_zyp_data_dict WHERE company_code = ? AND dict_value = 'high_level' ) UNION ALL SELECT dict_value, "name", '1-2' AS ticket_type FROM tb_zyp_data_dict WHERE deleted = '0' AND company_code = '610170010' AND parent_id = ( SELECT "id" FROM tb_zyp_data_dict WHERE company_code = '610170010' AND dict_value = 'confine_level' ) ) AS dict2 ON ticket.work_level = dict2.dict_value AND ticket.ticket_type = dict2.ticket_type WHERE 1 = 1 AND ticket.com_code = '610170010' AND ticket.work_num LIKE'%' || 610170010208250827001 || '%' AND ticket.status NOT IN ( '5', '6' ) AND apply_dept_code LIKE'%' || '610170010' || '%' AND ticket.deleted = '0' 验证sql是否正确
09-02
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值