am trying execute this lines in procedure :
FOR I IN (SELECT * FROM TBL_MT_MOATA WHERE MT_RECEIVED_TIME between TO_CHAR(TRUNC(SYSDATE,'Month' )) AND LAST_DAY(TRUNC(SYSDATE, 'Month'))) LOOP
--dbms_output.put_line(CUR_MONTH);
INSERT INTO '|| CUR_MONTH ||' (
MT_ID ,
CL_ID ,
OP_ID ,
MT_PORT ,
MT_COST_TAG ,
MT_MSISDN ,
MT_TYPE_ID ,
MT_MSG ,
MT_RECEIVED_TIME ,
MT_PROCESSED ,
MT_STATUS ,
MT_DELIVERED ,
MT_DELIVERED_DETAILED ,
MT_DR_IS_EXPIRED ,
MT_IP ,
MT_RESPONSE_DESC
)
VALUES (I.MT_ID ,
I.CL_ID ,
I.OP_ID ,
I.MT_PORT ,
I.MT_COST_TAG ,
I.MT_MSISDN ,
I.MT_TYPE_ID ,
I.MT_MSG ,
I.MT_RECEIVED_TIME ,
I.MT_PROCESSED ,
I.MT_STATUS ,
I.MT_DELIVERED ,
I.MT_DELIVERED_DETAILED ,
I.MT_DR_IS_EXPIRED ,
I.MT_IP ,
I.MT_RESPONSE_DESC
) ;
PROBLEM :
am getting : table or view does not exist
i have tried to use table name am getting no error this error happens when i have variable CUR_MONTH
how can use variable in INSERT query ?
UPDATE :
i have used execute immediate as the following :
EXECUTE IMMEDIATE 'INSERT INTO '|| CUR_MONTH ||' (
MT_ID ,
CL_ID ,
OP_ID ,
MT_PORT ,
MT_COST_TAG ,
MT_MSISDN ,
MT_TYPE_ID ,
MT_MSG ,
MT_RECEIVED_TIME ,
MT_PROCESSED ,
MT_STATUS ,
MT_DELIVERED ,
MT_DELIVERED_DETAILED ,
MT_DR_IS_EXPIRED ,
MT_IP ,
MT_RESPONSE_DESC
)
VALUES (
'|| I.MT_ID ||' ,
'|| I.CL_ID ||' ,
'|| I.OP_ID ||' ,
'|| I.MT_PORT ||' ,
'|| I.MT_COST_TAG ||' ,
'|| I.MT_MSISDN ||' ,
'|| I.MT_TYPE_ID ||' ,
'|| I.MT_MSG ||' ,
'|| I.MT_RECEIVED_TIME ||' ,
'|| I.MT_PROCESSED ||' ,
'|| I.MT_STATUS ||' ,
'|| I.MT_DELIVERED ||' ,
'|| I.MT_DELIVERED_DETAILED ||' ,
'|| I.MT_DR_IS_EXPIRED ||' ,
'|| I.MT_IP ||' ,
'|| I.MT_RESPONSE_DESC || '
)';
now am getting the following error :
ORA-00936: missing expression
Please advice …
Best Answer
Thanks Balazs papp ,
your answer was right 100% , i have used the following code :