我试图通过在我在 Oracle 中创建的语义模型上运行与语义相关的 sql 来探索 Oracle 数据库的语义特性。但我不能让它工作,关于这方面的信息很少。
该过程的功能很简单,从 sparql 查询中获取结果集。
CREATE OR REPLACE PROCEDURE PROC_MERGE_PATHWAY_SEM AS
TYPE c_type IS REF CURSOR;
semCursor c_type;
p1 VARCHAR2(40);
p2 VARCHAR2(40);
interCount INTEGER;
BEGIN
OPEN semCursor FOR
'SELECT p1, p2, COUNT(g) as interCount
FROM TABLE (sem_match (
"{?p1 <http://example.com/test.owl#relates_to> ?g . ?p2 <http://example.com/test.owl#relates_to> ?g }",
sem_models("pathway"),
null,
null,
null))';
LOOP
FETCH semCursor INTO p1, p2, interCount;
EXIT WHEN semCursor%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(p1||','||p2||','||interCount);
END LOOP;
/*
FOR records IN semCursor LOOP
DBMS_OUTPUT.PUT_LINE('test');
END LOOP; */
END PROC_MERGE_PATHWAY_SEM;
编译错误如下:
ORA-00972: 标识符太长
ORA-06512:在“SYSTEM.PROC_MERGE_PATHWAY_SEM”,第 9 行
ORA-06512: 在第 2 行
我不确定它是由游标语句包装的 sem_match 语法错误引起的,还是 Oracle 11g2 中的错误引起的?有人可以帮我解决这个问题吗?谢谢。