BEGIN
EXECUTE IMMEDIATE
'CREATE OR REPLACE OPERATOR SEM_RELATED
  BINDING
  (VARCHAR2, VARCHAR2, VARCHAR2, MDSYS.RDF_Models,
  MDSYS.RDF_Rulebases, VARCHAR2) RETURN NUMBER
  WITH INDEX CONTEXT, SCAN CONTEXT sem_indextype_im COMPUTE ANCILLARY DATA
  USING SDO_SEM_OPERATOR.sem_related_func,
  (VARCHAR2, VARCHAR2, VARCHAR2, MDSYS.RDF_Models,
  MDSYS.RDF_Rulebases, INTEGER, INTEGER) RETURN NUMBER
  WITH INDEX CONTEXT, SCAN CONTEXT sem_indextype_im COMPUTE ANCILLARY DATA
  USING SDO_SEM_OPERATOR.sem_related_func,
  (VARCHAR2, VARCHAR2, VARCHAR2, MDSYS.RDF_Models,
  MDSYS.RDF_Rulebases, VARCHAR2, INTEGER, INTEGER) RETURN NUMBER
  WITH INDEX CONTEXT, SCAN CONTEXT sem_indextype_im COMPUTE ANCILLARY DATA
  USING SDO_SEM_OPERATOR.sem_related_func,
  (VARCHAR2, VARCHAR2, VARCHAR2, MDSYS.RDF_Models,
  MDSYS.RDF_Rulebases) RETURN NUMBER
  WITH INDEX CONTEXT, SCAN CONTEXT sem_indextype_im COMPUTE ANCILLARY DATA
  USING SDO_SEM_OPERATOR.sem_related_func';
EXCEPTION 
  WHEN OTHERS THEN
    
    IF (SQLCODE != -29809) THEN
      RAISE;
    END IF;
END;
/
show errors;
GRANT EXECUTE on MDSYS.SEM_RELATED TO PUBLIC;
CREATE OR REPLACE PUBLIC SYNONYM SEM_RELATED FOR MDSYS.SEM_RELATED;
BEGIN
EXECUTE IMMEDIATE
'CREATE OR REPLACE OPERATOR SEM_DISTANCE
  BINDING
  (NUMBER) RETURN NUMBER
  ANCILLARY TO SEM_RELATED (VARCHAR2, VARCHAR2, VARCHAR2, MDSYS.RDF_Models,
                            MDSYS.RDF_Rulebases, VARCHAR2),
               SEM_RELATED (VARCHAR2, VARCHAR2, VARCHAR2, MDSYS.RDF_Models,
                            MDSYS.RDF_Rulebases, INTEGER, INTEGER),
               SEM_RELATED (VARCHAR2, VARCHAR2, VARCHAR2, MDSYS.RDF_Models,
                            MDSYS.RDF_Rulebases, VARCHAR2, INTEGER, INTEGER),
               SEM_RELATED (VARCHAR2, VARCHAR2, VARCHAR2, MDSYS.RDF_Models,
                            MDSYS.RDF_Rulebases)
  USING  SDO_SEM_OPERATOR.sem_distance_func';
EXCEPTION 
  WHEN OTHERS THEN
    
    IF (SQLCODE != -29809) THEN
      RAISE;
    END IF;
END;
/
show errors;
GRANT EXECUTE ON SEM_DISTANCE TO PUBLIC;
CREATE OR REPLACE PUBLIC SYNONYM SEM_DISTANCE FOR MDSYS.SEM_DISTANCE;
BEGIN
EXECUTE IMMEDIATE
'CREATE OR REPLACE OPERATOR SEM_PATH
  BINDING
  (NUMBER) RETURN VARCHAR2
  ANCILLARY TO SEM_RELATED (VARCHAR2, VARCHAR2, VARCHAR2, MDSYS.RDF_Models,
                            MDSYS.RDF_Rulebases, VARCHAR2),
               SEM_RELATED (VARCHAR2, VARCHAR2, VARCHAR2, MDSYS.RDF_Models,
                            MDSYS.RDF_Rulebases, INTEGER, INTEGER),
               SEM_RELATED (VARCHAR2, VARCHAR2, VARCHAR2, MDSYS.RDF_Models,
                            MDSYS.RDF_Rulebases, VARCHAR2, INTEGER, INTEGER),
               SEM_RELATED (VARCHAR2, VARCHAR2, VARCHAR2, MDSYS.RDF_Models,
                            MDSYS.RDF_Rulebases)
  USING  SDO_SEM_OPERATOR.sem_path_func';
EXCEPTION 
  WHEN OTHERS THEN
    
    IF (SQLCODE != -29809) THEN
      RAISE;
    END IF;
END;
/
show errors;
BEGIN
EXECUTE IMMEDIATE
'CREATE OR REPLACE INDEXTYPE sem_indextype
 FOR
  sem_related(VARCHAR2, VARCHAR2,VARCHAR2, MDSYS.RDF_Models, 
              MDSYS.RDF_Rulebases, VARCHAR2),
  sem_related(VARCHAR2, VARCHAR2,VARCHAR2, MDSYS.RDF_Models, 
              MDSYS.RDF_Rulebases, INTEGER, INTEGER),
  sem_related(VARCHAR2, VARCHAR2,VARCHAR2, MDSYS.RDF_Models, 
              MDSYS.RDF_Rulebases, VARCHAR2, INTEGER, INTEGER),
  sem_related(VARCHAR2, VARCHAR2,VARCHAR2, MDSYS.RDF_Models, 
              MDSYS.RDF_Rulebases)
 USING sem_indextype_im
 WITH ORDER BY SEM_DISTANCE (NUMBER)';
EXCEPTION 
  WHEN OTHERS THEN
    
    IF (SQLCODE != -29832) THEN
      RAISE;
    END IF;
END;
/
show errors;
GRANT EXECUTE ON sem_indextype TO PUBLIC;