如何创建动态过程,其中使用某些列中的某些sql函数将列数据从一个表中提取到另一张表中?

时间:2019-05-07 10:26:41

标签: oracle stored-procedures plsql oracle11g

我创建了一个存储过程,但是我想转换为动态过程。 我怎样才能做到这一点? 我试图动态转换此过程及其编译。 请告诉我,我改变了职业

Compiled 

Connecting to the database cpRACTICE.
Process exited.
Disconnecting from the database cpRACTICE.

SEVERE  168 0   oracle.dbtools.raptor.backgroundTask.RaptorTaskManager$1    Index: -1, Size: 0 at java.util.ArrayList.rangeCheckForAdd(ArrayList.java:665)
/
Connecting to the database cpRACTICE.
Process exited.
Disconnecting from the database cpRACTICE.

create or replace PROCEDURE PRC_TRNS_SRC_TRGT IS
BEGIN
INSERT INTO DM_TGT (
STUDY,
PATIENT,
CPEVENT,
SEX,
COUNTRY,
NAME,
AGE,
ADDRESS,
EPOCH,
--VISITNUMBER,
VISIT_DATE
)
(SELECT
STUDY,
PATIENT,
CPEVENT,
--SEX,
CASE WHEN SEX IN('M')
THEN 'MALE'
WHEN SEX IN('F')
THEN 'FEMALE'
WHEN SEX IN('O')
THEN 'OTHERS' END AS SEX,
SUBSTR(COUNTRY,1,3),
concat(concat(FIRST_NAME ,'_'),LAST_NAME),
AGE,
concat(concat(ADDRESS1,'/'),ADDRESS2),
EPOCH,
--TO_NUMBER(VISITNUMBER),
VISIT_DATE
            FROM
            DM_SRC 
            --where REGEXP_LIKE(VISITNUMBER,'[0-9])'
            );
COMMIT;
EXCEPTION
    WHEN OTHERS THEN
        dbms_output.put_line('procedure is unsuccessful' || sqlerrm);
END PRC_TRNS_SRC_TRGT;

我希望这个第一个存储过程是动态的。 我们该怎么做?

0 个答案:

没有答案