Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql &引用;并行发出错误信号;函数索引_Sql_Oracle_Oracle11g - Fatal编程技术网

Sql &引用;并行发出错误信号;函数索引

Sql &引用;并行发出错误信号;函数索引,sql,oracle,oracle11g,Sql,Oracle,Oracle11g,我在oracle表中使用函数索引,同时运行合并查询-记录更新正常,但插入记录时显示以下错误: ORA-00600: internal error code, arguments: [rwoirw: check ret val], [], [], [], [], [], [], [], [], [], [], [] 12801. 00000 - "error signaled in parallel query server %s" *Cause: A parall

我在oracle表中使用函数索引,同时运行合并查询-记录更新正常,但插入记录时显示以下错误:

ORA-00600: internal error code, arguments: [rwoirw: check ret val], 
           [], [], [], [], [], [], [], [], [], [], []
12801. 00000 -  "error signaled in parallel query server %s"
*Cause:    A parallel query server reached an exception condition.
*Action:   Check the following error message for the cause, and consult your error manual 
           for the appropriate action.
*Comment:  This error can be turned off with event 10397, in which case the server's 
           actual error is signaled instead.
使用的功能索引:
(SUBSTR(“票据生产凭证号”),0,INSTR(“票据生产凭证号”),1‌​)-1) )

经过分析,我发现这是由于我的查询中的
/*+并行(APP\u PRODUCT\u SERVICE,4)*/
散列标记造成的,因为我是通过四节点配置插入的

记录计数太高,因此我无法避免
/*+并行(应用程序产品服务,4)*/

选择我正在使用的查询太长。所以我刚才提到了简短的:

MERGE /*+ APPEND */ INTO PRODUCT_SERVICE PS 
 USING ( 
    SELECT /*+ PARALLEL (APP_PRODUCT_SERVICE,4) */ BILL_PROD_SOT_ID, 
           INSTANCE_ID, ...
) ... 
 WHEN MATCHED THEN UPDATE 
  SET PS.BILL_SERV_SOT_ID = UPD.BILL_SERV_SOT_ID,
      PS.INSTANCE_TYPE = UPD.INSTANCE_TYPE,
      PS.CATALOG_PROD_ID = UPD.CATALOG_PROD_ID 
 WHEN NOT MATCHED THEN INSERT (INSTANCE_ID ,BILL_SERV_SOT_ID);
如果我删除函数索引,它可以正常工作


有人能建议如何解决这个问题吗?

给我们看一下索引定义和select语句。@WernfriedDomscheit这个子字符串的索引
(SUBSTR(“BILL\u PROD\u SOT\u ID”,0,INSTR(“BILL\u PROD\u SOT\u ID”,“',-1)-1))
选择查询太长了,刚才我提到的简短:
MERGE/*+APPEND*/到产品服务中使用PS(匹配时选择/*+并行(应用程序产品服务,4)*/BILL\u PROD\u SOT\u ID,实例ID,然后更新集PS.BILL\u SERV\u SOT\u ID=UPD.BILL\u SERV\u SOT\u ID,PS.INSTANCE\u TYPE=UPD.INSTANCE\u TYPE,PS.CATALOG\u PROD\u ID=UPD.CATALOG\u PROD\u ID,如果不匹配,则插入(实例ID,BILL\u SERV\u SOT\u ID);
编辑您的问题,而不是将其作为注释。@WernfriedDomscheit editedora-0600是一个内部错误,可能表示存在错误。您需要向Oracle支持部门提出一个问题。