Oracle >在select语句周围加引号?如果我不在select语句周围加引号,它会将两个Sparql查询语句视为一个完整的字符串,这会导致“标识符太长”错误。嗨,Mat,我知道我不应该在select语句周围加引号,但我根据本页进行了更改,这只能使我的过程编译成功,

Oracle >在select语句周围加引号?如果我不在select语句周围加引号,它会将两个Sparql查询语句视为一个完整的字符串,这会导致“标识符太长”错误。嗨,Mat,我知道我不应该在select语句周围加引号,但我根据本页进行了更改,这只能使我的过程编译成功,,oracle,semantics,owl,Oracle,Semantics,Owl,>在select语句周围加引号?如果我不在select语句周围加引号,它会将两个Sparql查询语句视为一个完整的字符串,这会导致“标识符太长”错误。嗨,Mat,我知道我不应该在select语句周围加引号,但我根据本页进行了更改,这只能使我的过程编译成功,但运行时会出现上述错误。如果我删除select周围的引号,将出现“标识符太长”错误。如果我也将sem_match函数中的“引号更改为”,则主要错误是“ORA-22905:无法从非嵌套表项访问行”。您已经有了ORA-00972,因此删除selec


>在select语句周围加引号?如果我不在select语句周围加引号,它会将两个Sparql查询语句视为一个完整的字符串,这会导致“标识符太长”错误。嗨,Mat,我知道我不应该在select语句周围加引号,但我根据本页进行了更改,这只能使我的过程编译成功,但运行时会出现上述错误。如果我删除
select
周围的
引号,将出现“标识符太长”错误。如果我也将
sem_match
函数中的
引号更改为
,则主要错误是“ORA-22905:无法从非嵌套表项访问行”。您已经有了ORA-00972,因此删除
select
周围的
似乎不会改变任何东西。
只是错误,只有在标识符周围确实需要时(区分大小写时)才使用它们。所以你真正的问题是ORA-22905,另一个错误只是掩盖了这一点……好吧,根据你上面链接的文章,先试试我说的;在
选择
的周围保留外部单引号,但将双引号(
)改为两个单引号(
)。我想你只是误读了文章所说的内容(因为他们的代码不是等距的).我不知道为什么这样做会有帮助,因为它是动态的,但我想值得一试。嗨,亚历克斯,我以前试过这个,但得到了错误
错误(13,24):PLS-00103:遇到了符号“{“当期望下列情况之一时:&&=+;at in是mod rements而不是rem或!=或~=>=@Peiqin-用两个单引号代替每个双引号?该错误表明您只有一个……也许您可以准确地发布您得到该错误的内容(在Q或pastebin.com或其他地方)。如果我删除
选择
前后的
引号,将出现“标识符太长”错误。如果我还将
sem\u match
函数中的
引号更改为
,主要错误是“ORA-22905:无法从非嵌套表项访问行”“。您已经有了ORA-00972,因此删除
选择
周围的
似乎不会改变任何东西。
只是错误,您只在标识符周围确实需要时才使用它们(区分大小写时).所以你真正的问题是ORA-22905,另一个错误只是掩盖了这一点…好吧,根据你上面链接的文章,先试试我说的;在
选择
的周围保留外部单引号,但将双引号(
)改为两个单引号(
).我想你只是误读了这篇文章的内容(因为他们的代码不是等距的)。我不知道为什么这样做会有帮助,因为它是动态的,但我想值得一试。嗨,亚历克斯,我以前试过这个,但得到了错误
错误(13,24):PLS-00103:遇到了符号“{”当期望以下情况之一时:&&=+;at in是mod rements而不是rem或!=或~=>=@Peiqin-用两个单引号代替每个双引号?该错误表明您只有一个…也许您可以准确地发布您得到该错误的内容(在Q或pastebin.com或其他地方)。
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;
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;