UPSERT en la tabla con el nombre dinámico de la tabla

Cualquier método mejor para UPSERT en una tabla, siempre que:

Actualización de datos a ~ 1 fila / segundoTable Name es DYNAMIC, generado utilizando el parámetro ObjectID que se le pasó

EL SIGUIENTE PROCEDIMIENTO LANZA: "ORA-00942: la tabla o vista no existe"

CREATE OR REPLACE PROCEDURE
PROCEDURE "SPINSERTDATA"
(
  pObjectID IN RAW,
  pDateTime IN TIMESTAMP,
  pValue IN BINARY_DOUBLE,
)
AS
BEGIN
  Declare
    vQueryInsert VARCHAR2(1000);
    vQueryUpdate VARCHAR2(1000);
    vTableName VARCHAR2(30);
  Begin      
      vTableName := FGETTABLENAME(POBJECTID => pObjectID);
      vQueryUpdate := 'UPDATE '      || vTableName || ' SET "VALUE" = :1';
      vQueryInsert := 'INSERT INTO ' || vTableName || ' ("DTTIME", "VALUE") VALUES (:1, :2)';

      EXECUTE IMMEDIATE vQueryInsert USING pDateTime, pValue;
        EXCEPTION
          WHEN DUP_VAL_ON_INDEX THEN 
            EXECUTE IMMEDIATE vQueryUpdate USING pValue;
  End;
END "SPINSERTDATA";
Aparentemente MERGE no funciona ya que TableName no puede ser dinámico ??? Soy un novato, mi tercer mes de codificación, recorrí STACKOVERFLOW y busqué en Google durante 3 días, probando todo tipo de soluciones divertidas y desesperadas ... Incluso un enlace muy relevante si encontraste uno sería sinceramente apreciado.

Respuestas a la pregunta(3)

Su respuesta a la pregunta